From github-releases
Edit, publish, delete, and manage GitHub releases and their assets. Use when user says "edit release notes", "publish the draft", "delete release", "upload asset", "download release assets", "update release title", or wants to modify existing releases.
How this skill is triggered — by the user, by Claude, or both
Slash command
/github-releases:manageThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Modifies existing releases. Preview-before-execute for all operations.
Modifies existing releases. Preview-before-execute for all operations.
skills/shared/references/cross-cutting.md--json flags for structured outputgh auth status
Modify release title, notes, or metadata.
# View current release state
gh release view TAG --json tagName,name,body,isDraft,isPrerelease,targetCommitish
# Edit title
gh release edit TAG --title "New Title"
# Edit notes
gh release edit TAG --notes "New release notes content"
# Edit notes from file
gh release edit TAG --notes-file CHANGELOG.md
# Change draft status (publish)
gh release edit TAG --draft=false
# Change prerelease status
gh release edit TAG --prerelease
# Remove prerelease flag
gh release edit TAG --prerelease=false
# Change target
gh release edit TAG --target BRANCH
Workflow:
Transition a draft release to published.
# List drafts
gh release list --json tagName,name,isDraft | jq '[.[] | select(.isDraft)]'
# Preview draft content
gh release view TAG --json tagName,name,body,assets
# Publish
gh release edit TAG --draft=false
Always warn: Publishing triggers webhooks, notifications, and may trigger CI/CD workflows. Confirm with user before publishing.
Use with extreme caution. Deletion is irreversible.
# Show what will be deleted
gh release view TAG --json tagName,name,body,assets
# Delete release (keeps the git tag)
gh release delete TAG --yes
# Delete release AND the git tag
gh release delete TAG --yes --cleanup-tag
Workflow:
Read references/asset-management.md for asset naming patterns and best practices.
Upload assets:
# Upload files to an existing release
gh release upload TAG file1.zip file2.tar.gz
# Overwrite existing assets
gh release upload TAG file.zip --clobber
Download assets:
# Download all assets
gh release download TAG
# Download to specific directory
gh release download TAG --dir ./downloads
# Download specific asset by pattern
gh release download TAG --pattern "*.tar.gz"
List assets:
gh release view TAG --json assets --jq '.assets[] | "\(.name) (\(.size) bytes)"'
Delete asset:
# List assets to find the one to delete
gh release view TAG --json assets --jq '.assets[] | "\(.name) - \(.url)"'
# Delete via API (gh release doesn't have delete-asset directly)
gh api -X DELETE repos/{owner}/{repo}/releases/assets/{asset_id}
# Remove prerelease flag
gh release edit TAG --prerelease=false
# Optionally update title
gh release edit TAG --title "v1.2.0" --prerelease=false
gh release edit TAG --draft
Warn: This will remove the release from the public releases page, but won't undo any webhook/CI triggers that already fired.
Release not found:
gh release view TAG 2>&1gh release list --limit 20Permission denied:
gh repo view --json viewerPermissionAsset upload fails:
--clobber to overwrite)npx claudepluginhub ondrasek/cc-plugins --plugin github-releasesAutomates GitHub releases with gh CLI including semantic versioning, changelog generation from PRs, tagging, and asset management. Use for creating, editing, or verifying releases.
Creates GitHub releases with semantic versioning: analyzes commits for version bumps, generates changelogs, updates version files like package.json or pyproject.toml, creates git tags, publishes notes, and attaches artifacts.
Creates a GitHub release with semantic versioning, changelog generation, release notes, and optional build artifacts via tags and GitHub CLI.