curl --request PATCH \
--url https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"build_on_default_branch_commit": true,
"contents": "<string>",
"position": 123,
"report_check_runs": true
}
'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}"
payload = {
"build_on_default_branch_commit": True,
"contents": "<string>",
"position": 123,
"report_check_runs": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
build_on_default_branch_commit: true,
contents: '<string>',
position: 123,
report_check_runs: true
})
};
fetch('https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}', 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://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}",
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([
'build_on_default_branch_commit' => true,
'contents' => '<string>',
'position' => 123,
'report_check_runs' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}"
payload := strings.NewReader("{\n \"build_on_default_branch_commit\": true,\n \"contents\": \"<string>\",\n \"position\": 123,\n \"report_check_runs\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"build_on_default_branch_commit\": true,\n \"contents\": \"<string>\",\n \"position\": 123,\n \"report_check_runs\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"build_on_default_branch_commit\": true,\n \"contents\": \"<string>\",\n \"position\": 123,\n \"report_check_runs\": true\n}"
response = http.request(request)
puts response.read_body{
"blueprint_id": "<string>",
"created_at": 123,
"repo_name": "<string>",
"type": "enterprise",
"updated_at": 123,
"build_on_default_branch_commit": true,
"report_check_runs": true,
"source": "git"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Atualizar o conteúdo, a posição, a origem e/ou as configurações de build de commit de um blueprint
Atualização parcial de um único blueprint. NÃO aciona um build automaticamente.
Campos considerados:
contents— grava uma nova versão YAML do blueprint.position— define a posição de execução do blueprint de nível de repo. Retorna400para um blueprint em nível da organização (que não tem posição).source— alterna o repositório entre os modosgitedatabase. Apenas para blueprints raiz de nível de repo.{"source": "database", "contents": ...}desvincula o blueprint do Git e usacontentscomo a nova e única versão.build_on_default_branch_commit/report_check_runs— builds acionados por commits em cada repositório e suas execuções de verificação no GitHub. Apenas para blueprints raiz de repositórios do github.com.
Retorna 400 quando o corpo está vazio.
curl --request PATCH \
--url https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"build_on_default_branch_commit": true,
"contents": "<string>",
"position": 123,
"report_check_runs": true
}
'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}"
payload = {
"build_on_default_branch_commit": True,
"contents": "<string>",
"position": 123,
"report_check_runs": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
build_on_default_branch_commit: true,
contents: '<string>',
position: 123,
report_check_runs: true
})
};
fetch('https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}', 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://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}",
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([
'build_on_default_branch_commit' => true,
'contents' => '<string>',
'position' => 123,
'report_check_runs' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}"
payload := strings.NewReader("{\n \"build_on_default_branch_commit\": true,\n \"contents\": \"<string>\",\n \"position\": 123,\n \"report_check_runs\": true\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"build_on_default_branch_commit\": true,\n \"contents\": \"<string>\",\n \"position\": 123,\n \"report_check_runs\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/snapshot-setup/blueprints/{blueprint_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"build_on_default_branch_commit\": true,\n \"contents\": \"<string>\",\n \"position\": 123,\n \"report_check_runs\": true\n}"
response = http.request(request)
puts response.read_body{
"blueprint_id": "<string>",
"created_at": 123,
"repo_name": "<string>",
"type": "enterprise",
"updated_at": 123,
"build_on_default_branch_commit": true,
"report_check_runs": true,
"source": "git"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"error_code": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Permissões
É necessário um usuário de serviço ou um token de acesso pessoal com a permissãoManageRepoBlueprints no nível da organização. Para criar ou atualizar blueprints em nível da organização, é necessária a permissão ManageOrgSnapshots.
Comportamento
Atualiza o conteúdo e/ou a posição de um blueprint. Não aciona automaticamente uma build.Autorizações
Credencial de usuário de serviço (prefixo: cog_)
Parâmetros de caminho
ID da organização (prefixo: org-)
"org-abc123def456"
Corpo
Atualização parcial de um Blueprint em nível da organização ou de nível de repo.
Qualquer subconjunto de campos pode ser fornecido. Os campos não definidos permanecem inalterados.
Fornecer position, source ou uma configuração de build de commit em um
Blueprint em nível da organização retorna 400 — apenas Blueprints de nível de repo têm esses campos.
NÃO aciona um build.
Se definido, ativa ou desativa o build do ambiente a cada push para a branch padrão. Aceito apenas no blueprint raiz de um repositório do github.com. Cada push desse tipo coloca um build na fila.
Se definido, substitui o corpo YAML do blueprint por uma nova versão.
Se definido, atualiza a posição de execução deste blueprint de nível de repo. As posições não precisam ser exclusivas; em caso de empate, o servidor desempata arbitrariamente ao ordenar para execução.
Se definido, ativa ou desativa o envio do resultado de cada build de commit como uma execução de verificação do GitHub. Para ativar essa opção, 'build_on_default_branch_commit' deve estar ativado.
Se definido, altera a origem do blueprint do repositório. Aceito apenas no blueprint raiz do repositório (blueprints com escopo definido herdam esse valor). 'git' obtém .devin/blueprint.yaml da branch padrão (404 se o arquivo não existir) e não pode ser combinado com 'contents'; 'database' mantém o YAML atual (ou 'contents', se fornecido) e interrompe a sincronização com o repositório. Não faz alterações se o blueprint já estiver nesse modo.
git, database Resposta
Resposta Bem-Sucedida
Formato do recurso público Blueprint.
Note: o enum type poderá ser expandido no futuro; os clientes DEVEM lidar corretamente
com valores desconhecidos. O conteúdo YAML é obtido separadamente via
GET /blueprints/{id}/contents.
enterprise, org, repo Indica se cada push para a branch padrão do repositório gera um build do ambiente. Null, a menos que este seja o blueprint raiz de um repositório.
Indica se cada build de commit é registrado como uma execução de verificação do GitHub no commit. Null, a menos que este seja o blueprint raiz de um repositório.
Onde o YAML é criado: 'git' (sincronizado a partir de .devin/blueprint.yaml no repositório) ou 'database' (editado pela API/UI). Sempre null para blueprints em nível Enterprise ou da organização.
git, database 
