Skip to main content
POST
Démarrer l’analyse d’ingestion

Autorisations

Requiert un utilisateur de service ou un jeton d’accès personnel disposant de l’autorisation UseAccountCodeScans au niveau de l’entreprise.

Comportement

Met en file d’attente une analyse de code en mode d’ingestion. Au lieu de détecter des problèmes de zéro, une analyse d’ingestion exploite des constats produits ailleurs (par exemple, un rapport SAST) et charge Devin de les trier et de les valider par rapport au dépôt. L’analyse est lancée de manière asynchrone par le répartiteur d’analyses et attribuée au principal appelant.

Champs de la requête

Fournissez un seul des deux champs suivants : repo_name ou repos.
  • repo_name : nom complet du repository, par exemple owner/repo.
  • repos : repositories couverts par une même analyse multidépôt, sous forme d’une liste de 200 objets maximum, chacun contenant repo_name et, éventuellement, host. La première entrée correspond au repository principal de l’analyse.
  • profile_id (obligatoire) : un profil d’analyse en mode ingest. Un profil en mode discover est rejeté avec le code d’état 400.
  • host : hôte Git du repository, s’il ne peut pas être déduit.
  • attachment_urls : URL de fichiers joints Devin (par exemple, un rapport de scanner exporté) à fournir à l’analyse. Importez d’abord les fichiers à l’aide de l’API des fichiers joints.
  • effort : normal (par défaut) réduit l’effort de raisonnement du modèle et traite des lots plus volumineux lors du triage et de la validation ; deep exécute le pipeline complet.
  • platform : plateforme sur laquelle s’exécutent les sessions de l’analyse. Indiquez soit un libellé de plateforme configuré pour l’organisation (par exemple linux, windows ou macos), soit le nom d’un pool Outposts, sans distinction de casse. Si un nom correspond à la fois à une plateforme et à un pool, la plateforme est prioritaire. En l’absence de valeur, le paramètre par défaut de l’organisation s’applique.

Erreurs

  • 400 si profile_id ne correspond pas à un profil en mode d’ingestion, ou si platform ne correspond pas à un libellé de plateforme configuré ou à un pool Outposts (le corps de l’erreur indique les valeurs disponibles).
  • 404 si l’organisation, le repository ou le profil n’est pas visible par le compte Enterprise.
  • 409 si le backlog d’analyses de l’organisation est saturé. Réessayez plus tard.
  • 422 si repo_name et repos sont tous deux fournis, si aucun des deux n’est fourni ou si repos est vide.

Autorisations

Authorization
string
header
requis

Identifiant de compte de service (préfixe : cog_)

Paramètres de chemin

org_id
string
requis

ID de l’organisation (préfixe : org-)

Exemple:

"org-abc123def456"

Corps

application/json

Corps de la requête pour démarrer une analyse de code en mode d’ingestion.

Accepte uniquement un profil d’analyse en mode d’ingestion (ingest-mode) : le profil est exécuté sur le repository indiqué (ou les repositories indiqués).

profile_id
string
requis

Profil d’analyse en mode d’ingestion à exécuter. Doit être un profil ingest ; les profils non ingest sont rejetés avec le code 400.

attachment_urls
string<uri>[] | null

URL des pièces jointes Devin à fournir à l’analyse, par exemple des fichiers téléversés via l’API des pièces jointes. Les pièces jointes doivent appartenir à l’organisation analysée.

Maximum array length: 10
Required string length: 1 - 2083
effort
enum<string> | null

Niveau d’effort d’analyse : 'normal' (par défaut) réduit l’effort de raisonnement du modèle et utilise des lots plus volumineux pour le triage et la validation ; 'deep' exécute le pipeline complet.

Options disponibles:
normal,
deep
host
string | null

Hôte Git du dépôt, s’il est connu.

platform
string | null

Lieu d’exécution des sessions de l’analyse : un libellé de plateforme configuré pour l’organisation (par exemple 'linux', 'windows', 'macos') ou le nom d’un pool Outposts (BYOB), sans distinction de casse ; les plateformes sont prioritaires lorsqu’un nom correspond aux deux. Si ce champ est omis, la valeur par défaut de l’organisation s’applique. Les valeurs non reconnues sont rejetées avec une réponse 400 dont le corps répertorie les libellés de plateforme et les noms de pools Outposts disponibles.

Maximum string length: 128
repo_name
string | null

Nom complet du repository à analyser. Fournissez un seul des deux champs : repo_name ou repos.

repos
ScanRepoRequest · object[] | null

Repositories couverts par une même analyse ; la première entrée correspond au repository principal de l’analyse. Fournissez un seul des deux champs : repo_name ou repos.

Maximum array length: 200

Réponse

Réponse réussie

Une analyse de code.

created_at
integer
requis

Date de création de l’analyse (secondes Unix).

effort
enum<string>
requis

Niveau d’effort d’analyse : 'normal' réduit l’effort de raisonnement du modèle et utilise des lots d’investigation plus importants ; 'deep' exécute le pipeline complet.

Options disponibles:
normal,
deep
host
string | null
requis

Hôte Git du dépôt, s’il est connu.

org_id
string
requis

Organisation à laquelle l’analyse appartient.

profile
CodeScanProfileResponse · object | null
requis

Profil avec lequel l’analyse a été exécutée, le cas échéant.

repo_name
string
requis

Dépôt principal de l’analyse. Les analyses multi-dépôts couvrent des dépôts supplémentaires non répertoriés ici.

scan_id
string
requis

Identifiant unique de l’analyse.

scan_type
enum<string>
requis

Type d'analyse, défini lors de la création.

Options disponibles:
security,
performance,
db-queries,
test-coverage,
dead-code,
code-quality,
cleanup,
telemetry,
accessibility,
compliance,
general,
migration-docs
status
enum<string>
requis

Statut de l’analyse : waiting, pending, running, awaiting_user_input, completed, failed ou cancelled.

Options disponibles:
waiting,
pending,
running,
awaiting_user_input,
completed,
failed,
cancelled
url
string
requis

URL de la page de l’analyse dans la webapp Devin.

outpost_pool_id
string | null

Pool Outposts sur lequel les sessions de l’analyse s’exécutent, si un pool est défini.

platform
string | null

Libellé de la plateforme hébergée sur laquelle les sessions de l’analyse s’exécutent. Null lorsque l’analyse s’exécute sur un pool Outposts ou utilise la configuration par défaut de l’organisation.

repo_full_name
string | null

Identité du repository principal incluant le nom d’hôte (p. ex. github.com/org/repo). Null pour les dépôts Perforce, qui n’ont pas d’hôte Git.