Déclencher Devin Review
curl --request POST \
--url https://api.devin.ai/v3/enterprise/pr-reviews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pr_url": "https://github.com/owner/repo/pull/123"
}
'import requests
url = "https://api.devin.ai/v3/enterprise/pr-reviews"
payload = { "pr_url": "https://github.com/owner/repo/pull/123" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({pr_url: 'https://github.com/owner/repo/pull/123'})
};
fetch('https://api.devin.ai/v3/enterprise/pr-reviews', 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/enterprise/pr-reviews",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pr_url' => 'https://github.com/owner/repo/pull/123'
]),
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/enterprise/pr-reviews"
payload := strings.NewReader("{\n \"pr_url\": \"https://github.com/owner/repo/pull/123\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.devin.ai/v3/enterprise/pr-reviews")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pr_url\": \"https://github.com/owner/repo/pull/123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/enterprise/pr-reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pr_url\": \"https://github.com/owner/repo/pull/123\"\n}"
response = http.request(request)
puts response.read_body{
"commit_sha": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"pr_number": 123,
"repo_path": "<string>",
"status": "pending"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Devin Review (Enterprise)
Déclencher Devin Review
Déclenche une Devin Review pour une pull/merge request.
Crée un enregistrement dans la base de données qui sera pris en charge par le pool de workers de revue. Récupère toujours le commit le plus récent de la PR.
POST
/
v3
/
enterprise
/
pr-reviews
Déclencher Devin Review
curl --request POST \
--url https://api.devin.ai/v3/enterprise/pr-reviews \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pr_url": "https://github.com/owner/repo/pull/123"
}
'import requests
url = "https://api.devin.ai/v3/enterprise/pr-reviews"
payload = { "pr_url": "https://github.com/owner/repo/pull/123" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({pr_url: 'https://github.com/owner/repo/pull/123'})
};
fetch('https://api.devin.ai/v3/enterprise/pr-reviews', 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/enterprise/pr-reviews",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pr_url' => 'https://github.com/owner/repo/pull/123'
]),
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/enterprise/pr-reviews"
payload := strings.NewReader("{\n \"pr_url\": \"https://github.com/owner/repo/pull/123\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.devin.ai/v3/enterprise/pr-reviews")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pr_url\": \"https://github.com/owner/repo/pull/123\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/enterprise/pr-reviews")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pr_url\": \"https://github.com/owner/repo/pull/123\"\n}"
response = http.request(request)
puts response.read_body{
"commit_sha": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"pr_number": 123,
"repo_path": "<string>",
"status": "pending"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}{
"status": 123,
"title": "<string>",
"detail": "<string>",
"errors": [
{}
],
"instance": "<string>",
"type": "about:blank"
}Autorisations
UseReviewManual au niveau de l’entreprise.Autorisations
Identifiant de compte de service (préfixe : cog_)
Corps
application/json
URL complète de la pull/merge request à examiner (p. ex. https://github.com/owner/repo/pull/123).
Exemple:
"https://github.com/owner/repo/pull/123"
Réponse
Réponse réussie
SHA du commit de tête de la PR qui sera examinée.
Date d’acceptation de la revue.
Numéro de la pull/merge request.
Chemin de dépôt normalisé avec préfixe d’hôte (p. ex. github.com/owner/repo).
État actuel de la revue. Les revues nouvellement acceptées commencent avec l’état pending.
Options disponibles:
pending, running, completed, errored, cancelled, skipped ⌘I

