Metadata-Version: 2.1
Name: antsichaut
Version: 0.1.5
Summary: antsichaut automates ansible changelog generation from GitHub Pull Requests
Home-page: https://github.com/rndmh3ro/antsichaut
License: MIT
Keywords: antsibull-changelog,release,ansible
Author: Sebastian Gumprich
Author-email: sebastian.gumprich@t-systems.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Framework :: Ansible
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Software Development :: Documentation
Requires-Dist: ConfigArgParse (>=1.4.1,<2.0.0)
Requires-Dist: requests (>=2.25.1,<3.0.0)
Requires-Dist: ruamel.yaml (>=0.17.9,<0.18.0)
Project-URL: Repository, https://github.com/rndmh3ro/antsichaut
Description-Content-Type: text/markdown

# Antsichaut

This is a very rough first try at automating the parts
of creating 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 labels and
according to this configuration (currently hardcoded):

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

Install the requirements:

```
pip install -r requirements.txt
```


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

```
> python3 antsi_change_pr_getter.py --github_token 123456789012345678901234567890abcdefabcd --since_version 1.17.0 --to_version 1.18.0 --github_repository=T-Systems-MMS/ansible-collection-icinga-director
```

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

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

