{"id":13580498,"url":"https://github.com/convco/convco","last_synced_at":"2025-04-06T02:31:41.643Z","repository":{"id":37014664,"uuid":"221783766","full_name":"convco/convco","owner":"convco","description":"Conventional commits, changelog, versioning, validation","archived":false,"fork":false,"pushed_at":"2025-03-01T21:34:43.000Z","size":443,"stargazers_count":257,"open_issues_count":23,"forks_count":34,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-01T22:24:38.694Z","etag":null,"topics":["changelog","commits","conventional","conventional-commits","semantic-versioning"],"latest_commit_sha":null,"homepage":"https://convco.github.io/","language":"Rust","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/convco.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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-11-14T20:45:39.000Z","updated_at":"2025-03-01T21:34:47.000Z","dependencies_parsed_at":"2023-02-14T11:15:20.318Z","dependency_job_id":"361c9df5-47a8-48f0-b9a2-3ee4705b9fae","html_url":"https://github.com/convco/convco","commit_stats":{"total_commits":184,"total_committers":15,"mean_commits":"12.266666666666667","dds":0.3315217391304348,"last_synced_commit":"2778b818f5b312a71d0caaf8f946e5cdd22df303"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/convco%2Fconvco","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/convco%2Fconvco/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/convco%2Fconvco/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/convco%2Fconvco/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/convco","download_url":"https://codeload.github.com/convco/convco/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247426042,"owners_count":20937058,"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","commits","conventional","conventional-commits","semantic-versioning"],"created_at":"2024-08-01T15:01:52.424Z","updated_at":"2025-04-06T02:31:41.633Z","avatar_url":"https://github.com/convco.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Convco\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/convco/convco/docker.yml)\n[![Crates.io](https://img.shields.io/crates/v/convco)](https://crates.io/crates/convco)\n\nA Conventional commit cli.\n\nDocumentation: \u003chttps://convco.github.io\u003e.\n\n`convco` gives tools to work with [Conventional Commits][1].\n\nIt provides the following commands:\n\n- `convco changelog`: Create a changelog file.\n- `convco check`: Checks if a range of commits is following the convention.\n- `convco commit`: Helps to make conventional commits.\n- `convco version`: Finds out the current or next version.\n- `convco completions`: Generates tab completions for shells (exists only with the feature `completions` enabled).\n\n## Installation\n\n`cargo install convco`\n\n## Building from source\n\nRust 1.60 or newer is required.\n\nBuilding with `cargo` depends on `git2` and `cmake` due to linking with `zlib-ng`.\nYou can optionally disable this by changing the defaults for a build:\n\n```sh\ncargo build --no-default-features\n```\n\n## Configuration\n\n`convco` uses follows the [conventional-changelog-config-spec][3].\n\nThe configuration file is loaded in the following order\n\n1. Load the internal defaults\n    - specified in [src/conventional/config.rs](src/conventional/config.rs),\n    - see these defaults at [`convco config --default`](https://convco.github.io/configuration#default-configuration).\n2. Then override with values from the command line, `convco -c|--config path/to/.convco`\n3. Or, if not specified via `-c|--config`, load `${PWD}/.convco` if it exists (or `${PWD}/.versionrc` for compatibility with conventional-changelog).\n\nTo get the final derived configuration run `convco config`.\n\nThe `host: ...`, `owner: ...` and `repository: ...` when not supplied via custom or the `.versionrc` are loaded\nfrom the `git remote origin` value.\n\n## Docker usage\n\n```sh\n# build the convco image\ndocker build -t convco .\n# run it on any codebase\ndocker run -v \"$PWD:/tmp\" --workdir /tmp --rm convco\n```\n\nor use it from the Docker Hub:\n\n```sh\ndocker run -v \"$PWD:/tmp\" --workdir /tmp --rm convco/convco\n```\n\n### Use it in .gitlab-ci.yml\n\nIf you've created an image and pushed it into your private registry\n\n```yaml\nconvco:check:\n  stage: test\n  image:\n    name: convco/convco:latest\n  script:\n    - check\n```\n\n## Tools\n\n### Changelog\n\nA changelog can be generated using the conventional commits.\nIt is inspired by [conventional changelog][2] and the [configuration file](#configuration) allows changes to the generated the output.\n\n```sh\nconvco changelog \u003e CHANGELOG.md\n```\n\n### Check\n\nCheck a range of revisions for compliance.\n\nIt returns a non zero exit code if some commits are not conventional.\nThis is useful in a pre-push hook.\n\n```sh\nconvco check $remote_sha..$local_sha\n```\n\n### Commit\n\nHelps to make conventional commits.\nA scope, description, body, breaking change and issues will be prompted.\nConvco will recover the previous message in case git failed to create the commit.\n\n```sh\nconvco commit --feat\n```\n\n`convco commit` can also be used as git [core.editor][4].\nIn this case `convco commit` will not invoke `git commit`, but `git` will invoke `convco commit`\n\ne.g.:\n\n```sh\nGIT_EDITOR='convco commit' git commit -p\n```\n\nWhen persisting the git editor also set [`sequence.editor`][5] when editing the todo list of an interactive rebase.\n\nOr configure a git alias:\n\n```sh\ngit config --global alias.convco '!GIT_EDITOR=\"convco commit\" git commit'\n```\n\n### Version\n\nWhen no options are given it will return the current version.\nWhen `--bump` is provided, the next version will be printed out.\nConventional commits are used to calculate the next major, minor or patch.\nIf needed one can provide `--major`, `--minor` or `--patch` to overrule the convention.\n\n```sh\nconvco version --bump\n```\n\nIt is useful to use it with release tools, such as [`cargo-release`](https://crates.io/crates/cargo-release):\n\n```sh\ncargo release $(convco version --bump)\n```\n\n### Completions\n\n\u003e [!NOTE]\n\u003e This subcommand requires the feature `completions` to be enabled.\n\nGenerates tab completion for the current shell\n\n```sh\nconvco completions\n```\n\nIf your shell cannot be detected (the `$SHELL` variable isn't present) you can specify the shell you want completions generated for.\n\n```sh\nconvco completions bash\n```\n\nThe tab completions will be outputed to the stdout so you may want to output them to a certain file to save them for future use. Here are some example files for given shells:\n\n- Bash: `/usr/share/bash-completion/completions/convco`\n- Zsh: `/usr/share/zsh/site-functions/_convco`\n- Fish: `/usr/share/fish/vendor_completions.d/convco.fish`\n- Elvish: `/usr/share/elvish/lib/convco.elv`\n\n[1]: https://www.conventionalcommits.org/\n[2]: https://github.com/conventional-changelog/conventional-changelog\n[3]: https://github.com/conventional-changelog/conventional-changelog-config-spec/blob/master/versions/2.1.0/README.md\n[4]: https://git-scm.com/docs/git-var#Documentation/git-var.txt-GITEDITOR\n[5]: https://git-scm.com/docs/git-var#Documentation/git-var.txt-GITSEQUENCEEDITOR\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconvco%2Fconvco","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconvco%2Fconvco","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconvco%2Fconvco/lists"}