antsichaut automates ansible changelog generation from GitHub Pull Requests
Project description
Antsichaut
This is a first try at automating the filling of a changelog.yaml
used by antsibull-changelog.
You define a Github repository and a Github release. Then the script
searches all pull requests since the release and adds them to the changelog.yaml
.
The PR's get categorized into the changelog-sections based on these default labels:
group_config = [
{"title": "major_changes", "labels": ["major", "breaking"]},
{"title": "minor_changes", "labels": ["minor", "enhancement"]},
{"title": "breaking_changes", "labels": ["major", "breaking"]},
{"title": "deprecated_features", "labels": ["deprecated"]},
{"title": "removed_features", "labels": ["removed"]},
{"title": "security_fixes", "labels": ["security"]},
{"title": "bugfixes", "labels": ["bug", "bugfix"]},
]
This means for example that PR's with the label major
get categorized
into the major_changes
section of the changelog.
PR's that do not have one of the above labels get categorized into the
trivial
section.
Installation
pip install antsichaut
Manual Usage
You need a minimal changelog.yml
created by antsibull-changelog:
antsibull-changelog release --version 1.17.0
Then define the version and the github repository you want to fetch the PRs from. Either via arguments or via environment variables:
> cd /path/to/your/ansible/collection
> antsichaut \
--github_token 123456789012345678901234567890abcdefabcd \
--since_version 1.17.0 \
--to_version 1.18.0 \
--major_changes_labels=foo
--major_changes_labels=bar
--minor_changes_labels=baz
--github_repository=T-Systems-MMS/ansible-collection-icinga-director
> cd /path/to/your/ansible/collection
> export SINCE_VERSION=1.17.0 # (or `latest`)
> export TO_VERSION=1.18.0 # optional. if unset, defaults to current date
> export GITHUB_REPOSITORY=T-Systems-MMS/ansible-collection-icinga-director
> export MAJOR_CHANGES_LABELS=["foo","bar"]
> export MINOR_CHANGES_LABELS=["baz"]
> antsichaut
This will fill the changelog.yaml
with Pull Requests.
Then run antsibull-changelog generate
to create the final changelog.
Usage with Github Actions
Check this example out.
Acknowledgements and Kudos
This script was initially forked from https://github.com/saadmk11/changelog-ci/ and modified to suit my needs. Thank you, @saadmk11!
License
The code in this project is released under the MIT License.
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
Hashes for antsichaut-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d86e2bd68fc79d3700b6929a328f0ef59b1c6e1cce9b56533fa7c875c58854a7 |
|
MD5 | fb7587bf9bb60dec6cbaf1542d10b5d6 |
|
BLAKE2b-256 | cc11253e775316e622ef338d7156fdc7ecb41ec5f6b4a1612b2146b324e62e59 |