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"
}Mettre à jour le contenu, la position, la source et/ou les paramètres de build sur commit d’un blueprint
Mise à jour partielle d’un seul blueprint. Ne déclenche PAS automatiquement de build.
Champs pris en compte :
contents— écrit une nouvelle version YAML du blueprint.position— définit la position dans l’ordre d’exécution du modèle de configuration au niveau du dépôt. Renvoie400pour un modèle de configuration au niveau de l’organisation (ces modèles n’ont pas de position).source— fait passer le repo du modegitau modedatabaseou inversement. Uniquement pour les modèles de configuration racines au niveau du dépôt.{"source": "database", "contents": ...}dissocie le blueprint de Git et utilisecontentscomme nouvelle et unique version.build_on_default_branch_commit/report_check_runs— builds déclenchés par les commits pour chaque repo et exécutions des vérifications GitHub associées. Uniquement pour les plans de configuration racines des dépôts github.com.
Renvoie 400 lorsque le corps de la requête est vide.
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"
}Autorisations
Requiert un utilisateur de service ou un jeton d’accès personnel disposant de l’autorisationManageRepoBlueprints au niveau de l’organisation. La création ou la mise à jour de blueprints au niveau de l’organisation requiert l’autorisation ManageOrgSnapshots.
Comportement
Met à jour le contenu ou la position d’un blueprint, ou les deux. Ne déclenche pas automatiquement de build.Autorisations
Identifiant de compte de service (préfixe : cog_)
Paramètres de chemin
Identifiant d’organisation (préfixe : org-)
"org-abc123def456"
Corps
Mise à jour partielle d'un blueprint de niveau organisation ou dépôt.
N'importe quel sous-ensemble de champs peut être fourni. Les champs non renseignés restent inchangés.
Fournir position, source ou un paramètre de build sur commit pour un
blueprint de niveau organisation renvoie 400 — seuls les blueprints de niveau dépôt possèdent ces champs.
Ne déclenche PAS de build.
Si ce champ est renseigné, active ou désactive le build de l’environnement à chaque push vers la branche par défaut. Accepté uniquement pour le plan de configuration racine d’un repo github.com. Chaque push de ce type met un build en file d’attente.
S'il est renseigné, remplace le corps YAML du blueprint par une nouvelle version.
S'il est renseigné, met à jour la position d'exécution de ce blueprint de niveau dépôt. Les positions n'ont pas besoin d'être uniques ; en cas d'égalité, le serveur les départage arbitrairement lors du tri pour l'exécution.
Si ce champ est renseigné, active ou désactive la publication de chaque build de commit sous forme d’exécution de vérification GitHub. Pour l’activer, 'build_on_default_branch_commit' doit être activé.
Si ce champ est renseigné, change la source du blueprint du repo. Accepté uniquement pour le blueprint racine du repo (les blueprints à périmètre restreint en héritent). 'git' récupère .devin/blueprint.yaml depuis la branche par défaut (404 si le fichier est absent) et ne peut pas être combiné avec 'contents' ; 'database' conserve le YAML actuel (ou 'contents', si fourni) et arrête la synchronisation depuis le repo. Sans effet si le blueprint est déjà dans ce mode.
git, database Réponse
Réponse réussie
Schéma public de la ressource Blueprint.
Remarque : l’énumération type pourra être étendue à l’avenir ; les clients DOIVENT gérer correctement
les valeurs inconnues. Le contenu YAML est récupéré séparément via
GET /blueprints/{id}/contents.
enterprise, org, repo Indique si chaque push vers la branche par défaut du repo déclenche un build de l’environnement. Valeur null sauf s’il s’agit du plan de configuration racine d’un repo.
Indique si chaque build de commit est signalé sur le commit sous la forme d’une exécution de vérification GitHub. Valeur null sauf s’il s’agit du plan de configuration racine d’un repo.
Emplacement où le YAML est rédigé : 'git' (synchronisé depuis .devin/blueprint.yaml dans le repo) ou 'database' (modifié via l’API ou l’interface utilisateur). Toujours null pour les blueprints au niveau Enterprise ou organisation.
git, database 
