explaingit

softprops/action-gh-release

5,611TypeScriptAudience · developerComplexity · 2/5Setup · easy

TLDR

A GitHub Action that automatically creates or updates a GitHub Release when you push a version tag, with support for uploading build files and auto-generating release notes from merged pull requests.

Mindmap

mindmap
  root((repo))
    What it does
      Create releases
      Upload artifacts
      Generate notes
      Update existing
    Trigger options
      Tag push
      Custom commit
      Draft mode
    File upload
      Glob patterns
      Multiple files
      Any build output
    Use cases
      Automate releases
      Ship binaries
      Version tagging
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Automatically publish a new GitHub Release every time you push a version tag like v1.2.3 to your repository.

USE CASE 2

Upload compiled binaries or archives as downloadable files attached to each release.

USE CASE 3

Generate release notes automatically from merged pull requests and commits since the last release.

USE CASE 4

Create draft or pre-release versions for review before making them publicly visible.

Tech stack

TypeScriptGitHub Actions

Getting it running

Difficulty · easy Time to first run · 30min

Requires a GITHUB_TOKEN secret with write permissions for contents, cross-repo releases need a personal access token.

In plain English

action-gh-release is a GitHub Action that automates the process of creating GitHub Releases. GitHub Releases are a way to package and publish a specific version of your project, typically including a description of what changed and downloadable files like compiled binaries or archives. Without this action, creating a release requires doing it manually through the GitHub website or using the API directly. This action lets you add a release step to your existing automated build workflow so releases happen automatically. The most common use is to trigger a release whenever you push a version tag to your repository, such as a tag in the format v1.2.3. You add the action as a step in a GitHub Actions workflow file, tell it to only run when the trigger is a tag push, and it handles creating the release on GitHub with the tag name and any details you provide. The action supports uploading files to the release, which is useful when your build process produces compiled output that you want users to download. You specify which files to include using file patterns, and the action attaches them to the release. If a release for that tag already exists, the action updates it instead of creating a duplicate. Release notes can be written inline in the workflow file, loaded from a text file generated during the build, or generated automatically by GitHub based on pull requests and commits merged since the last release. You can also publish releases to a different repository than the one running the workflow, which requires a personal access token with the appropriate permissions. Additional options include marking a release as a draft, marking it as a pre-release, giving it a custom name or title, and specifying which commit the release should point to. The action works on Linux, Windows, and macOS GitHub Actions runners.

Copy-paste prompts

Prompt 1
Show me a complete GitHub Actions workflow file using softprops/action-gh-release that publishes a release on every v* tag push and uploads a compiled Go binary.
Prompt 2
Help me configure action-gh-release to auto-generate release notes from all pull requests merged since the previous release.
Prompt 3
Write a workflow that creates a draft release when a tag is pushed, uploads platform-specific binaries for Windows, macOS, and Linux, then marks it as published.
Prompt 4
How do I use action-gh-release to publish a release to a different repository than the one running the workflow, and what token permissions do I need?
Open on GitHub → Explain another repo

← softprops on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.