{"id":13544915,"url":"https://github.com/SandroMiguel/standard-commit","last_synced_at":"2025-04-02T15:30:50.290Z","repository":{"id":47950502,"uuid":"215865337","full_name":"SandroMiguel/standard-commit","owner":"SandroMiguel","description":"Guidelines to standardize commit messages","archived":false,"fork":false,"pushed_at":"2024-11-23T01:45:54.000Z","size":1145,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T07:03:39.256Z","etag":null,"topics":["changelog","commit","commitizen","commitlint","conventions","git","husky","lint","release-please"],"latest_commit_sha":null,"homepage":"","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/SandroMiguel.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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}},"created_at":"2019-10-17T19:00:04.000Z","updated_at":"2023-03-04T05:06:35.000Z","dependencies_parsed_at":"2024-03-06T16:57:34.021Z","dependency_job_id":null,"html_url":"https://github.com/SandroMiguel/standard-commit","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandroMiguel%2Fstandard-commit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandroMiguel%2Fstandard-commit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandroMiguel%2Fstandard-commit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SandroMiguel%2Fstandard-commit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SandroMiguel","download_url":"https://codeload.github.com/SandroMiguel/standard-commit/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246841546,"owners_count":20842610,"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":["changelog","commit","commitizen","commitlint","conventions","git","husky","lint","release-please"],"created_at":"2024-08-01T11:00:54.917Z","updated_at":"2025-04-02T15:30:49.856Z","avatar_url":"https://github.com/SandroMiguel.png","language":"JavaScript","funding_links":[],"categories":["Getting Started"],"sub_categories":["Option B: Create a new repo from scratch"],"readme":"# Standard Commit\n\nGuidelines to standardize commit messages\n\n[![license](https://img.shields.io/badge/License-MIT-blue.svg?style=flat)](LICENSE)\n\n## Features\n\n- Validates commit messages against the [Conventional Commits](https://conventionalcommits.org/) specification.\n- Formats commit messages using a series of prompts.\n- Automates the generation of a CHANGELOG.md file.\n- Bumps the version and generates a new release.\n\n## Installation\n\n### Step 1 - Install Dependencies\n\nInstall the necessary dependencies locally:\n\n```sh\nyarn add --dev husky @commitlint/cli @commitlint/config-conventional cz-conventional-changelog\n```\n\n### Step 2 - Install commitizen globally\n\nInstall commitizen globally to enable standardized commit message formatting:\n\n```sh\nsudo yarn global add commitizen\n```\n\n### Step 3 - Update `package.json`\n\nUpdate your project's `package.json` file to configure commitizen:\n\n```\n{\n  ...\n\n  \"config\": {\n    \"commitizen\": {\n        \"path\": \"./node_modules/cz-conventional-changelog\",\n        \"disableScopeLowerCase\": true\n    }\n  },\n\n  ...\n}\n```\n\n### Step 4 - Configure Commitlint\n\nCreate a `commitlint.config.js` file in your project root directory to configure commitlint:\n\n```js\nmodule.exports = {\n  extends: [\"@commitlint/config-conventional\"],\n  rules: {\n    \"scope-case\": [0],\n  },\n};\n```\n\n### Step 5 - Setup husky\n\nEdit `package.json \u003e prepare` script and run it once:\n\n```sh\nnpm pkg set scripts.prepare=\"husky install\"\nyarn prepare\n```\n\nAdd a hook to run commitlint\n\n```sh\nnpx husky add .husky/commit-msg \"yarn commitlint --edit\"\n```\n\n### Step 6 - Configure commitizen\n\nConfigure commitizen to use the conventional changelog adapter:\n\n```sh\ncommitizen init cz-conventional-changelog --save-dev --save-exact\n```\n\n### Step 7 - Setup Release Please\n\nAutomate release management with Release Please:\n\n#### Deploy release-please with GitHub Action by creating a `.github/workflows/release-please.yml` file with these contents:\n\n```\non:\n    push:\n        branches:\n            - main\nname: release-please\njobs:\n    release-please:\n        runs-on: ubuntu-latest\n        steps:\n            - uses: google-github-actions/release-please-action@v3\n              with:\n                  release-type: node\n                  package-name: release-please-action\n```\n\n#### Make sure you have the correct _Workflow permissions_ on your repository (Settings \u003e Actions \u003e General):\n\n![Workflow permissions](docs/img/workflow-permissions-01.png)\n\n## Usage\n\nStandard Commit simplifies the process of writing standardized commit messages:\n\n![Commitizen template](docs/img/commitizen_01.png)\n\n### Using Commitizen\n\nInstead of `git commit`, use `git cz` to open a wizard and generate a standardized commit message:\n\n```sh\ngit add .\ngit cz\ngit push --follow-tags\n```\n\n### Normal commit command\n\nYou can still use `git commit ...` but the commit will fail if the commit message is not properly formatted.\n\n```sh\ngit add .\ngit commit -m \"feat(blog): add comment section\"\ngit push --follow-tags\n```\n\n## Credits\n\n- [commitizen](https://github.com/commitizen/cz-cli) helps format commit messages with a series of prompts\n- [husky](https://github.com/typicode/husky) will trigger the commitlint on each commit\n- [commitlint](https://github.com/conventional-changelog/commitlint) checks if your commit messages meet the [Conventional Commits](https://conventionalcommits.org/) specification\n- [release-please](https://github.com/googleapis/release-please) automates `CHANGELOG.md`, bump the version and generate a new release\n\n## Contributing\n\nWant to contribute? All contributions are welcome. Read the [contributing guide](CONTRIBUTING.md).\n\n## Questions\n\nIf you have questions tweet me at [@sandro_m_m](https://twitter.com/sandro_m_m) or [open an issue](../../issues/new).\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n**~ sharing is caring ~**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSandroMiguel%2Fstandard-commit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSandroMiguel%2Fstandard-commit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSandroMiguel%2Fstandard-commit/lists"}