{"id":16003194,"url":"https://github.com/pierredemailly/commity","last_synced_at":"2025-03-17T16:30:22.558Z","repository":{"id":42652392,"uuid":"225649885","full_name":"PierreDemailly/commity","owner":"PierreDemailly","description":"Setup commits convention fast \u0026 simple.","archived":false,"fork":false,"pushed_at":"2023-09-04T08:48:16.000Z","size":1627,"stargazers_count":4,"open_issues_count":11,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-28T01:21:43.348Z","etag":null,"topics":["command-line-tool","commit","commit-conventions","commit-message","commits","commity","conventional-commits","workflow","workflow-tool"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/PierreDemailly.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}},"created_at":"2019-12-03T15:13:05.000Z","updated_at":"2023-02-20T07:32:38.000Z","dependencies_parsed_at":"2024-10-27T15:18:26.506Z","dependency_job_id":"59bf95e9-4260-4b3a-85df-042695114b0a","html_url":"https://github.com/PierreDemailly/commity","commit_stats":{"total_commits":214,"total_committers":7,"mean_commits":"30.571428571428573","dds":0.5,"last_synced_commit":"3fb8a88efbca249384743e2c16a8482115331347"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreDemailly%2Fcommity","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreDemailly%2Fcommity/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreDemailly%2Fcommity/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PierreDemailly%2Fcommity/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PierreDemailly","download_url":"https://codeload.github.com/PierreDemailly/commity/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243870971,"owners_count":20361283,"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":["command-line-tool","commit","commit-conventions","commit-message","commits","commity","conventional-commits","workflow","workflow-tool"],"created_at":"2024-10-08T10:06:39.750Z","updated_at":"2025-03-17T16:30:21.974Z","avatar_url":"https://github.com/PierreDemailly.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Commity\n\n[![npm version](https://img.shields.io/npm/v/@pierred/commity.svg?style=for-the-badge)](https://npmjs.com/package/@pierred/commity)\n[![last commit](https://img.shields.io/github/last-commit/pierredemailly/commity.svg?style=for-the-badge)](https://github.com/PierreDemailly/commity/commits/main)\n\n**Commity** is a command line tool that will help you with commits conventions.\nYou can configure Commity fast \u0026 easily so every collaborators can follow the commit convention you need.\n\n\u003cimg src=\"./public/usage.png\" width=\"680\" alt=\"usage screenshot\"\u003e\n\n## Requirement\n\nnode \u003e= 14.16.0\n\n## Installation\n\n```shell\nnpm i -g @pierred/commity\n```\nor\n```shell\nnpm i -D @pierred/commity\n```\n\n## Get started\n\n\u003e **Warning**\n\u003e If your git diff tree is not clean, you may not want to use `-a` (`--addAll`) option.\n\n```shell\nnpm i -g @pierred/commity\ncommity init\ncommity -a\n```\nor\n```shell\nnpm i -D @pierred/commity\nnpx commity init\nnpx commity -a\n```\n\n## CLI\n\n## `commity ìnit \u003coptions\u003e` \nCreate a new `commity.json` configuration file.\n\n\u003e **Note**\nIf a configuration file already exists, you can reset the configuration file via rich-interaction.\n\n### `--overwrite` alias `-o` (works with `init`)\n\n## `commity \u003coptions\u003e`\n\nRun Commity, allow to commit from chunks via rich-interaction. Workspace must be git initialized and commity friendly.\n\n### `--addAll` alias `-a`\nAdd all changes to the index (`git add --all`) before commit.\n\n### `--push` alias `-p`\nPush to remote after commit.\n\u003e **Note**\n\u003e If cannot push e.g. because your branch has no upstream branch, commity will be able to commit anyway.\n\n### `--help` alias `-h`\nReturn usage informations.\n\n### `--version`\nBump version.\n\n## Configuration\nYou can setup `chunks` \u0026 `render` in `commity.json` file.\n\n```json\n{\n  \"chunks\": [\n    {\n      \"scope\": {\n        \"label\": \"Select the type of change that you're committing\",\n        \"type\": \"select\",\n        \"selectOptions\": [\n          {\n            \"value\": \"feat\",\n            \"description\": \"A new feature\"\n          },\n          {\n            \"value\": \"fix\",\n            \"description\": \"A bug fix\"\n          },\n          {\n            \"value\": \"docs\",\n            \"description\": \"Documentation only changes\"\n          },\n          {\n            \"value\": \"refactor\",\n            \"description\": \"Changes that neither fixes a bug or adds a feature\"\n          },\n          {\n            \"value\": \"spec\",\n            \"description\": \"Changes that affect unit tests\"\n          },\n          {\n            \"value\": \"pkg\",\n            \"description\": \"Changes that affect package (deps, config, readme...)\"\n          }\n        ]\n      }\n    },\n    {\n      \"message\": {\n        \"label\": \"Choose the commit message\",\n        \"decorations\": {\n          \"prefix\": \": \"\n        }\n      }\n    },\n    {\n      \"ticket\": {\n        \"label\": \"What is the issue id\",\n        \"decorations\": {\n          \"prefix\": \" #\"\n        },\n        \"required\": false\n      }\n    }\n  ],\n  \"render\": \"{{scope}}{{ticket}}{{message}}\"\n}\n```\n\nEach chunk is identified via the key and can be rendered as desired in `render` area.\n\n### Chunk\n\n#### `type` *string* *required*\nCan be `simple` (**default value**) or `select`.\n\n#### `label` *string* *required*\nChunk description.\n\n#### `selectOptions` *{value: string, description: string}* *required* with `type = \"select\"`\nChoices for the chunk.\n\n#### `required` *boolean*\nWeither the chunk is required.\n\n### `decorations` *{prefix: string}*\nAllow to decorate optional chunks so it don't mess the final render if the chunk is optional \u0026 skipped.\nIf the chunk is required, it's same as decorating in `render` directly.\n\n### render\nFormatted commit, replacing `{{chunk's key}}` with the user input.\n\n### Variables\n\nTheses variables can be used in `render` option and cannot be used as `chunk`.\n\n- `branchName`current git branch name\n\n**More features incoming :tada:**\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"50%\"\u003e\u003ca href=\"https://github.com/PierreDemailly\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39910767?v=4?s=100\" width=\"100px;\" alt=\"PierreDemailly\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePierreDemailly\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/PierreDemailly/commity/commits?author=PierreDemailly\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/PierreDemailly/commity/commits?author=PierreDemailly\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/PierreDemailly/commity/commits?author=PierreDemailly\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"50%\"\u003e\u003ca href=\"https://github.com/SofianD\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/39944043?v=4?s=100\" width=\"100px;\" alt=\"Yefis\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eYefis\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/PierreDemailly/commity/commits?author=SofianD\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/PierreDemailly/commity/pulls?q=is%3Apr+reviewed-by%3ASofianD\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierredemailly%2Fcommity","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpierredemailly%2Fcommity","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpierredemailly%2Fcommity/lists"}