All Contributors Plugin
Automatically add contributors as changelogs are produced.
This plugin maps one of the contribution types to a glob or array of globs. Out of the box the plugin will only detect the following contribution types:
- đ
doc
- Edits to any README['**/*.mdx', '**/*.md', '**/docs/**/*', '**/documentation/**/*']
- đĄ
example
- Edits to['**/*.stories*', '**/*.story.*']
- đ
infra
- Edits to['**/.circle/**/*', '**/.github/**/*', '**/travis.yml'],
- â ī¸
test
- Edits to['**/*.test.*']
- đģ
code
- Edits to['**/src/**/*', '**/lib/**/*', '**/package.json', '**/tsconfig.json']
Installation
This plugin is not included with the auto
CLI installed via NPM. To install:
npm i --save-dev @auto-it/all-contributors # or yarn add -D @auto-it/all-contributors
npm i --save-dev @auto-it/all-contributors # or yarn add -D @auto-it/all-contributors
Prerequisites
For this plugin to work your project needs to have initialized an all-contributors
RC file.
npx all-contributors init
npx all-contributors init
Usage
{ "plugins": ["all-contributors"] }
{ "plugins": ["all-contributors"] }
Configure Contribution Type Matching
You use any of the contribution types. If you configure an pre-configured contribution type the arrays are not merged, it is overridden.
auto.rc
{ "plugins": [ [ "all-contributors", { "types": { "plugin": "**/plugin/**/*", "example": ["**/*.stories.*", "**/*.examples.*", "**/*.snippet.*"] } } ] ] }
{ "plugins": [ [ "all-contributors", { "types": { "plugin": "**/plugin/**/*", "example": ["**/*.stories.*", "**/*.examples.*", "**/*.snippet.*"] } } ] ] }
Adding Non-Code Contributions
Sometimes you worked with a person that didn't touch the code personally so this plugin would never attribute them with any contributions.
Since these contributions cannot be automated you can instead just list out another contributor's contributions directly in the PR.
These contributors will also be added to all changelogs that auto
outputs.
Add the following to a PR body and auto
will try to parse it and add contributors from it.
# Contributions - @some_guy - design, doc
# Contributions - @some_guy - design, doc
To ensure you are doing it right auto
will comment on the PR with the people + contributions you are manually adding.
Exclude Users
Useful for excluding bots from getting into your contributors.
auto.rc
{ "plugins": [ [ "all-contributors", { "exclude": ["dependabot", "ci-services"] } ] ] }
{ "plugins": [ [ "all-contributors", { "exclude": ["dependabot", "ci-services"] } ] ] }
Sub-Package Contributors list
Maintain contributors lists for sub-packages in a monorepo setup (lerna
/yarn
).
All you need to do is initialize each sub-package you want contributors tracked in with an .all-contributorsrc
. If no rc file is found nothing will happen for that package. Any non-code contribution listed in the PR body will also be added to the sub-package contributors list.
cd packages/your-package npx all-contributors init
cd packages/your-package npx all-contributors init
âšī¸ Tip: If you only want 1 commit for new contributions set
commit
to false in all of your.all-contributorsrc
. Otherwise a commit will be made for each package's contributor update.