Update deployment
For the complete documentation index, see llms.txt. For the full documentation snapshot, see llms-full.txt.
Update a deployment by ID. Uses a JSON patch or JSON merge patch representation of the desired changes.
The deployment ID is returned as part of the List deployments response. It is the id field of each element in the items array.
curl --request PATCH \
--url https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
[
{
"op": "replace",
"path": "/status",
"value": "finished"
}
]
'import requests
url = "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}"
payload = [
{
"op": "replace",
"path": "/status",
"value": "finished"
}
]
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([{op: 'replace', path: '/status', value: 'finished'}])
};
fetch('https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
[
'op' => 'replace',
'path' => '/status',
'value' => 'finished'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}"
payload := strings.NewReader("[\n {\n \"op\": \"replace\",\n \"path\": \"/status\",\n \"value\": \"finished\"\n }\n]")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"op\": \"replace\",\n \"path\": \"/status\",\n \"value\": \"finished\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"op\": \"replace\",\n \"path\": \"/status\",\n \"value\": \"finished\"\n }\n]"
response = http.request(request)
puts response.read_body{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"applicationKey": "billing-service",
"applicationVersion": "a90a8a2",
"startedAt": "1706701522000",
"status": "finished",
"kind": "redeployment",
"active": true,
"archived": false,
"environmentKey": "production",
"numberOfContributors": 1,
"numberOfPullRequests": 2,
"linesAdded": 100,
"linesDeleted": 50,
"leadTime": 20237000,
"endedAt": "1706712518000",
"durationMs": 10996000,
"metadata": {
"buildNumber": "1234"
},
"pullRequests": {
"totalCount": 25,
"items": [
{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"externalId": "1234",
"title": "Enable new payment structure",
"status": "merged",
"author": "jane.doe",
"createTime": "1706701522000",
"baseCommitKey": "a90a8a2",
"headCommitKey": "a90a8a2",
"filesChanged": 2,
"linesAdded": 100,
"linesDeleted": 50,
"url": "https://github.com/launchdarkly/LaunchDarkly-Docs/pull/406",
"mergeTime": "1706712518000",
"mergeCommitKey": "a90a8a2",
"deployments": {
"totalCount": 25,
"items": "<array>",
"_links": {
"next": {
"href": "/api/v2/engineering-insights/deployments?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/deployments",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTime": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"maxWaitDurationMs": 100000,
"avgWaitDurationMs": 100000,
"maxDeployDurationMs": 100000,
"avgDeployDurationMs": 100000,
"maxTotalLeadTimeMs": 1600000,
"avgTotalLeadTimeMs": 1600000
}
}
],
"_links": {
"next": {
"href": "/api/v2/engineering-insights/pull-requests?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/pull-requests",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTimeStages": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"waitDurationMs": 100000,
"deployDurationMs": 100000,
"totalLeadTimeMs": 1600000
}
}{
"code": "invalid_request",
"message": "validation failed",
"errors": [
{
"attribute": "projectKey",
"reason": "must be present"
}
]
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}Authorizations
Path Parameters
The deployment ID
Body
Response
Deployment response
The deployment ID
"a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11"
The application key
"billing-service"
The application version
"a90a8a2"
The time the deployment started
"1706701522000"
The status of the deployment
"finished"
The kind of deployment
"redeployment"
Whether the deployment is active
true
Whether the deployment is archived
false
The environment key
"production"
The number of contributors
1
The number of pull requests
2
The number of lines added
100
The number of lines deleted
50
The total lead time from first commit to deployment end in milliseconds
20237000
The time the deployment ended
"1706712518000"
The duration of the deployment in milliseconds
10996000
The metadata associated with the deployment
Show child attributes
Show child attributes
{ "buildNumber": "1234" }
The pull requests contained in the deployment
Show child attributes
Show child attributes
The flag references contained in the deployment
Show child attributes
Show child attributes
The lead time stages for the deployment
Show child attributes
Show child attributes
curl --request PATCH \
--url https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID} \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
[
{
"op": "replace",
"path": "/status",
"value": "finished"
}
]
'import requests
url = "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}"
payload = [
{
"op": "replace",
"path": "/status",
"value": "finished"
}
]
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([{op: 'replace', path: '/status', value: 'finished'}])
};
fetch('https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
[
'op' => 'replace',
'path' => '/status',
'value' => 'finished'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}"
payload := strings.NewReader("[\n {\n \"op\": \"replace\",\n \"path\": \"/status\",\n \"value\": \"finished\"\n }\n]")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"op\": \"replace\",\n \"path\": \"/status\",\n \"value\": \"finished\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.launchdarkly.com/api/v2/engineering-insights/deployments/{deploymentID}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"op\": \"replace\",\n \"path\": \"/status\",\n \"value\": \"finished\"\n }\n]"
response = http.request(request)
puts response.read_body{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"applicationKey": "billing-service",
"applicationVersion": "a90a8a2",
"startedAt": "1706701522000",
"status": "finished",
"kind": "redeployment",
"active": true,
"archived": false,
"environmentKey": "production",
"numberOfContributors": 1,
"numberOfPullRequests": 2,
"linesAdded": 100,
"linesDeleted": 50,
"leadTime": 20237000,
"endedAt": "1706712518000",
"durationMs": 10996000,
"metadata": {
"buildNumber": "1234"
},
"pullRequests": {
"totalCount": 25,
"items": [
{
"id": "a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11",
"externalId": "1234",
"title": "Enable new payment structure",
"status": "merged",
"author": "jane.doe",
"createTime": "1706701522000",
"baseCommitKey": "a90a8a2",
"headCommitKey": "a90a8a2",
"filesChanged": 2,
"linesAdded": 100,
"linesDeleted": 50,
"url": "https://github.com/launchdarkly/LaunchDarkly-Docs/pull/406",
"mergeTime": "1706712518000",
"mergeCommitKey": "a90a8a2",
"deployments": {
"totalCount": 25,
"items": "<array>",
"_links": {
"next": {
"href": "/api/v2/engineering-insights/deployments?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/deployments",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTime": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"maxWaitDurationMs": 100000,
"avgWaitDurationMs": 100000,
"maxDeployDurationMs": 100000,
"avgDeployDurationMs": 100000,
"maxTotalLeadTimeMs": 1600000,
"avgTotalLeadTimeMs": 1600000
}
}
],
"_links": {
"next": {
"href": "/api/v2/engineering-insights/pull-requests?after=a4290006-1fd1-4ca5-acf7-9f31fac61cf5",
"type": "application/json"
},
"self": {
"href": "/api/v2/engineering-insights/pull-requests",
"type": "application/json"
}
}
},
"flagReferences": {
"totalCount": 25,
"items": [
{
"projectKey": "default",
"flagKey": "enable-new-payment-structure",
"referencesAdded": 2,
"referencesRemoved": 5
}
]
},
"leadTimeStages": {
"codingDurationMs": 1000000,
"reviewDurationMs": 500000,
"waitDurationMs": 100000,
"deployDurationMs": 100000,
"totalLeadTimeMs": 1600000
}
}{
"code": "invalid_request",
"message": "validation failed",
"errors": [
{
"attribute": "projectKey",
"reason": "must be present"
}
]
}{
"code": "unauthorized",
"message": "Invalid access token"
}{
"code": "forbidden",
"message": "Forbidden. Access to the requested resource was denied."
}{
"code": "not_found",
"message": "Invalid resource identifier"
}{
"code": "rate_limited",
"message": "You've exceeded the API rate limit. Try again later."
}