---
title: "releases"
description: "Builds of main, tags and releases, per project. Pando records them;\nthe CI runs the builds (research/plans/releases-2026-10-04).\n\n- **Main is built at merge.** A Buildkite hook taking `merged` builds\n  main's new merge commit on main (its status token is for that\n  commit), never the branch head again.\n- **Not built.** The summary reads `not_built` for a commit nothing\n  reported on and nothing requires, never green. The merge gate keeps\n  reading such a commit as `success`.\n- **Tags** are recorded by the git door from `refs/tags/*` as pushes\n  land, an annotated tag peeled to its commit; events `tag.created`\n  and `tag.deleted`; the hook event `tag`.\n- **A release** is a tag on its project's main with a title, notes and\n  files. Anyone who may merge may publish one; the commit's required\n  checks must be green unless forced (the merge rule). A published\n  release's tag can't be moved or deleted with git until the release\n  is deleted; deleting a release keeps its tag.\n- **Notes** can be written from the merges since the last published\n  release: each branch's title, who merged it, the issues it closed.\n  At most 500 merges, then \"and N more\"; notes at most 100,000\n  characters.\n- **Files** are kept in R2: at most 100 MB (100,000,000 bytes) each and\n  20 a release, SHA-256 kept. Downloads are for members unless the\n  project's switch \"Anyone can download releases\" (`releases_public`)\n  is on; it opens release files only, never code.\n"
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.gitpando.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: Pando API

Builds of main, tags and releases, per project. Pando records them;
the CI runs the builds (research/plans/releases-2026-10-04).

- **Main is built at merge.** A Buildkite hook taking `merged` builds
  main's new merge commit on main (its status token is for that
  commit), never the branch head again.
- **Not built.** The summary reads `not_built` for a commit nothing
  reported on and nothing requires, never green. The merge gate keeps
  reading such a commit as `success`.
- **Tags** are recorded by the git door from `refs/tags/*` as pushes
  land, an annotated tag peeled to its commit; events `tag.created`
  and `tag.deleted`; the hook event `tag`.
- **A release** is a tag on its project's main with a title, notes and
  files. Anyone who may merge may publish one; the commit's required
  checks must be green unless forced (the merge rule). A published
  release's tag can't be moved or deleted with git until the release
  is deleted; deleting a release keeps its tag.
- **Notes** can be written from the merges since the last published
  release: each branch's title, who merged it, the issues it closed.
  At most 500 merges, then "and N more"; notes at most 100,000
  characters.
- **Files** are kept in R2: at most 100 MB (100,000,000 bytes) each and
  20 a release, SHA-256 kept. Downloads are for members unless the
  project's switch "Anyone can download releases" (`releases_public`)
  is on; it opens release files only, never code.

## Operations

- [The project's main (its commit, checks or not built, the newest build on main) and its latest release](/api/releases/getRepoSummary/)
- [The project's tags, newest first](/api/releases/listTags/)
- [Releases, newest first (a draft by when it was made, a published one by when it was published), 30 a page](/api/releases/listReleases/)
- [Make a release (published at once unless draft)](/api/releases/createRelease/)
- [One release, with its commit's checks](/api/releases/getRelease/)
- [Delete a release and its files; its tag stays, and git can move or delete it again](/api/releases/deleteRelease/)
- [Edit its title or notes](/api/releases/updateRelease/)
- [Publish a draft](/api/releases/publishRelease/)
- [A release's notes, or (generate=1) notes written from the merges since the last published release](/api/releases/getReleaseNotes/)
- [Download a file](/api/releases/downloadReleaseFile/)
- [Upload a file (a name sent again replaces it)](/api/releases/uploadReleaseFile/)
- [Delete a file](/api/releases/deleteReleaseFile/)
- [Deployments, newest first](/api/releases/listDeployments/)
- [Record a deployment (the CI or a deploy script deploys; Pando records)](/api/releases/createDeployment/)


Source: https://docs.gitpando.com/api/tags/releases/index.md
