npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

git-commits-since

v2.0.5

Published

Get all commits since given period of time or by default from latest git semver tag. Understands and follows both SemVer and the Conventional Commits specification.

Downloads

342

Readme

git-commits-since npm version github release License

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 :star: the project to show your :heart: and support.

Code style CircleCI linux build CodeCov coverage status DavidDM dependency status Renovate App Status Make A Pull Request Semantically Released

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.

Become a Patron Conventional Commits NPM Downloads Weekly NPM Downloads Monthly NPM Downloads Total Share Love Tweet

Project is semantically & automatically released on CircleCI with new-release and its New Release GitHub App.

Table of Contents

(TOC generated by verb using markdown-toc)

Install

This project requires Node.js ^8.10.0 || >=10.13.0. Install it using yarn or npm.
We highly recommend to use Yarn when you think to contribute to this project.

$ yarn add git-commits-since

Usage

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
}

API

Generated using docks.

src/index.js

gitCommitsSince

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

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);

back to top

See Also

Some of these projects are used here or were inspiration for this one, others are just related. So, thanks for your existance!

back to top

Contributing

Follow the Guidelines

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.

Support the project

Become a Partner or Sponsor? :dollar: Check the Partner, Sponsor or Omega-level tiers! :tada: You can get your company logo, link & name on this file. It's also rendered on package page in npmjs.com and yarnpkg.com sites too! :rocket:

Not financial support? Okey! Pull requests, stars and all kind of contributions are always welcome. :sparkles:

OPEN Open Source

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

  1. Any significant modifications must be subject to a pull request to get feedback from other contributors.
  2. Pull requests to get feedback are encouraged for any other trivial contributions, but are not required.
  3. Contributors should attempt to adhere to the prevailing code-style and development workflow.

Wonderful Contributors

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. :sparkling_heart:

License

Copyright (c) 2018-present, Charlike Mike Reagent <[email protected]> & contributors.
Released under the Apache-2.0 License.