Peter Mekhaeil

Create a release in GitHub using API

There are 3 ways to create a release using the GitHub API.


  • tag_name: The name of the tag.
  • name: The name of the release.
  • body: The description of the release.

There are more parameters in the documentation.

Sample repository with releases: git-tag-release.

Using cURL

curl \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <YOUR-TOKEN>"\
  -H "X-GitHub-Api-Version: 2022-11-28" \ \
  -d '{"tag_name":"v0.0.0","name":"v0.0.0","body":"Full Changelog:"}'

Using JavaScript

Using Octokit:

const octokit = new Octokit({
  auth: 'YOUR-TOKEN'

await octokit.request('POST /repos/{owner}/{repo}/releases', {
  owner: 'OWNER',
  repo: 'REPO',
  tag_name: 'v0.0.0',
  name: 'v0.0.0',
  body: 'Full Changelog:'

Using GitHub CLI

GitHub CLI Manual

gh api \
  --method POST \
  -H "Accept: application/vnd.github+json" \
  /repos/OWNER/REPO/releases \
  -f tag_name='v0.0.0' \
  -f name='v0.0.0' \
  -f body='Full Changelog:'