antsichaut


Nameantsichaut JSON
Version 0.4.0 PyPI version JSON
download
home_pagehttps://github.com/rndmh3ro/antsichaut
Summaryantsichaut automates ansible changelog generation from GitHub Pull Requests
upload_time2024-01-09 08:30:02
maintainer
docs_urlNone
authorSebastian Gumprich
requires_python>=3.8,<4.0
licenseMIT
keywords antsibull-changelog release ansible
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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

```yaml
---
- 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](https://github.com/telekom-mms/ansible-collection-icinga-director/blob/ecb35f7ac04e7d14d2ccf21299acfc8771b8f3fd/.github/workflows/release.yml)
[prometheus.prometheus](https://github.com/prometheus-community/ansible/blob/11802e4e9a8f785d3f6ad23cd5af24d62ed6f5a4/.github/workflows/release.yml)

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rndmh3ro/antsichaut",
    "name": "antsichaut",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8,<4.0",
    "maintainer_email": "",
    "keywords": "antsibull-changelog,release,ansible",
    "author": "Sebastian Gumprich",
    "author_email": "sebastian.gumprich@t-systems.com",
    "download_url": "https://files.pythonhosted.org/packages/e7/8b/2bc72bd91dbffd5894e85badb0237fef7917dbbcf3495de3cc28a121531d/antsichaut-0.4.0.tar.gz",
    "platform": null,
    "description": "# Antsichaut\n\nAntsichaut automates the filling of a `changelog.yaml` used by antsibull-changelog.\n\nYou define a Github repository and a Github release. Then the script\nsearches all pull requests since the release and adds them to the `changelog.yaml`.\n\nThe PR's get categorized into the changelog-sections based on these default labels:\n\n```\ngroup_config = [\n  {\"title\": \"major_changes\", \"labels\": [\"major\", \"breaking\"]},\n  {\"title\": \"minor_changes\", \"labels\": [\"minor\", \"enhancement\"]},\n  {\"title\": \"breaking_changes\", \"labels\": [\"major\", \"breaking\"]},\n  {\"title\": \"deprecated_features\", \"labels\": [\"deprecated\"]},\n  {\"title\": \"removed_features\", \"labels\": [\"removed\"]},\n  {\"title\": \"security_fixes\", \"labels\": [\"security\"]},\n  {\"title\": \"bugfixes\", \"labels\": [\"bug\", \"bugfix\"]},\n  {\"title\": \"skip_changelog\", \"labels\": [\"skip_changelog\"]},\n]\n```\n\nThis means for example that PR's with the label `major` get categorized\ninto the `major_changes` section of the changelog.\n\nPR's that have a `skip_changelog` do not get added to the changelog at all.\n\nPR's that do not have one of the above labels get categorized into the\n`trivial` section.\n\n## Installation\n\n```\npip install antsichaut\n```\n\n## Manual Usage\n\nYou need a minimal `changelog.yml` created by antsibull-changelog:\n\n```\nantsibull-changelog release --version 1.17.0\n```\n\nThen define the version and the github repository you want to fetch the PRs from.\nEither via arguments or via environment variables:\n\n```\n> cd /path/to/your/ansible/collection\n> antsichaut \\\n  --github_token 123456789012345678901234567890abcdefabcd \\\n  --since_version 1.17.0 \\\n  --to_version 1.18.0 \\\n  --major_changes_labels=foo\n  --major_changes_labels=bar\n  --minor_changes_labels=baz\n  --repository=T-Systems-MMS/ansible-collection-icinga-director\n```\n\n```\n> cd /path/to/your/ansible/collection\n> export SINCE_VERSION=1.17.0  # (or `latest`)\n> export TO_VERSION=1.18.0     # optional. if unset, defaults to current date\n> export REPOSITORY=T-Systems-MMS/ansible-collection-icinga-director\n> export MAJOR_CHANGES_LABELS=[\"foo\",\"bar\"]\n> export MINOR_CHANGES_LABELS=[\"baz\"]\n> antsichaut\n```\n\nThis will fill the `changelog.yaml` with Pull Requests.\nThen run `antsibull-changelog generate` to create the final changelog.\n\n## Usage with Github Actions\n\n### Inputs\n\n#### `since_version`\n\n**Required** the version to fetch PRs since\n\n#### `to_version`\n\nthe version to fetch PRs to\n\n### Usage\n\n```yaml\n---\n- name: \"Get Previous tag\"\n  id: previoustag\n  uses: \"WyriHaximus/github-action-get-previous-tag@master\"\n  env:\n    GITHUB_TOKEN: \"${{ secrets.GITHUB_TOKEN }}\"\n\n- name: \"Run antsichaut\"\n  uses: ansible-community/antsichaut@main\n  with:\n    GITHUB_TOKEN: \"${{ secrets.GITHUB_TOKEN }}\"\n    since_version: \"${{ steps.previoustag.outputs.tag }}\"\n```\n\n### Examples\n\nCheck these examples out:\n[telekom_mms.icinga_director](https://github.com/telekom-mms/ansible-collection-icinga-director/blob/ecb35f7ac04e7d14d2ccf21299acfc8771b8f3fd/.github/workflows/release.yml)\n[prometheus.prometheus](https://github.com/prometheus-community/ansible/blob/11802e4e9a8f785d3f6ad23cd5af24d62ed6f5a4/.github/workflows/release.yml)\n\n## Acknowledgements and Kudos\n\nThis script was initially forked from https://github.com/saadmk11/changelog-ci/\nand modified by @rndmh3ro. Thank you, @saadmk11!\n\nFrom May 2021 through May 2023, this project was maintained by @rndmh3ro and then graciously transferred to the ansible community organization. Thank you @rndmh3ro!\n\n## License\n\nThe code in this project is released under the MIT License.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "antsichaut automates ansible changelog generation from GitHub Pull Requests",
    "version": "0.4.0",
    "project_urls": {
        "Homepage": "https://github.com/rndmh3ro/antsichaut",
        "Repository": "https://github.com/rndmh3ro/antsichaut"
    },
    "split_keywords": [
        "antsibull-changelog",
        "release",
        "ansible"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e36b14594170a72c0d6008279bd0843674c8847d6da9c49c07071b9f75d4006a",
                "md5": "2b758783c946e41a8742a11be2cd62da",
                "sha256": "86bf9c4f332a56b9bbacc8a158add4ac94ef21e05881bce3e8883f651551c0f1"
            },
            "downloads": -1,
            "filename": "antsichaut-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2b758783c946e41a8742a11be2cd62da",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8,<4.0",
            "size": 9438,
            "upload_time": "2024-01-09T08:29:59",
            "upload_time_iso_8601": "2024-01-09T08:29:59.888554Z",
            "url": "https://files.pythonhosted.org/packages/e3/6b/14594170a72c0d6008279bd0843674c8847d6da9c49c07071b9f75d4006a/antsichaut-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e78b2bc72bd91dbffd5894e85badb0237fef7917dbbcf3495de3cc28a121531d",
                "md5": "90d87933e771760919643ed8d170c7a3",
                "sha256": "5bf981d29f99e47f98b1306004baa04e0f2d0bd10784ca9731ffc61f92cb679c"
            },
            "downloads": -1,
            "filename": "antsichaut-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "90d87933e771760919643ed8d170c7a3",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8,<4.0",
            "size": 8468,
            "upload_time": "2024-01-09T08:30:02",
            "upload_time_iso_8601": "2024-01-09T08:30:02.019093Z",
            "url": "https://files.pythonhosted.org/packages/e7/8b/2bc72bd91dbffd5894e85badb0237fef7917dbbcf3495de3cc28a121531d/antsichaut-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-09 08:30:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rndmh3ro",
    "github_project": "antsichaut",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "antsichaut"
}
        
Elapsed time: 0.21319s