Generate a changelog file from a local git checkout
Project description
Generate Changelog
Use your commit log to make a beautiful changelog file.
generate-changelog does what it says: it generates a full changelog, or updates an existing one. Git tags and commits are the inputs by which generate-changelog performs its task.
The primary goal of this tool was to provide the benefits of conventional commits without requiring a strict syntax. generate-changelog accomplishes this using configurable regular expressions or commit metadata matching. The thought is natural language is easier for developers to remember and requires less tooling to enforce.
Features
Commit and tag processing
- Filter out commits and tags based on regular expression matching.
- Classify commit messages into sections such as "New", "Fixes", and "Changes" using configurable regular expressions, metadata, or custom criteria.
- Rewrite commit summary or commit body using pipelines of actions.
- Extract parts of the commit summary or body into metadata available for templates and filters.
- Built-in issue parsers for Jira, GitHub, Azure DevOps Board.
- Built-in conventional commit parser
Changelog rendering
- Templated using Jinja templates.
- Each template has a large amount of metadata that allows linking to a commit, a version diff, and issue trackers.
- Easily customize just the template you want.
- Supports full or incremental changelog generation.
Release hints
- Can use user-defined rules to suggest a release type for use in another part of your CI pipeline.
Git support
- Supports your merge or rebase workflows and complicated git histories.
- Supports of multi-authors for one commit through configurable trailers key values.
- Built-in parser for turning trailers key values into metadata.
Requirements
Python 3.9 or higher.
Installation
$ pip install generate-changelog
Usage
Create a default configuration file.
$ generate-changelog --generate-config
This creates a file named .changelog-config.yaml. You can make changes to the default configuration.
Generate your changelog via:
$ generate-changelog
GitHub Action
Inputs
config_filePath to the config file if it is not one of the defaults.starting_tagStarting tag to generate a changelog from. Default is to start from the last tag in the current change log.skip_output_pipelineDo not generate or update the CHANGELOG, but still return the release hint.branch_overrideOverride the current branch for release hint decisions.
Outputs
release_hintThe suggested release type for the current orbranch_overridebranch.
Generated files
The changelog file is written based on the configuration and value of the branch_override input.
This file is not added to your Git repo.
You must add and commit it if you want to keep it.
Example usage
on: [push]
jobs:
sample_job:
runs-on: ubuntu-latest
name: Just an example
steps:
- name: Generate changelog and release hint
id: changelog
uses: callowayproject/generate-changelog@v0
with:
config_file: .changelog-config.yaml
- name: Use the release hint
run: echo "The release hint was ${{ steps.changelog.outputs.release_hint }}"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file generate_changelog-0.17.0.tar.gz.
File metadata
- Download URL: generate_changelog-0.17.0.tar.gz
- Upload date:
- Size: 267.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
238dac453721a51cfac0c4b05ff686661660c2e91cdcb5620eb813bbd988e2bd
|
|
| MD5 |
bee93cfc3fbcfe40d2fa324da7bc1706
|
|
| BLAKE2b-256 |
cb26c5fc3134dcfb9e4b7b9af2dd02d64836ccc7c4c12989b2b57cc84860fc79
|
Provenance
The following attestation bundles were made for generate_changelog-0.17.0.tar.gz:
Publisher:
build-python.yaml on callowayproject/generate-changelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
generate_changelog-0.17.0.tar.gz -
Subject digest:
238dac453721a51cfac0c4b05ff686661660c2e91cdcb5620eb813bbd988e2bd - Sigstore transparency entry: 1185772368
- Sigstore integration time:
-
Permalink:
callowayproject/generate-changelog@dc719edf78e50ebf4f371f0888d4783f3df58408 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/callowayproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-python.yaml@dc719edf78e50ebf4f371f0888d4783f3df58408 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file generate_changelog-0.17.0-py3-none-any.whl.
File metadata
- Download URL: generate_changelog-0.17.0-py3-none-any.whl
- Upload date:
- Size: 41.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9e94d30ffdba5a3da615ea5f61028a840e4236a2914fd8f327ef1a934d6139af
|
|
| MD5 |
01a68d59a0773352338857495bbc1fab
|
|
| BLAKE2b-256 |
fd4eb8c823cb25f7ca6eb34a9f971fb0bc449f4ffbb31064a6dede2089b2c2ef
|
Provenance
The following attestation bundles were made for generate_changelog-0.17.0-py3-none-any.whl:
Publisher:
build-python.yaml on callowayproject/generate-changelog
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
generate_changelog-0.17.0-py3-none-any.whl -
Subject digest:
9e94d30ffdba5a3da615ea5f61028a840e4236a2914fd8f327ef1a934d6139af - Sigstore transparency entry: 1185772371
- Sigstore integration time:
-
Permalink:
callowayproject/generate-changelog@dc719edf78e50ebf4f371f0888d4783f3df58408 -
Branch / Tag:
refs/heads/master - Owner: https://github.com/callowayproject
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
build-python.yaml@dc719edf78e50ebf4f371f0888d4783f3df58408 -
Trigger Event:
workflow_dispatch
-
Statement type: