{"id":18753256,"url":"https://github.com/kpn/cz-kpn","last_synced_at":"2026-01-23T12:56:55.005Z","repository":{"id":193465868,"uuid":"688848123","full_name":"kpn/cz-kpn","owner":"kpn","description":"KPN commit rules for commitizen","archived":false,"fork":false,"pushed_at":"2025-12-16T22:59:23.000Z","size":951,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":6,"default_branch":"main","last_synced_at":"2026-01-07T21:54:53.260Z","etag":null,"topics":["commitizen","commitizen-python","release-automation"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/kpnnl/cz-kpn","language":"Python","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/kpn.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,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-09-08T08:25:52.000Z","updated_at":"2025-11-07T11:47:14.000Z","dependencies_parsed_at":"2024-04-15T10:47:23.609Z","dependency_job_id":"9ba769bf-b252-4cfe-8372-4c5cef0959ac","html_url":"https://github.com/kpn/cz-kpn","commit_stats":null,"previous_names":["kpn/cz-kpn"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/kpn/cz-kpn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcz-kpn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcz-kpn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcz-kpn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcz-kpn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kpn","download_url":"https://codeload.github.com/kpn/cz-kpn/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kpn%2Fcz-kpn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28692473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T11:01:27.039Z","status":"ssl_error","status_checked_at":"2026-01-23T11:00:26.909Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["commitizen","commitizen-python","release-automation"],"created_at":"2024-11-07T17:25:01.374Z","updated_at":"2026-01-23T12:56:54.996Z","avatar_url":"https://github.com/kpn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KPN'S COMMITIZEN\n\n[![PyPI Package latest release](https://img.shields.io/pypi/v/cz-kpn.svg?style=flat-square)](https://pypi.org/project/cz-kpn/)\n[![PyPI Package download count (per month)](https://img.shields.io/pypi/dm/cz-kpn?style=flat-square)](https://pypi.org/project/cz-kpn/)\n![Docker Image Version (latest by date)](https://img.shields.io/docker/v/kpnnl/cz-kpn?label=latest%20version)\n\n![Example commit](docs/images/commit.gif)\n\n## About\n\nPlugin for [python's commitizen](https://commitizen-tools.github.io/commitizen/),\nwhich uses KPN commit rules to bump versions, update files and generate changelogs.\n\n## KPN Rules summary\n\n### Schema\n\n```bash\n\u003cPREFIX\u003e \u003cSUBJECT\u003e (#\u003cISSUE_ID\u003e)\n\n\u003cLONG_DESCRIPTION\u003e\n```\n\n| Prefix  | SemVer relation | Description                                                        |\n| ------- | --------------- | ------------------------------------------------------------------ |\n| `FIX`   | `PATCH`         | Backwards compatible change that fixes something                   |\n| `OPT`   | `PATCH`         | Other changes like refactors, docs, which are backwards compatible |\n| `NEW`   | `MINOR`         | New functionality                                                  |\n| `BREAK` | `MAJOR`         | Breaking changes                                                   |\n\n### Example\n\n```\nNEW: Add login screen (#MY-123)\n```\n\n[MORE INFO](./src/cz_kpn/cz_kpn_info.txt)\n\n## Custom configuration\n\nThis rules support custom configuration. You can set the following options in your `pyproject.toml` file:\n\n```toml\n[tool.commitizen]\n# ...\nkpn_strict_check = true\nkpn_commit_url = \"https://github.com/kpn/cz-kpn/commit/$COMMIT_REV\"\n```\n\n- `kpn_strict_check`: Enable strict mode during `cz check` and `cz commit`.\n- `kpn_commit_url`: URL to the commit page on your version control system. Which will be used to generate the changelog.\n\n## Installation\n\nInstall globally in your system\n\n```bash\npython -m pip install --user cz-kpn\n```\n\nOr add `cz-kpn` to your project:\n\n```sh\npoetry add cz-kpn --group dev\n```\n\n## Quickstart\n\n### Initialize cz-kpn in your project\n\nAnswer the questions appearing in:\n\n```sh\ncz init\n```\n\n### Bumping and changelog\n\nJust run:\n\n```sh\ncz bump\n```\n\n### Committing\n\n```sh\ncz commit\n```\n\nor the shortcut\n\n```sh\ncz c\n```\n\n### With docker\n\n```sh\ncmd=\"cz -n cz_kpn commit\"\ndocker run --rm -it -v $(pwd):/app kpnnl/cz-kpn:5.0.0 $cmd\n```\n\n## Features\n\n### Client tool to assist in the creation of a commit\n\n![Example commit](docs/images/commit.gif)]\n\nnote: gif is outdated\n\nThis command is useful for newcomers, or when you don't remember the meaning\nof each change type.\nIt will display a prompt which will guide the user in the commit creation.\n\n```bash\ncz commit\n```\n\n```bash\ngit cz commit\n```\n\n### Automatic version bump\n\nAutomatic version bump with changelog generation.\n\n```bash\ncz bump --changelog\n```\n\nNote: The `--changelog` flag is not required if `update_changelog_on_bump = true`\n\n![Example bump](docs/images/bump.gif)\n\n### Automatic changelog generation\n\nIf you don't want to generate a tag and bump the version, run:\n\n```bash\ncz changelog\n```\n\nThis will create a changelog with unreleased commits, alternatively, you can run\n\n```bash\ncz changelog --incremental\n```\n\nto add only the missing changes.\nThis is useful if you have manually modified your changelog.\n\n### Validate commit message\n\nThis command will tell you if there are any valid or invalid commit messages in\nthe given range.\n\nYou can also add it to `.pre-commit` hooks or manually as a git hook.\n\nMore info in [commitizen website](https://commitizen-tools.github.io/commitizen/check/).\n\n```bash\ncz check --rev-range ugnu348hg84hg84g..j8fj84g84h84hg83h2392\n```\n\nYou can also check against the last version:\n\n```bash\ncz check --rev-range \"$(cz version -p)..\"\n```\n\n## Configuration\n\nThe recommendation is to run `cz init` which will help you create the\nright configuration and file.\n\nYou can also add manually to your `pyproject.toml` or create a `.cz.toml` file with:\n\n```toml\n[tool.commitizen]\nname = \"cz_kpn\"\nversion = \"\u003cYOUR_CURRENT_VERSION\u003e\"\nversion_files = [\n  \"src/__version__.py\"\n]\n```\n\n## Help\n\n```bash\ncz --help\n```\n\nContents:\n\n```bash\n$ cz --help\nusage: cz [-h] [--config CONFIG] [--debug] [-n NAME] [-nr NO_RAISE]\n          {init,commit,c,ls,example,info,schema,bump,changelog,ch,check,version} ...\n\nCommitizen is a powerful release management tool that helps teams maintain consistent and meaningful commit messages while automating version management.\nFor more information, please visit https://commitizen-tools.github.io/commitizen\n\noptions:\n  -h, --help            show this help message and exit\n  --config CONFIG       the path of configuration file\n  --debug               use debug mode\n  -n NAME, --name NAME  use the given commitizen (default: cz_conventional_commits)\n  -nr NO_RAISE, --no-raise NO_RAISE\n                        comma separated error codes that won't raise error, e.g: cz -nr 1,2,3 bump. See codes at\n                        https://commitizen-tools.github.io/commitizen/exit_codes/\n\ncommands:\n  {init,commit,c,ls,example,info,schema,bump,changelog,ch,check,version}\n    init                init commitizen configuration\n    commit (c)          create new commit\n    ls                  show available commitizens\n    example             show commit example\n    info                show information about the cz\n    schema              show commit schema\n    bump                bump semantic version based on the git log\n    changelog (ch)      generate changelog (note that it will overwrite existing file)\n    check               validates that a commit message matches the commitizen schema\n    version             get the version of the installed commitizen or the current project (default: installed commitizen)\n```\n\n## Testing\n\nFor details about supported Python versions and local testing instructions, see [PYTHON_TESTING.md](./PYTHON_TESTING.md).\n\n## Contributing\n\nRead [Contributing guide](./CONTRIBUTING.md)\n\n## Using in a github action\n\n```yaml\nname: Bump version and generate changelog\n\non:\n  push:\n    branches:\n      - main\n\njobs:\n  bump-version:\n    if: ${{ !startsWith(github.event.head_commit.message, 'BUMP:') }}\n    runs-on: ubuntu-latest\n    name: \"Bump version and create changelog with commitizen\"\n    steps:\n      - name: Check out\n        uses: actions/checkout@v5\n        with:\n          fetch-depth: 0\n          token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}\n      - name: Create bump and changelog\n        uses: commitizen-tools/commitizen-action@master\n        id: cz\n        with:\n          github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}\n          changelog_increment_filename: body.md\n          extra_requirements: \"cz-kpn\"\n      - name: Release\n        uses: softprops/action-gh-release@v1\n        with:\n          body_path: \"body.md\"\n          tag_name: ${{ steps.cz.outputs.version }}  # Or use env.REVISION\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n```\n\nThe `secrets.PERSONAL_ACCESS_TOKEN` is required in order to trigger other actions observing the tag creation.\nAn alternative is to use `workflow_call` to trigger the workflow from the current workflow.\n\nRead more in [commitizen docs](https://commitizen-tools.github.io/commitizen/tutorials/github_actions/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpn%2Fcz-kpn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkpn%2Fcz-kpn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkpn%2Fcz-kpn/lists"}