{"id":13495071,"url":"https://github.com/streamich/git-cz","last_synced_at":"2025-05-13T16:06:39.576Z","repository":{"id":37734465,"uuid":"136182512","full_name":"streamich/git-cz","owner":"streamich","description":"Semantic Git commits","archived":false,"fork":false,"pushed_at":"2025-04-23T15:08:31.000Z","size":3079,"stargazers_count":1792,"open_issues_count":85,"forks_count":110,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-23T16:26:13.497Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/streamich.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null}},"created_at":"2018-06-05T13:35:35.000Z","updated_at":"2025-04-22T21:59:25.000Z","dependencies_parsed_at":"2023-09-30T01:24:52.444Z","dependency_job_id":"1340f456-2103-492f-b52d-1da46f618439","html_url":"https://github.com/streamich/git-cz","commit_stats":{"total_commits":573,"total_committers":33,"mean_commits":"17.363636363636363","dds":0.588132635253054,"last_synced_commit":"31e9ffdea8b482a80400c0590f25179a219bb71b"},"previous_names":[],"tags_count":44,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Fgit-cz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Fgit-cz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Fgit-cz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/streamich%2Fgit-cz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/streamich","download_url":"https://codeload.github.com/streamich/git-cz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250469664,"owners_count":21435695,"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":[],"created_at":"2024-07-31T19:01:30.931Z","updated_at":"2025-04-23T20:44:05.869Z","avatar_url":"https://github.com/streamich.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others","\u003ca name=\"git\"\u003e\u003c/a\u003eGit and accessories"],"sub_categories":[],"readme":"[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg)](http://commitizen.github.io/cz-cli/)\n\n# git-cz\n\n![image](https://user-images.githubusercontent.com/9773803/49760520-fa6c6f00-fcc4-11e8-84c4-80727f071487.png)\n\n### Without installation\n\n```shell\nnpx git-cz\n# or\nnpx git-cz -e\n```\n\n### Install globally standalone\n\n```shell\nnpm install -g git-cz\ngit-cz\n# or\ngit-cz -e\n```\n\n### Install locally with Commitizen\n\n```shell\nnpm install -g commitizen\nnpm install --save-dev git-cz\n```\n\n`package.json`:\n\n```json\n{\n  \"config\": {\n    \"commitizen\": {\n      \"path\": \"git-cz\"\n    }\n  }\n}\n```\n\nrun:\n\n```shell\ngit cz\n```\n\n### Install globally with Commitizen\n\n```shell\nnpm install -g commitizen git-cz\ncommitizen init git-cz --save-dev --save-exact\n```\n\nrun:\n\n```shell\ngit cz\n```\n\n## Custom config\n\nYou can provide a custom configuration in a `changelog.config.js` file in your repo, or in any parent folder.\ngit-cz will search for the closest config file.\nBelow is default config:\n\n```js\nmodule.exports = {\n  disableEmoji: false,\n  format: '{type}{scope}: {emoji}{subject}',\n  list: ['test', 'feat', 'fix', 'chore', 'docs', 'refactor', 'style', 'ci', 'perf'],\n  maxMessageLength: 64,\n  minMessageLength: 3,\n  questions: ['type', 'scope', 'subject', 'body', 'breaking', 'issues', 'lerna'],\n  scopes: [],\n  types: {\n    chore: {\n      description: 'Build process or auxiliary tool changes',\n      emoji: '🤖',\n      value: 'chore'\n    },\n    ci: {\n      description: 'CI related changes',\n      emoji: '🎡',\n      value: 'ci'\n    },\n    docs: {\n      description: 'Documentation only changes',\n      emoji: '✏️',\n      value: 'docs'\n    },\n    feat: {\n      description: 'A new feature',\n      emoji: '🎸',\n      value: 'feat'\n    },\n    fix: {\n      description: 'A bug fix',\n      emoji: '🐛',\n      value: 'fix'\n    },\n    perf: {\n      description: 'A code change that improves performance',\n      emoji: '⚡️',\n      value: 'perf'\n    },\n    refactor: {\n      description: 'A code change that neither fixes a bug or adds a feature',\n      emoji: '💡',\n      value: 'refactor'\n    },\n    release: {\n      description: 'Create a release commit',\n      emoji: '🏹',\n      value: 'release'\n    },\n    style: {\n      description: 'Markup, white-space, formatting, missing semi-colons...',\n      emoji: '💄',\n      value: 'style'\n    },\n    test: {\n      description: 'Adding missing tests',\n      emoji: '💍',\n      value: 'test'\n    },\n    messages: {\n      type: 'Select the type of change that you\\'re committing:',\n      customScope: 'Select the scope this component affects:',\n      subject: 'Write a short, imperative mood description of the change:\\n',\n      body: 'Provide a longer description of the change:\\n ',\n      breaking: 'List any breaking changes:\\n',\n      footer: 'Issues this commit closes, e.g #123:',\n      confirmCommit: 'The packages that this commit has affected\\n',\n    },\n  }\n};\n```\n\n## Non-interactive mode\n\nUsing `--non-interactive` flag you can run `git-cz` non-interactive mode.\n\nFor example:\n\n```bash\ngit-cz --non-interactive --type=feat --subject=\"add onClick prop to component\"\n```\n\nCLI parameters:\n\n- `--type`\n- `--subject`\n- `--scope`\n- `--body`\n- `--breaking`\n- `--issues`\n- `--lerna`\n\n## Disable Emoji\n\nUsing `--disable-emoji` flag will disable emoji.\n\nFor example:\n\n```bash\ngit-cz --disable-emoji\n```\n\n## Commit message format\n\n- A commit message consists of a **header**, **body** and **footer**.\n- The header has a **type** and a **subject**:\n\n```bash\n\u003ctype\u003e[(\u003cscope\u003e)]: \u003cemoji\u003e \u003csubject\u003e\n[BLANK LINE]\n[body]\n[BLANK LINE]\n[breaking changes]\n[BLANK LINE]\n[footer]\n```\n\nThe **header** is the only mandatory part of the commit message.\n\nThe first line (type + subject) is limited to 50 characters **[enforced]**\n\nAny other line should be limited to 72 character **[automatic wrapping]**\n\nThis allows the message to be easier to read on GitHub as well as in various git tools.\n\n### Format\n\nBy default the subject format is: `{type}{scope}: {subject}`\n\nConfiguring the `format` field in `.git-cz.json` you can customize your own:\n\n- `{type}{scope}: {emoji}{subject}`\n- `{emoji}{scope} {subject}`\n\n### Type\n\nMust be one of the following:\n\n- `test` \u0026mdash; Adding missing tests\n- `feat` \u0026mdash; A new feature\n- `fix` \u0026mdash; A bug fix\n- `chore` \u0026mdash; Build process or auxiliary tool changes\n- `docs` \u0026mdash; Documentation only changes\n- `refactor` \u0026mdash; A code change that neither fixes a bug or adds a feature\n- `style` \u0026mdash; Markup, white-space, formatting, missing semi-colons...\n- `ci` \u0026mdash; CI related changes\n- `perf` \u0026mdash; A code change that improves performance\n\n### Subject\n\nThe subject contains succinct description of the change:\n\n- Use the imperative, present tense: \"change\" not \"changed\" nor \"changes\"\n- No dot (.) at the end.\n\n### Body\n\nJust as in the **subject**, use the imperative, present tense: \"change\" not \"changed\" nor \"changes\".\nThe body should include the motivation for the change and contrast this with previous behavior.\n\n#### Affects [only on [lerna](https://lernajs.io/) environments]\n\nSelect the packages the commit affected.\n\n### Breaking Changes\n\n**Breaking Changes** must start with the words `BREAKING CHANGE: `.\n\n### Footer\n\nThe footer is the place to reference any tasks related to this commit.\n\n## Why this Fork?\n\n```bash\nnpm i -g git-cz\nadded 1 package in 0.612s\n```\n\nInstalls in 0.6s vs 31.1s.\n\n```bash\nnpm i -g mol-conventional-changelog\nadded 345 packages in 31.076s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamich%2Fgit-cz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstreamich%2Fgit-cz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstreamich%2Fgit-cz/lists"}