Skip to content
Back to skills

Github Releases Notes

ASecurity

Create releases, automate release notes, and manage assets.

  • 2 stars
  • 0 votes
  • 0 copies
  • 8 views
  • Added September 10, 2026
ai-agentsgobashgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add LoopyLuci/Skills --skill github-releases-notes --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Github Releases Notes?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Github Releases Notes
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/loopyluci-github-releases-notes/badge)](https://www.skillsdirectory.com/skills/loopyluci-github-releases-notes)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: github-releases-notes
description: Create releases, automate release notes, and manage assets.
---

# GitHub Releases & Release Notes

**Trigger**: Use when creating a GitHub release, generating release notes, or automating the release pipeline.

## Creating Releases

### Manual (gh CLI)
```bash
# Simple release from latest tag
gh release create v1.2.0

# With custom title and notes
gh release create v1.2.0 \
  --title "v1.2.0 — Authentication Overhaul" \
  --notes "See changelog for details"

# Auto-generate from commits since last tag
gh release create v1.2.0 \
  --generate-notes

# With assets
gh release create v1.2.0 \
  ./dist/app-linux.tar.gz \
  ./dist/app-macos.dmg \
  ./dist/app-windows.exe \
  --title "v1.2.0"

# Create from a specific branch
gh release create v1.2.0 --target main
```

### Release Types
```bash
gh release create v1.2.0                           # Latest release
gh release create v1.2.0 --prerelease               # Pre-release
gh release create v1.2.0 --draft                    # Draft (not visible)
gh release create v1.2.0 --discussion-category announcements  # Enable discussions
```

## Viewing & Managing

```bash
gh release list
gh release list --limit 50
gh release view v1.2.0
gh release view v1.2.0 --json body,tagName,createdAt
gh release download v1.2.0
gh release download v1.2.0 --pattern "*.tar.gz"
gh release edit v1.2.0 --title "Updated Title" --notes "Updated notes"
gh release delete v1.2.0
```

## Automated Release Workflow

### GitHub Actions — Release on Tag Push
```yaml
name: Release
on:
  push:
    tags: ['v*']
jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: |
          mkdir -p dist
          echo "release-$(git describe --tags)" > dist/version.txt
      - name: Create Release
        uses: softprops/action-gh-release@v2
        with:
          files: dist/*
          generate_release_notes: true
          make_latest: true
```

### Release Notes Generation (manual)
```bash
# Generate notes from git log
git log --oneline --no-merges $(git tag --sort=-version:refname | head -1)..HEAD | \
  sed 's/^/  * /' > release-notes.md

# Categorized by type
echo "## Features" >> release-notes.md
git log --oneline --no-merges v1.0.0..v1.1.0 | grep "^.*feat" | sed 's/^/  * /' >> release-notes.md
echo "## Fixes" >> release-notes.md
git log --oneline --no-merges v1.0.0..v1.1.0 | grep "^.*fix" | sed 's/^/  * /' >> release-notes.md
```

## Multi-Platform Release

```yaml
name: Multi-Platform Release
on:
  push:
    tags: ['v*']
jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
      - run: cargo build --release
      - uses: actions/upload-artifact@v4
        with:
          name: binary-${{ runner.os }}
          path: target/release/myapp*
  release:
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/download-artifact@v4
      - uses: softprops/action-gh-release@v2
        with:
          files: binary-*/*
          generate_release_notes: true
```

## Pitfalls
- **Tag without release**: `git push --tags` creates the tag but no GitHub release page
- **Asset size limit**: GitHub limits release assets to 2 GB total, 500 MB per file
- **Draft releases**: Not visible via API until published — CI won't find them

## Verification
```bash
gh release list --limit 5
gh release view $(gh release list --json tagName --jq '.[0].tagName')
git tag -n | head -10
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.