javascript-studio / studio-changes

📦 Generate a changelog as part of the npm version command
https://medium.com/javascript-studio/nice-and-easy-module-releases-a32c906b564e
MIT License
49 stars 7 forks source link

Feature: filtering out dependabot #31

Open mroderick opened 4 years ago

mroderick commented 4 years ago

When creating new releases for the Sinon projects, I spend time on cutting out things like this from the changelog:

- [`871ac09`](https://github.com/sinonjs/formatio/commit/871ac093ea61424f79735733bca2695458ef3f26)
  Bump @sinonjs/referee from 3.2.0 to 4.0.0 (dependabot-preview[bot])
    >
    > Bumps [@sinonjs/referee](https://github.com/sinonjs/referee) from 3.2.0 to 4.0.0.
    > - [Release notes](https://github.com/sinonjs/referee/releases)
    > - [Changelog](https://github.com/sinonjs/referee/blob/master/CHANGES.md)
    > - [Commits](https://github.com/sinonjs/referee/compare/v3.2.0...v4.0.0)
    >
    > Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

I would love it, if there was a flag for changes that would detect and filter these out automatically.

If you think this would be useful in changes, I'll make a PR for it.

mantoni commented 4 years ago

That's an interesting idea. How would we do this? Maybe by adding a flag to specify bot users to ignore?

mroderick commented 4 years ago

There could be a flag --ignore-bots for ignoring all known bots, and also flags for individual bots, i.e. --ignore-dependabot.

In the first implementation, we could add just --ignore-dependabot, and leave --ignore-bots for when another bot is added.

I imagined that we could detect dependabot by looking for the string Signed-off-by: dependabot-preview[bot] <support@dependabot.com> in the commit message.

mantoni commented 4 years ago

I wouldn't want to maintain a list of bots in this project. One could have a private custom bot in use that shouldn't be listed in an open source project. Maybe we can come up with something a little more generic and simple.

How about a simple string grep and ignore on match? E.g. --ignore-grep "[bot]".

mroderick commented 4 years ago

How about a simple string grep and ignore on match? E.g. --ignore-grep "[bot]".

If we can add multiple of these, then that would solve the problem for me 👍

mantoni commented 4 years ago

Passing the same flag multiple times makes it an array. Something like [].concat(opts.ignoreGrep) should work.