semantic-release-contributors
v3.1.1
Published
semantic-release plugin to automatically update contributors list from git history
Downloads
96
Maintainers
Readme
| Step | Description |
|----------------|-----------------------------------------------------------------------------------------------------|
| prepare
| Determine the contributors list by analyzing commits history. |
Install
npm install semantic-release-contributors -D
How does it work
Whenener someone commit to the project, his/her name will be appended to the contributors list of your package.json file.
If Paul Smith
commits to a project with the following set-up:
{
"name": "your-project",
"author": "Barney Rubble <[email protected]>",
"contributors": [
"John Doe <[email protected]> (https://johndoe.com)"
]
}
The package.json
file would then be updated to:
{
"name": "your-project",
"author": "Barney Rubble <[email protected]>",
"contributors": [
"John Doe <[email protected]> (https://johndoe.com)",
"Paul Smith <[email protected]>"
]
}
NOTE: this package internally deserialize the contributors to objects (name, email, url) and make sure duplicated emails are removed. Contributors objects are then potentially re-serialized before being written to the package file (unless you opt for a different format)
Usage
The plugin can be configured in the semantic-release configuration file:
IMPORTANT: since this plugin acts on semantic-release's "prepare" step and do not commit the updated package.json file itself, it requires to be placed before "@semantic-release/git".
{
"plugins": [
// important: insert it before @semantic-release/git
["semantic-release-contributors", {
"format": "string",
"pkgRoot": "."
}],
// ...
"@semantic-release/git"
// ...
]
}
With this example:
- the contributors will be stringified to
name <email>
- the package file containing the contributors will be read then updated in the current directory
Configuration
Options
| Option | Description | Default |
|-----------|-----------------------------------------------------------------------------------------------------------------|----------|
| format
| string
or object
. It defines which format will the contributors be written with to the package.json
file. | string
|
| pkgRoot
| Directory path to publish. | .
|