curl --request GET \
--url https://api.devin.ai/v3/enterprise/code-scans/findings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/enterprise/code-scans/findings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v3/enterprise/code-scans/findings', 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/code-scans/findings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v3/enterprise/code-scans/findings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devin.ai/v3/enterprise/code-scans/findings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/enterprise/code-scans/findings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"category": "<string>",
"code_owners": [
"<string>"
],
"code_scan_run_id": "<string>",
"created_at": 123,
"description": "<string>",
"finding_id": "<string>",
"note": "<string>",
"orchestrator_session_id": "<string>",
"pr_url": "<string>",
"recommendation": "<string>",
"reference_snippets": [
{
"commentary": "<string>",
"end_line": 123,
"file_path": "<string>",
"start_line": 123,
"code": "<string>"
}
],
"repo_name": "<string>",
"scan_id": "<string>",
"session_id": "<string>",
"severity": "critical",
"status": "open",
"title": "<string>",
"updated_at": 123,
"fix_effort": "small",
"payoff": "quick_win",
"related_finding_ids": [
"<string>"
],
"validation_artifacts": [
"<string>"
],
"validation_evidence": "<string>",
"validation_result": "confirmed",
"validation_session_id": "<string>"
}
],
"end_cursor": "<string>",
"has_next_page": false,
"total": 123
}{
"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"
}Lister les constats d’analyse de code (API Devin)
Lister les constats d’analyse de code de Enterprise
curl --request GET \
--url https://api.devin.ai/v3/enterprise/code-scans/findings \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/enterprise/code-scans/findings"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.devin.ai/v3/enterprise/code-scans/findings', 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/code-scans/findings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.devin.ai/v3/enterprise/code-scans/findings"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.devin.ai/v3/enterprise/code-scans/findings")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/enterprise/code-scans/findings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"category": "<string>",
"code_owners": [
"<string>"
],
"code_scan_run_id": "<string>",
"created_at": 123,
"description": "<string>",
"finding_id": "<string>",
"note": "<string>",
"orchestrator_session_id": "<string>",
"pr_url": "<string>",
"recommendation": "<string>",
"reference_snippets": [
{
"commentary": "<string>",
"end_line": 123,
"file_path": "<string>",
"start_line": 123,
"code": "<string>"
}
],
"repo_name": "<string>",
"scan_id": "<string>",
"session_id": "<string>",
"severity": "critical",
"status": "open",
"title": "<string>",
"updated_at": 123,
"fix_effort": "small",
"payoff": "quick_win",
"related_finding_ids": [
"<string>"
],
"validation_artifacts": [
"<string>"
],
"validation_evidence": "<string>",
"validation_result": "confirmed",
"validation_session_id": "<string>"
}
],
"end_cursor": "<string>",
"has_next_page": false,
"total": 123
}{
"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
Nécessite un utilisateur de service ou un jeton d’accès personnel disposant de l’autorisationViewAccountCodeScans au niveau de l’Enterprise.
Articles connexes
- Filtrez par
scan_idune fois qu’une analyse lancée avec Démarrer une analyse de code a atteint l’étatcompleted(voir Lister les analyses de code pour l’interroger périodiquement). - Pour comprendre ce qu’une analyse a recherché, consultez le profil d’analyse utilisé via Lister les profils d’analyse de code et Obtenir un profil d’analyse de code.
- L’équivalent à l’échelle de l’organisation est Lister les constats d’analyse de code (Organisation).
- Pour le workflow de bout en bout, consultez Activer des analyses de code via l’API Devin.
Autorisations
Identifiant de compte de service (préfixe : cog_)
Paramètres de requête
1 <= x <= 200Filtrer les constats produits par cette analyse.
Filtrer les constats signalés dans ce dépôt.
Filtrer les constats ayant l’un de ces niveaux de gravité (critique, élevé, moyen, faible).
critical, high, medium, low Filtrer les constats ayant l’un de ces statuts (ouvert, écarté, résolu).
open, dismissed, resolved Filtrer les constats appartenant à l’un de ces quadrants de rentabilité (quick_win, big_fix, easy_fix, deprioritize). Les constats non évalués (fix_effort à null) ne sont jamais retenus par ce filtre. Filtrer les constats appartenant à l’un de ces quadrants de rentabilité (quick_win, big_fix, easy_fix, deprioritize). Les constats non évalués (fix_effort à null) ne correspondent jamais au filtre.
4quick_win, big_fix, easy_fix, deprioritize Constats créés à partir de cet horodatage Unix (en secondes).
Constats créés jusqu’à cet horodatage Unix inclus (en secondes).
Constats mis à jour à partir de cet horodatage Unix (en secondes).
Constats mis à jour jusqu’à cet horodatage Unix inclus (en secondes).
Filtrer les constats appartenant à ces organisations.
Réponse
Réponse réussie
Show child attributes
Show child attributes
Curseur pour récupérer la page suivante, ou None s’il s’agit de la dernière page.
Indique s’il reste d’autres éléments après cette page.
Nombre total facultatif (peut être omis pour des raisons de performance).

