{%= name %} [![npm version][npmv-img]][npmv-url] ![License][license-img]
Get all commits since given period of time or by default from latest git semver tag. Understands and follows both the SemVer and the Conventional Commits specification.
Please consider following this project's author, Charlike Mike Reagent, and ⭐ the project to show your ❤️ and support.
If you have any how-to kind of questions, please read the Contributing Guide and Code of Conduct documents.
For bugs reports and feature requests, please create an issue or ping
@tunnckoCore at Twitter.
[![NPM Downloads Weekly][downloads-weekly-img]][npmv-url] [![NPM Downloads Monthly][downloads-monthly-img]][npmv-url] [![NPM Downloads Total][downloads-total-img]][npmv-url]
Project is semantically & automatically released on CircleCI with [new-release][] and its New Release GitHub App.
This project requires Node.js {%= engines.node %}. Install it using
yarn or npm.
We highly recommend to use Yarn when you think to contribute to this project.
$ yarn add {%= name %}
In this example, we show how this package can be used in combination with [parse-commit-message][] and [detect-next-version][] to make robust automation, pblish & release flow.
This actually is used in the @tunnckocore/release-cli
and the Release GitHub App.
In the CLI commits are collected from git log
using this module,
in the App commits are from the GitHub API.
Example
import { applyPlugins, plugins, parse, check } from 'parse-commit-message';
import gitCommitsSince from 'git-commits-since';
import detector from 'detect-next-version';
async function main() {
const { rawCommits } = await gitCommitsSince({ cwd: 'path/to/repo' });
const commits = applyPlugins(plugins, check(parse(rawCommits)));
// detect-next-version, also can accept rawCommits (array of strings) directly,
// but that is that way just for demo purposes.
const result = await detector('my-npm-package', commits);
console.log(result);
console.log(result.pkg);
console.log(result.patch);
console.log(result.increment); // => 'patch'
console.log(result.isBreaking); // => false
console.log(result.lastVersion); // => 0.1.0
console.log(result.nextVersion); // => 0.1.1
}
Generated using docks.
Gets all commits since given options.from
or since last semver tag (by default).
In return you will get useful metadata and rawCommits
.
Where rawCommits
is an array of commit message strings. Optionally you can pass
a options.plugin
functin which is passed with (rawCommit: string, result: object)
signature and will be called on each commit. This behavior can be used
to do fun stuff on per each project basis. Such as parsing each rawCommit or whatever.
Params
options
{object} basically passed to [git-raw-commits][] and [git-semver-tags][]
Returns
Promise<object>
resolves to an object with{ from, to, cwd, rawCommits }
Examples
import gitCommitsSince from 'git-commits-since';
async function main() {
const result = await gitCommitsSince({ cwd: 'path/to/git/repository' });
console.log(result);
// the @ means HEAD or the latest commit
// => { from: 'v0.1.0', to: '@', cwd: 'path/to/cwd', rawCommits, options }
}
main().catch(console.error);
import gitCommitsSince from 'git-commits-since';
// Using the plugin API
async function main() {
const plugin = (rawCommitString, result) => {
console.log(rawCommitString);
// log each commit
result.qux = 12345;
return { foo: 'bar' };
};
const res = await gitCommitsSince({ plugin });
console.log(res);
console.log(res.rawCommits);
console.log(res.foo); // => 'bar'
console.log(res.qux); // => 12345
}
main().catch(console.error);
{% if (verb.related && verb.related.list && verb.related.list.length) { %}
Some of these projects are used here or were inspiration for this one, others are just related. So, thanks for your existance!
{%= related(verb.related.list, { words: 9 }) %}
back to top {% } %}
Please read the Contributing Guide and Code of Conduct documents for advices.
For bugs reports and feature requests, please create an issue or ping
@tunnckoCore at Twitter.
Become a Partner or Sponsor? 💵 Check the Partner, Sponsor or Omega-level tiers! 🎉 You can get your company logo, link & name on this file. It's also rendered on package page in [npmjs.com][npmv-url] and [yarnpkg.com](https://yarnpkg.com/en/package/{%= name %}) sites too! 🚀
Not financial support? Okey! Pull requests, stars and all kind of contributions are always welcome. ✨
This project is following OPEN Open Source model
Individuals making significant and valuable contributions are given commit-access to the project to contribute as they see fit. This project is built on collective efforts and it's not strongly guarded by its founders.
There are a few basic ground-rules for its contributors
- Any significant modifications must be subject to a pull request to get feedback from other contributors.
- Pull requests to get feedback are encouraged for any other trivial contributions, but are not required.
- Contributors should attempt to adhere to the prevailing code-style and development workflow.
Thanks to the hard work of these wonderful people this project is alive! It follows the
all-contributors specification.
Don't hesitate to add yourself to that list if you have made any contribution! ;) See how,
here.
Charlike Mike Reagent 💻 📖 💬 👀 🔍 |
---|
Consider showing your support to them. 💖
Copyright (c) 2018-present, Charlike Mike Reagent <[email protected]>
& contributors.
Released under the Apache-2.0 License.
[npmv-url]: https://www.npmjs.com/package/{%= name %} [npmv-img]: https://badgen.net/npm/v/{%= name %}?icon=npm
[license-img]: https://badgen.net/npm/license/{%= name %}
[downloads-weekly-img]: https://badgen.net/npm/dw/{%= name %} [downloads-monthly-img]: https://badgen.net/npm/dm/{%= name %} [downloads-total-img]: https://badgen.net/npm/dt/{%= name %}