{"id":16768768,"url":"https://github.com/flo-sch/semantic-release-contributors","last_synced_at":"2025-04-10T19:40:16.279Z","repository":{"id":143907990,"uuid":"205660392","full_name":"flo-sch/semantic-release-contributors","owner":"flo-sch","description":"semantic-release plugin to automatically update contributors list from git history","archived":false,"fork":false,"pushed_at":"2020-04-17T09:43:51.000Z","size":69,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-24T17:11:33.028Z","etag":null,"topics":["authoring","contributors","release","semantic-release","semantic-release-plugin"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flo-sch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-01T10:21:33.000Z","updated_at":"2024-03-08T12:52:29.000Z","dependencies_parsed_at":null,"dependency_job_id":"12a60e84-82a6-4412-b502-3809797b48b0","html_url":"https://github.com/flo-sch/semantic-release-contributors","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-sch%2Fsemantic-release-contributors","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-sch%2Fsemantic-release-contributors/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-sch%2Fsemantic-release-contributors/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flo-sch%2Fsemantic-release-contributors/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flo-sch","download_url":"https://codeload.github.com/flo-sch/semantic-release-contributors/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248281422,"owners_count":21077423,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authoring","contributors","release","semantic-release","semantic-release-plugin"],"created_at":"2024-10-13T06:12:29.508Z","updated_at":"2025-04-10T19:40:16.258Z","avatar_url":"https://github.com/flo-sch.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\" style=\"border-bottom: none;\"\u003e📦🤖 semantic-release-contributors\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/semantic-release/semantic-release\"\u003esemantic-release\u003c/a\u003e\n  plugin to automatically update contributors list based on commits history\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/semantic-release/semantic-release\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"Semantic Release\" src=\"https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"http://commitizen.github.io/cz-cli/\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"Commitizen friendly\" src=\"https://img.shields.io/badge/commitizen-friendly-brightgreen.svg\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://travis-ci.org/flo-sch/semantic-release-contributors\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"Travis\" src=\"https://img.shields.io/travis/flo-sch/semantic-release-contributors.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/flo-sch/semantic-release-contributors\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"Codecov\" src=\"https://img.shields.io/codecov/c/github/flo-sch/semantic-release-contributors.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://snyk.io/test/github/flo-sch/semantic-release-contributors?targetFile=package.json\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"Known Vulnerabilities\" src=\"https://snyk.io/test/github/flo-sch/semantic-release-contributors/badge.svg?targetFile=package.json\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/flo-sch/semantic-release-contributors/maintainability\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"Maintainability\" src=\"https://api.codeclimate.com/v1/badges/0c542e19db095ddb9947/maintainability\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/semantic-release-contributors\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"npm latest version\" src=\"https://img.shields.io/npm/v/semantic-release-contributors/latest.svg\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://bundlephobia.com/result?p=semantic-release-contributors\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"npm bundle size\" src=\"https://img.shields.io/bundlephobia/min/semantic-release-contributors\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://bundlephobia.com/result?p=semantic-release-contributors\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"npm bundle size\" src=\"https://img.shields.io/bundlephobia/minzip/semantic-release-contributors\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://img.shields.io/npm/l/semantic-release-contributors\" rel=\"nofollow\"\u003e\n    \u003cimg alt=\"LICENSE\" src=\"https://img.shields.io/npm/l/semantic-release-contributors\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n------------------\n\n| Step           | Description                                                                                         |\n|----------------|-----------------------------------------------------------------------------------------------------|\n| `prepare`      | Determine the contributors list by analyzing commits history.                                       |\n\n## Install\n\n```bash\nnpm install semantic-release-contributors -D\n```\n\n## How does it work\n\nWhenener someone commit to the project, his/her name will be appended\nto the [contributors list of your package.json](https://docs.npmjs.com/files/package.json#people-fields-author-contributors) file.\n\nIf `Paul Smith` commits to a project with the following set-up:\n\n```json5\n{\n  \"name\": \"your-project\",\n  \"author\": \"Barney Rubble \u003cb@rubble.com\u003e\",\n  \"contributors\": [\n    \"John Doe \u003cj@doe.com\u003e (https://johndoe.com)\"\n  ]\n}\n```\n\nThe `package.json` file would then be updated to:\n\n```json5\n{\n  \"name\": \"your-project\",\n  \"author\": \"Barney Rubble \u003cb@rubble.com\u003e\",\n  \"contributors\": [\n    \"John Doe \u003cj@doe.com\u003e (https://johndoe.com)\",\n    \"Paul Smith \u003cp.smith@domain.tld\u003e\"\n  ]\n}\n```\n\n**NOTE**: this package internally deserialize the contributors to\nobjects (name, email, url) and make sure duplicated emails are removed.\nContributors objects are then potentially re-serialized before being written\nto the package file (unless you opt for a different format)\n\n## Usage\n\nThe plugin can be configured in the [**semantic-release** configuration file](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration):\n\n**IMPORTANT**: since this plugin acts on semantic-release's \"prepare\" step\nand do not commit the updated package.json file itself,\nit *requires* to be placed *before* \"@semantic-release/git\".\n\n```json5\n{\n  \"plugins\": [\n    // important: insert it before @semantic-release/git\n    [\"semantic-release-contributors\", {\n      \"format\": \"string\",\n      \"pkgRoot\": \".\"\n    }],\n    // ...\n    \"@semantic-release/git\"\n    // ...\n  ]\n}\n```\n\nWith this example:\n\n* the contributors will be stringified to `name \u003cemail\u003e`\n* the package file containing the contributors will be read\nthen updated in the current directory\n\n## Configuration\n\n### Options\n\n| Option    | Description                                                                                                     | Default  |\n|-----------|-----------------------------------------------------------------------------------------------------------------|----------|\n| `format`  | `string` or `object`. It defines which format will the contributors be written with to the `package.json` file. | `string` |\n| `pkgRoot` | Directory path to publish.                                                                                      | `.` |\n\n## Similar or related projects\n\n* [parse-author](https://www.npmjs.com/package/parse-author)\n* [stringify-author](https://www.npmjs.com/package/stringify-author)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Kill all humans\" src=\"media/bender-with-memory.jpg\"\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflo-sch%2Fsemantic-release-contributors","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflo-sch%2Fsemantic-release-contributors","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflo-sch%2Fsemantic-release-contributors/lists"}