mit einem Klick
release-publish
// Guides the user through thr publication of a an Ansible collection to Automation Hub and Ansible Galaxy.
// Guides the user through thr publication of a an Ansible collection to Automation Hub and Ansible Galaxy.
Stage and commit changes, push to fork, and create or update a GitHub PR against the upstream repo using gh CLI or MCP. ONLY use when the user explicitly asks to create a PR, push a PR, or update a PR. NEVER activate as part of other tasks.
Reviews pull requests and code changes in this Ansible collection against project standards and the Ansible Collection Review Checklist. Use when asked to review a PR, patch, diff, or set of code changes. Do not use for GitHub Issues or general Q&A.
Sets up a virtual environment that can be used for all python related tasks in this project.
Creates a release PR for an Ansible collection following the upstream process (without release branches). Automatically determines the next version from changelog fragments. Use when asked to create a new release, a new collection version, or create a release PR.
Runs and writes tests (lint, sanity, unit, integration) for this Ansible collection using linters and ansible-test. Use when asked to run, check, or write tests for a module or utility. Do not use for PR reviews or questions unrelated to testing.
| name | release-publish |
| description | Guides the user through thr publication of a an Ansible collection to Automation Hub and Ansible Galaxy. |
Build the collection from a specific release version, and step through how it can be published to Automation Hub and Galaxy.
References to NAMESPACE and NAME in this documnent should be replaced with the collection's actual namespace and name values. The AGENTS.md describes how those values can be found.
TRIGGER when:
DO NOT TRIGGER when:
pr-review skill instead)run-tests skill instead)version (optional): the target release version, e.g. 2.1.0. If not provided, the version is automatically determined from changelog fragments (see Step 1).ansible-core installed (pip install ansible-core)Extract collection identity from galaxy.yml:
grep -E '^(namespace|name|version):' galaxy.yml
Use the extracted values as NAMESPACE, NAME, and VERSION (if the user did not provide a target version) in all subsequent steps.
git checkout main
git pull --rebase upstream main
git fetch --tags
git status
Verify before continuing:
ls changelogs/fragments/VERSION does not already existCONFIRM: Ask the human to confirm before creating and pushing the tag. This action is irreversible.
git tag -a VERSION -m "NAMESPACE.NAME: VERSION"
git push upstream VERSION
gh release create VERSION --title "VERSION" --notes "See [CHANGELOG.rst](https://github.com/NAMESPACE/NAME/blob/main/CHANGELOG.rst) for details."
ansible-galaxy collection build .
Ensure the tar file does not contain sensitive files, such as tests/integration/integration_config.yml, or bloat, such as .venv/
tar -tf NAMESPACE-NAME-VERSION.tar.gz
At this point, the a new Github release has been created and a corresponding tag exists on the repository. The user has a tar of the built collection that they can upload to Galaxy or Hub.
Community content should only go to Galaxy. Certified content should go to both Galaxy and Hub. Validated content should only go to Hub.