Skip to main content

Antsichaut

Antsichaut automates 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 have 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

Inputs

since_version

Required the version to fetch PRs since

to_version

the version to fetch PRs to

Usage

---
- name: "Get Previous tag"
  id: previoustag
  uses: "WyriHaximus/github-action-get-previous-tag@master"
  env:
    GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"

- name: "Run antsichaut"
  uses: ansible-community/antsichaut@main
  with:
    GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
    since_version: "${{ steps.previoustag.outputs.tag }}"

Examples

Check these examples out: telekom_mms.icinga_director prometheus.prometheus

Acknowledgements and Kudos

This script was initially forked from https://github.com/saadmk11/changelog-ci/ and modified by @rndmh3ro. Thank you, @saadmk11!

From May 2021 through May 2023, this project was maintained by @rndmh3ro and then graciously transferred to the ansible community organization. Thank you @rndmh3ro!

License

The code in this project is released under the MIT License.

Metadata

Release files for antsichaut 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for antsichaut 0.4.0
File Size Uploaded
antsichaut-0.4.0.tar.gz 8.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for antsichaut 0.4.0
File Interpreter ABI Platform
antsichaut-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 17.9 kB

Release files / antsichaut-0.4.0.tar.gz

Download URL antsichaut-0.4.0.tar.gz
Size 8.5 kB
Tags Source
SHA-256 checksum
How to use checksums
5bf981d29f99e47f98b1306004baa04e0f2d0bd10784ca9731ffc61f92cb679c
BLAKE2b-256 checksum
How to use checksums
e78b2bc72bd91dbffd5894e85badb0237fef7917dbbcf3495de3cc28a121531d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.10.12 Linux/6.2.0-1018-azure

Release files / antsichaut-0.4.0-py3-none-any.whl

Download URL antsichaut-0.4.0-py3-none-any.whl
Size 9.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
86bf9c4f332a56b9bbacc8a158add4ac94ef21e05881bce3e8883f651551c0f1
BLAKE2b-256 checksum
How to use checksums
e36b14594170a72c0d6008279bd0843674c8847d6da9c49c07071b9f75d4006a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.7.1 CPython/3.10.12 Linux/6.2.0-1018-azure

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page