{"id":13527418,"url":"https://github.com/folke/semantic-release-commit-filter","last_synced_at":"2025-04-07T12:03:35.069Z","repository":{"id":42936498,"uuid":"236176906","full_name":"folke/semantic-release-commit-filter","owner":"folke","description":"📦🕵️‍♀️ Semantic-release plugin that filters git commits based on the current working directory","archived":false,"fork":false,"pushed_at":"2025-03-31T21:44:52.000Z","size":221,"stargazers_count":28,"open_issues_count":27,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-06T23:16:18.589Z","etag":null,"topics":["semantic-release","semantic-release-config","semantic-release-plugin"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/semantic-release-commit-filter","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/folke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-01-25T13:56:11.000Z","updated_at":"2025-03-22T22:17:09.000Z","dependencies_parsed_at":"2023-02-04T07:00:41.744Z","dependency_job_id":"38d27bb8-aea5-40a4-93a7-3d4319428bf4","html_url":"https://github.com/folke/semantic-release-commit-filter","commit_stats":{"total_commits":21,"total_committers":3,"mean_commits":7.0,"dds":0.4285714285714286,"last_synced_commit":"32581abfed3f66fccd7e6f690e739a0202badcc5"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folke%2Fsemantic-release-commit-filter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folke%2Fsemantic-release-commit-filter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folke%2Fsemantic-release-commit-filter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/folke%2Fsemantic-release-commit-filter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/folke","download_url":"https://codeload.github.com/folke/semantic-release-commit-filter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247648875,"owners_count":20972945,"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":["semantic-release","semantic-release-config","semantic-release-plugin"],"created_at":"2024-08-01T06:01:47.613Z","updated_at":"2025-04-07T12:03:35.037Z","avatar_url":"https://github.com/folke.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# :rocket: :female_detective: Semantic-Release Commit Filter\n\nThis package is a [shareable configuration](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/shareable-configurations.md) for [semantic-release](https://github.com/semantic-release/semantic-release) that:\n\n- configures `tagFormat` to use the package name from the current directory `${package.name}-v${version}`\n- uses `commits` only applicable to the current directory\n\n## :question: Why\n\nSuppose you have a monorepo with two packages:\n\n```\n$ tree -P \"package.json|release.config.js\" -I node_modules mono-semver\nmono-semver\n├── package.json\n├── packages\n│   ├── pkg1\n│   │   ├── package.json\n│   │   └── release.config.js\n│   └── pkg2\n│       ├── package.json\n│       └── release.config.js\n└── release.config.js\n\n3 directories, 6 files\n```\n\nNow we can run `semantic-release` in any of the package directories and/or in the top-level directory.\n\n`CHANGELOG.md` files and `package.json` versions will be maintained in every directory.\n\n## :package: Installation\n\nMake sure that if you have `semantic-version` installed globally, also install `semantic-version-commit-filter` globally. Same with local install.\n\n```console\n$ npm install --dev semantic-version-commit-filter\n\n$ yarn install --dev semantic-version-commit-filter\n```\n\n\u003e **!!** make sure you make `semantic-release` available in every `package.json` file. Additionally, every package directory needs its own semantic release configuration file.\n\n## :gear: Configuration\n\nYou can either specify this packages in your [release config file](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#extends):\n\n```json\n{\n  \"extends\": [\"semantic-release-commit-filter\"]\n}\n```\n\nor specify it as a paramater to the `semantic-release` cli\n\n```shell\n$ npx semantic-release -e semantic-release-commit-filter\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolke%2Fsemantic-release-commit-filter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffolke%2Fsemantic-release-commit-filter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffolke%2Fsemantic-release-commit-filter/lists"}