Skip to main content

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"]},
  {"title": "skip_changelog", "labels": ["skip_changelog"]},
]

This means for example that PR's with the label major get categorized into the major_changes section of the changelog.

PR's that hace a skip_changelog do not get added to the changelog at all.

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
  --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 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

antsichaut-0.3.0.tar.gz (6.9 kB view details)

Uploaded Source

Built Distribution

antsichaut-0.3.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file antsichaut-0.3.0.tar.gz.

File metadata

  • Download URL: antsichaut-0.3.0.tar.gz
  • Upload date:
  • Size: 6.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/5.15.0-60-generic

File hashes

Hashes for antsichaut-0.3.0.tar.gz
Algorithm Hash digest
SHA256 1e87d99b6a55c708625dfe430752e19e4774a4fdd2b5451b83a1a9ab81e1bde9
MD5 c21d42b4eeb02c91dbeee7ce725fbe8d
BLAKE2b-256 180b3099d38ff1444e34a7431108af780e480a956ee60720eb7ce89d8769277a

See more details on using hashes here.

File details

Details for the file antsichaut-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: antsichaut-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.10.6 Linux/5.15.0-60-generic

File hashes

Hashes for antsichaut-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 854ca3ce85542dbabad2588483a99abfebffb0023189aa266c271909f508d4f1
MD5 5595b4ac6e714fc44771ee589699686d
BLAKE2b-256 a39805389c0df01b0b50b51e59b4c8fcb3e1608aa4e03cd70ab6f7fe67e67f38

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page