release

Update a Runway release

put/app/{appId}/release/{releaseId}

Request

  • Base URL
    https://api.runway.team
  • URL
    https://api.runway.team/app/{appId}/release/{releaseId}
  • Auth
    API key in header X-API-Key

Path parameters

releaseIdstring required

The id of the release. Constructed from the app's id and the release version like so: {appId}:{version}. For the GET single release endpoint, the following keywords are also accepted: live (latest completed release), next or current (current active release).

appIdstring required

The id of the app

Request body

versionstring required
isHotfixboolean

Whether the release is a hotfix.

targetKickoffDatestring date-time

The target kickoff date for the release. All platforms. Pass null to clear the date.

targetSubmitDatestring date-time

The target submission date for the release. iOS and Android platforms only. Pass null to clear the date.

targetReleaseDatestring date-time

The target release date for the release. iOS platforms only. Pass null to clear the date.

releasePilotIdstring

The user id (email) of the release pilot for the release. Pass the string 'FROM_ROTATION' to set the release pilot based on the pilot rotation schedule.

releaseNamestring

A user-friendly name for your release.

releaseDescriptionstring

A description of the release for internal use by your team.

Example request

{
  "version": "1.1.0",
  "targetKickoffDate": "2022-03-02T01:15:00Z",
  "targetSubmitDate": "2022-03-02T01:15:00Z",
  "targetReleaseDate": "2022-03-02T01:15:00Z",
  "releasePilotId": "sully@example.com",
  "releaseName": "Release 1.2.3",
  "releaseDescription": "Description of release 1.2.3..."
}

Response

The details of a release

idstring required

The id of the release entity

versionstring required

The release version

status'active' | 'completed' | 'canceled' required

The status of a release

type'major' | 'minor' | 'point' | 'hotfix' | 'rollback' required

The type of release

timelinePhase'upcoming' | 'current' | 'completed' required

The timeline phase of the release

isReleaseTaggedboolean required

Indicates whether the release has been tagged in VCS

isKickedOffboolean required

Indicates whether the release has been kicked off in Runway

isSubmittedboolean required

Indicates whether the release has been submitted for review in the app store

isReleasedboolean required

Indicates whether the release has been released to users. For iOS platforms, this corresponds to the App Store status being 'READY_FOR_SALE'. For Android platforms, this corresponds to the version's status being 'inProgress' or 'completed'

createdAtstring date-time required

The date and time when the release was created in Runway

releasePilotIdstring

The release pilot for the release

targetKickoffDatestring date-time

The target kickoff date and time for the release

targetSubmissionDatestring date-time

The target submission date and time for the release

targetReleaseDatestring date-time

The target submission date and time for the release

releaseBranchstring

The detected release branch for the release

updatedAtstring date-time

The date and time when the release was last updated in Runway

kickedOffAtstring date-time

The date and time when the release was kicked off in Runway

submittedAtstring date-time

The date and time when the a build for the release was submitted for review

releasedAtstring date-time

The date and time when a build for the release was made available to users. For iOS platforms, this corresponds to the App Store status being 'READY_FOR_SALE'. For Android platforms, this corresponds to the version's status being 'inProgress' or 'completed'

rolloutCompletedAtstring date-time

The date and time when the rollout completed for the release (phased release or staged rollout reaching 100%)

completedAtstring date-time

The date and time when the release was marked as completed in Runway. For iOS and Android platforms, this corresponds to the date on which a build was released to users based on the app store status. For other platforms, it corresponds to the date and time on which the production CI/CD workflow successfully completed for the first time.

releaseSummarystring

The automatically generated summary of the release.

customMetadataCustomMetadata

Custom metadata attached to the release, keyed by a stable id derived from each entry's title. Each value is an entry with a human-readable title and a value that may be any JSON type.

Example response

{
  "id": "fake-app:1.0.0",
  "version": "1.0.0",
  "createdAt": "2022-03-02T01:15:00Z",
  "releasePilotId": "sully@example.com",
  "targetKickoffDate": "2022-03-02T01:15:00Z",
  "targetSubmissionDate": "2022-03-02T01:15:00Z",
  "targetReleaseDate": "2022-03-02T01:15:00Z",
  "releaseBranch": "release-1.0.0",
  "updatedAt": "2022-03-02T01:15:00Z",
  "kickedOffAt": "2022-03-02T01:15:00Z",
  "submittedAt": "2022-03-02T01:15:00Z",
  "releasedAt": "2022-03-02T01:15:00Z",
  "rolloutCompletedAt": "2022-03-02T01:15:00Z",
  "completedAt": "2022-03-02T01:15:00Z",
  "regressionTestingStatus": {
    "updatedAt": "2022-03-02T01:15:00Z"
  },
  "workItems": [
    {
      "id": "acb-1234",
      "ticket": {
        "createdAt": "2022-03-02T01:15:00Z",
        "updatedAt": "2022-03-02T01:15:00Z"
      },
      "code": {
        "committedAt": "2022-03-02T01:15:00Z",
        "authoredAt": "2022-03-02T01:15:00Z"
      }
    }
  ],
  "steps": [
    {
      "data": {
        "approvalItems": [
          {
            "title": "Gather new release notes",
            "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
            "oneOffForVersion": "1.1.0",
            "status": {
              "createdAt": "2022-03-02T01:15:00Z"
            }
          }
        ]
      },
      "checklistItems": [
        {
          "title": "Gather new release notes",
          "description": "Contact sully@demo.com on the copywriting team to get new release notes together.",
          "oneOffForVersion": "1.1.0",
          "status": {
            "createdAt": "2022-03-02T01:15:00Z"
          }
        }
      ]
    }
  ],
  "customMetadata": {
    "incident-4821": {
      "title": "Incident link",
      "value": "https://incidents.example.com/4821"
    }
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.