Skip to main content
POST
Lancer l’analyse de code

Autorisations

Nécessite un utilisateur de service ou un jeton d’accès personnel doté de l’autorisation UseCodeScans au niveau de l’organisation.

Comportement

Met en file d’attente une nouvelle analyse de code pour le repository indiqué (repo_name) ou les repositories indiqués (repos) dans l’organisation. L’analyse est lancée de manière asynchrone par le répartiteur d’analyses ; la réponse contient l’enregistrement de l’analyse avec un status initial de waiting ou pending. Interrogez périodiquement Lister les analyses de code pour suivre la progression et Lister les constats d’analyse de code (filtrés par scan_id) pour consulter les résultats une fois l’analyse à l’état completed. L’analyse est attribuée au principal appelant (l’utilisateur de service ou le PAT ayant effectué la requête). L’équivalent au périmètre Enterprise est Démarrer une analyse de code (Enterprise).

Champs de la requête

Fournissez exactement l’un des deux champs repo_name ou repos.
  • repo_name : nom complet du repository, par ex. owner/repo. Le repository doit déjà être accessible via l’intégration Git de l’organisation.
  • host : hôte Git du repository, s’il ne peut pas être déduit.
  • repos : repositories couverts par une même analyse multi-repositories, sous forme de liste d’objets comportant repo_name et un host facultatif (200 au maximum). La première entrée correspond au repository principal de l’analyse.
  • profile_id : profil d’analyse à appliquer. Utilisez Démarrer une analyse d’ingestion pour les profils en mode ingest.
  • scan_type : type d’analyse à exécuter. Doit correspondre au type d’analyse du profil si profile_id est fourni. Utilise par défaut le type du profil ou security pour les analyses sans profil. Les types d’analyse autres que security nécessitent un profil.
  • commit_sha : commit à extraire avant l’analyse. Utilise par défaut le dernier commit de la branche par défaut du repository.
  • effort : normal (par défaut) applique un effort de raisonnement du modèle réduit avec des lots d’investigation plus importants ; deep exécute le pipeline complet.
  • interactive : si la valeur est true, l’analyse se met en pause à l’état awaiting_user_input pour permettre une revue par l’utilisateur entre la modélisation des menaces et l’investigation. Valeur par défaut : false. Seules les analyses de sécurité prennent en charge la revue interactive ; les autres types d’analyse s’exécutent sans intervention.
  • platform : emplacement d’exécution des sessions de l’analyse : 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 aux deux, la plateforme est prioritaire. Valeur par défaut : celle définie pour l’organisation.

Erreurs

  • 400 si scan_type est incompatible avec le profil, si un scan_type autre que de sécurité est fourni sans profil, ou si platform ne correspond à aucun libellé de plateforme configuré ni à aucun pool Outposts (le corps de l’erreur indique les valeurs disponibles).
  • 403 si l’organisation est limitée aux analyses en mode ingestion et qu’aucun profil en mode ingest n’est fourni.
  • 404 si le repository ou le profil n’est pas visible par l’organisation.
  • 409 si le backlog d’analyses de l’organisation est saturé. Réessayez ultérieurement.
  • 422 si repo_name et repos sont fournis tous les deux ou qu’aucun des deux ne l’est, 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 lancer une nouvelle analyse de code.

commit_sha
string | null

Commit à extraire avant l’analyse.

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 d’investigation plus volumineux ; 'deep' exécute l’ensemble du pipeline.

Options disponibles:
normal,
deep
host
string | null

Hébergeur Git du repository, s’il est connu.

interactive
boolean
défaut:false

Si la valeur est true, l’analyse marque une pause pour permettre une revue par l’utilisateur entre la modélisation des menaces et l’investigation.

new_budget
NewScanBudget · object | null

Attribuez à l’analyse son propre budget d’ACU. Nécessite les autorisations ManageAccountServiceUsers et ManageAcuLimits.

platform
string | null

Environnement d’exécution des sessions de l’analyse : un libellé de plateforme configuré pour l’organisation (p. ex. '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 paramètre 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
profile_id
string | null

Profil d’analyse à appliquer à l’analyse.

repo_name
string | null

Nom complet du repository à analyser. Fournissez un seul des deux paramètres 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 paramètres repo_name ou repos.

Maximum array length: 200
scan_type
enum<string> | null

Type d’analyse à exécuter. Si un profil est fourni, ce type doit correspondre à celui du profil. Par défaut, le type du profil est utilisé, ou 'security' pour les analyses sans profil. Les types autres que 'security' nécessitent un profil et sont rejetés en son absence.

Options disponibles:
security,
performance,
db-queries,
test-coverage,
dead-code,
code-quality,
cleanup,
telemetry,
accessibility,
compliance,
general,
migration-docs

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.