curl --request GET \
--url https://api.devin.ai/v3/organizations/{org_id}/code-scans/profiles/{profile_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/code-scans/profiles/{profile_id}"
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/organizations/{org_id}/code-scans/profiles/{profile_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}/code-scans/profiles/{profile_id}",
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/organizations/{org_id}/code-scans/profiles/{profile_id}"
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/organizations/{org_id}/code-scans/profiles/{profile_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/code-scans/profiles/{profile_id}")
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{
"created_at": 123,
"description": "<string>",
"exclude_globs": [
"<string>"
],
"include_globs": [
"<string>"
],
"ingestion_source_guidance": "<string>",
"investigation_guidance": "<string>",
"mode": "discover",
"name": "<string>",
"org_id": "<string>",
"post_ingestion_guidance": "<string>",
"profile_id": "<string>",
"remediation_guidance": "<string>",
"report_guidance": "<string>",
"scan_type": "security",
"threat_model_guidance": "<string>",
"triage_guidance": "<string>",
"validation_guidance": "<string>",
"visibility": "org",
"communication_guidance": "<string>",
"scan_paths": [
"<string>"
],
"type_config": {},
"validation_severities": [
"critical"
]
}{
"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"
}Obtener perfil de análisis de código (API de Devin)
Obtiene un perfil de análisis de código de Devin, incluidos el modo, el tipo de análisis, los patrones glob de inclusión/exclusión y las instrucciones, mediante la API v3 de organizaciones
curl --request GET \
--url https://api.devin.ai/v3/organizations/{org_id}/code-scans/profiles/{profile_id} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.devin.ai/v3/organizations/{org_id}/code-scans/profiles/{profile_id}"
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/organizations/{org_id}/code-scans/profiles/{profile_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}/code-scans/profiles/{profile_id}",
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/organizations/{org_id}/code-scans/profiles/{profile_id}"
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/organizations/{org_id}/code-scans/profiles/{profile_id}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.devin.ai/v3/organizations/{org_id}/code-scans/profiles/{profile_id}")
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{
"created_at": 123,
"description": "<string>",
"exclude_globs": [
"<string>"
],
"include_globs": [
"<string>"
],
"ingestion_source_guidance": "<string>",
"investigation_guidance": "<string>",
"mode": "discover",
"name": "<string>",
"org_id": "<string>",
"post_ingestion_guidance": "<string>",
"profile_id": "<string>",
"remediation_guidance": "<string>",
"report_guidance": "<string>",
"scan_type": "security",
"threat_model_guidance": "<string>",
"triage_guidance": "<string>",
"validation_guidance": "<string>",
"visibility": "org",
"communication_guidance": "<string>",
"scan_paths": [
"<string>"
],
"type_config": {},
"validation_severities": [
"critical"
]
}{
"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"
}Permisos
Requiere un usuario de servicio o un token de acceso personal con el permisoViewCodeScans en el nivel de organización.
Comportamiento
Devuelve los metadatos del perfil, su visibilidad (propiedad de la organización o compartido en toda la cuenta), los patrones glob de inclusión/exclusión y todos sus campos de instrucciones (para investigación, comunicación y origen de ingesta). Para encontrar los ID de los perfiles, use Listar perfiles de análisis de código. Devuelve404 cuando el perfil no existe o no es visible para la organización.Autorizaciones
Credencial de usuario de servicio (prefijo: cog_)
Parámetros de ruta
ID de la organización (prefijo: org-)
"org-abc123def456"
Respuesta
Respuesta correcta
Detalles completos de un perfil de análisis de código, incluidas sus instrucciones.
Cuándo se creó el perfil (segundos Unix).
Descripción del perfil, si existe.
Patrones glob de archivos que se excluirán del análisis, si existen.
Patrones glob de archivos que se incluirán en el análisis, si existen.
Instrucciones que describen el origen de la ingesta, si existen.
Instrucciones para la fase de investigación, si existen.
Modo del perfil: discover o ingest.
discover, ingest Nombre del perfil.
Organización propietaria del perfil. Null cuando el perfil se comparte en toda la cuenta.
Instrucciones para la fase posterior a la ingesta, si existen.
Identificador único del perfil.
Instrucciones para la fase de remediación, si existen.
Instrucciones para la fase de generación de informes, si existen.
Tipo de análisis que configura el perfil.
security, performance, db-queries, test-coverage, dead-code, code-quality, cleanup, telemetry, accessibility, compliance, general, migration-docs Guía que describe el modelo de amenazas, si corresponde.
Guía para la fase de triaje, si corresponde.
Guía para la fase de validación, si corresponde.
Indica si el perfil pertenece a una sola organización o si se comparte en toda la cuenta.
org, account Directrices para la fase de comunicación (actuar sobre los hallazgos finales, p. ej., notificar a responsables o partes interesadas), si las hubiera.
Rutas relativas al repositorio a las que se limita el análisis, si existen. Null o un valor vacío indica que se analiza todo el repositorio.
Configuración específica del tipo de análisis del perfil, si existe (p. ej., el sistema, el marco y los criterios de un perfil de cumplimiento).
Niveles de gravedad de los hallazgos que cubre la validación del entorno de ejecución. Null indica el valor predeterminado.
critical, high, medium, low 
