Release pipelines (beta)

This feature is in beta

To use this feature, pass in a header including the LD-API-Version key with value set to beta. Use this header with each call. To learn more, read Beta resources.

Resources that are in beta are still undergoing testing and development. They may change without notice, including becoming backwards incompatible.

Release pipelines standardize the release process for feature flags across a series of phases, where each phase consists of one or more environments. When you add a flag to a release pipeline, you create a "release" to automate that flag's progress through the pipeline.

You can use release pipelines to ensure that you correctly roll out the flag in each environment before moving on to the next. A release can use an immediate or guarded rollout to a designated audience, and can require approvals for selected environments. You can also use release pipelines to view the status of ongoing releases across all flags within a project, enforcing a standardized process and ensuring they are following best practices. To learn more, read Release pipelines.

With the release pipelines API, you can view, create, update, and delete release pipelines.

With the related releases API, you can view and update the active releases for a given flag.

To add a feature flag to an existing release pipeline, use the Update feature flag endpoint.

Get all release pipelines

Get all release pipelines for a project.

Filtering release pipelines

LaunchDarkly supports the following fields for filters:

  • query is a string that matches against the release pipeline key, name, and description. It is not case sensitive. For example: ?filter=query:examplePipeline.

  • env is a string that matches an environment key. For example: ?filter=env:production.

Request
path Parameters
projectKey
required
string <string>

The project key

query Parameters
filter
string <string>

A comma-separated list of filters. Each filter is of the form field:value. Read the endpoint description for a full list of available filter fields.

limit
integer <int64>

The maximum number of items to return. Defaults to 20.

offset
integer <int64>

Where to start in the list. Defaults to 0. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query limit.

Responses
200

Release pipeline collection

404

Invalid resource identifier

get/api/v2/projects/{projectKey}/release-pipelines
Request samples
Response samples
application/json
{
  • "items": [
    ],
  • "totalCount": 1
}

Create a release pipeline

Creates a new release pipeline.

The first release pipeline you create is automatically set as the default release pipeline for your project. To change the default release pipeline, use the Update project API to set the defaultReleasePipelineKey.

You can create up to 20 release pipelines per project.

Request
path Parameters
projectKey
required
string <string>

The project key

Request Body schema: application/json
required
description
string

The release pipeline description

key
required
string

The unique identifier of this release pipeline

name
required
string

The name of the release pipeline

required
Array of objects (CreatePhaseInput)

A logical grouping of one or more environments that share attributes for rolling out changes

tags
Array of strings

A list of tags for this release pipeline

isProjectDefault
boolean

Whether or not the newly created pipeline should be set as the default pipeline for this project

isLegacy
boolean

Whether or not the pipeline is enabled for Release Automation.

Responses
201

Release pipeline response

400

Invalid request

403

Forbidden

404

Invalid resource identifier

409

Status conflict

post/api/v2/projects/{projectKey}/release-pipelines
Request samples
application/json
{
  • "description": "Standard pipeline to roll out to production",
  • "key": "standard-pipeline",
  • "name": "Standard Pipeline",
  • "phases": [
    ],
  • "tags": [
    ],
  • "isProjectDefault": true,
  • "isLegacy": true
}
Response samples
application/json
{
  • "createdAt": "1684262711507",
  • "description": "Standard pipeline to roll out to production",
  • "key": "standard-pipeline",
  • "name": "Standard Pipeline",
  • "phases": [
    ],
  • "tags": [
    ],
  • "_version": 1,
  • "_access": {
    },
  • "isProjectDefault": true,
  • "_isLegacy": true
}

Get release pipeline by key

Get a release pipeline by key

Request
path Parameters
projectKey
required
string <string>

The project key

pipelineKey
required
string <string>

The release pipeline key

Responses
200

Release pipeline response

404

Invalid resource identifier

get/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}
Request samples
Response samples
application/json
{
  • "createdAt": "1684262711507",
  • "description": "Standard pipeline to roll out to production",
  • "key": "standard-pipeline",
  • "name": "Standard Pipeline",
  • "phases": [
    ],
  • "tags": [
    ],
  • "_version": 1,
  • "_access": {
    },
  • "isProjectDefault": true,
  • "_isLegacy": true
}

Update a release pipeline

Updates a release pipeline.

Request
path Parameters
projectKey
required
string <string>

The project key

pipelineKey
required
string <string>

The release pipeline key

Request Body schema: application/json
required
description
string

The release pipeline description

name
required
string

The name of the release pipeline

required
Array of objects (CreatePhaseInput)

A logical grouping of one or more environments that share attributes for rolling out changes

tags
Array of strings

A list of tags for this release pipeline

Responses
200

Release pipeline response

400

Invalid request

403

Forbidden

404

Invalid resource identifier

put/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}
Request samples
application/json
{
  • "description": "Standard pipeline to roll out to production",
  • "name": "Standard Pipeline",
  • "phases": [
    ],
  • "tags": [
    ]
}
Response samples
application/json
{
  • "createdAt": "1684262711507",
  • "description": "Standard pipeline to roll out to production",
  • "key": "standard-pipeline",
  • "name": "Standard Pipeline",
  • "phases": [
    ],
  • "tags": [
    ],
  • "_version": 1,
  • "_access": {
    },
  • "isProjectDefault": true,
  • "_isLegacy": true
}

Delete release pipeline

Deletes a release pipeline.

You cannot delete the default release pipeline.

If you want to delete a release pipeline that is currently the default, create a second release pipeline and set it as the default. Then delete the first release pipeline. To change the default release pipeline, use the Update project API to set the defaultReleasePipelineKey.

Request
path Parameters
projectKey
required
string <string>

The project key

pipelineKey
required
string <string>

The release pipeline key

Responses
204

Action succeeded

403

Forbidden

404

Invalid resource identifier

delete/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}
Request samples
Response samples
application/json
{
  • "code": "forbidden",
  • "message": "Forbidden. Access to the requested resource was denied."
}

Get release progressions for release pipeline

Get details on the progression of all releases, across all flags, for a release pipeline

Request
path Parameters
projectKey
required
string <string>

The project key

pipelineKey
required
string <string>

The pipeline key

query Parameters
filter
string <string>

Accepts filter by status and activePhaseId. status can take a value of completed or active. activePhaseId takes a UUID and will filter results down to releases active on the specified phase. Providing status equals completed along with an activePhaseId filter will return an error as they are disjoint sets of data. The combination of status equals active and activePhaseId will return the same results as activePhaseId alone.

limit
integer <int64>

The maximum number of items to return. Defaults to 20.

offset
integer <int64>

Where to start in the list. Defaults to 0. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query limit.

Responses
200

Release progression collection

404

Invalid resource identifier

get/api/v2/projects/{projectKey}/release-pipelines/{pipelineKey}/releases
Request samples
Response samples
application/json
{
  • "activeCount": 3,
  • "completedCount": 1,
  • "items": [
    ],
  • "phases": [
    ],
  • "totalCount": 8,
  • "_links": {
    }
}