---
title: "List releases by repository and name."
method: POST
path: "/get/releases"
tags: ["get", "default"]
---

# List releases by repository and name.

`POST /get/releases`

## Request

- Base URL: `{{ server_url }}/v1`
- URL: `{{ server_url }}/v1/get/releases`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`
- TypeScript: <https://skmtc.dev/athenian/apis/title/docs/get/releases/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- GetReleasesRequest: Request body of `/get/releases`. Declaration of which releases the user wants to list.
  - `account` integer, required: Account ID.
  - `releases` ReleaseNames[], required: List of repositories and release names to list.
    - `repository` string, required: Repository name which uniquely identifies any repository in any service provider. The format matches the repository URL without the protocol part. No ".git" should be appended. We support a special syntax for repository sets: "{reposet id}" adds all the repositories from the given set.
    - `names` string[], required: List of release names. For tag releases, those are the tag names. For branch releases, those are commit hashes.

## Response `200`

List of releases satisfying the specified filters.

- ReleaseSet: Release metadata and contributor user details.
  - `include` object: Mentioned deployments.
    - `users` object, required: Mapping user native (e.g., GitHub) login ID -> user details. The users are mentioned in the PRs from "PullRequestSet.data" or in the commits from "FilterCommitsRequest.data".
    - `jira` object: Mapping JIRA issue ID -> details.
    - `deployments` object: Mapping deployment names to their details.
  - `data` FilteredRelease[]: List of matching release metadata.
    - `added_lines` integer, required: Cumulative number of lines inserted since the previous release.
    - `age` string, required: Time since the previous release /\d+s/.
    - `commits` integer, required: Number of commits since the previous release.
    - `commit_authors` DeveloperID[], required: List of released commit authors' logins.
    - `deleted_lines` integer, required: Cumulative number of lines removed since the previous release.
    - `deployments` string[]: Deployments with this release.
    - `name` string, required: Title of the release.
    - `prs` ReleasedPullRequest[], required: List of released pull requests.
      - `additions` integer, required
      - `author` union, required
        - string: User name which uniquely identifies any developer on any service provider. The format matches the profile URL without the protocol part.
        - string, nullable
      - `created` string, date-time, required: When this PR was created.
      - `deletions` integer, required
      - `jira` string[]: Mapped JIRA issue IDs.
      - `number` integer, required
      - `title` string, required
    - `published` string, date-time, required: When the release was created.
    - `publisher` string, nullable, required: Login of the person who created the release.
    - `repository` string, required: Name of the repository where the release exists.
    - `sha` string, required: Release commit hash.
    - `url` string, url, required: Link to the release.

## Other responses

- `400`: The request is invalid.
- `403`: Calling user is not allowed to access the specified pull requests.
- `404`: The specified account does not exist or the user is not a member.
- `422`: The account's installation has not finished yet.
- `424`: One or more logical repositories miss the release settings.

## Changes

- **2023-01-13** `d08637dcd231`: 2 breaking, 1 info
  - the `include/allOf[#/components/schemas/IncludedDeployments]/deployments/additionalProperties/name` response property's maxLength was unset from `100` for the response status `200`
  - the `include/allOf[#/components/schemas/IncludedDeployments]/deployments/additionalProperties/name` response property's minLength was decreased from `1` to `0` for the response status `200`
  - the `include/allOf[#/components/schemas/IncludedDeployments]/deployments/additionalProperties/name` response's property pattern `^([^'\s]| ){1,100}$` was added for the status `200`

[Operation history](https://skmtc.dev/athenian/apis/title/changes/get/releases/post.md)

---

[API](https://skmtc.dev/athenian/apis/title.md) - [All operations](https://skmtc.dev/athenian/apis/title/llms.txt) - [OpenAPI document](https://skmtc.dev/athenian/apis/title/revisions/110c9f7cffdd?raw)
