Skip to main content
POST
Iniciar análisis de código

Permisos

Requiere un usuario de servicio o un token de acceso personal con el permiso UseCodeScans a nivel de la organización.

Comportamiento

Pone en cola un nuevo análisis de código para el repositorio indicado (repo_name) o los repositorios indicados (repos) en la organización. El análisis se inicia de forma asíncrona mediante el despachador de análisis; la respuesta es el registro del análisis con un status inicial de waiting o pending. Consulte periódicamente List Code Scans para seguir el progreso y List Code Scan Findings (filtrado por scan_id) para consultar los resultados cuando el análisis alcance completed. El análisis se atribuye al principal que realiza la llamada (el usuario de servicio o PAT que realizó la solicitud). El equivalente de ámbito Enterprise es Iniciar análisis de código (Enterprise).

Campos de la solicitud

Indica solo uno de los campos: repo_name o repos.
  • repo_name: nombre completo del repositorio, p. ej., owner/repo. El repositorio ya debe ser accesible mediante la integración de Git de la organización.
  • host: host de Git del repositorio, si no se puede inferir.
  • repos: repositorios que abarca un único análisis multirrepositorio, como una lista de objetos con repo_name y un host opcional (hasta 200). La primera entrada es el repositorio principal del análisis.
  • profile_id: un perfil de análisis que se aplicará. Usa Iniciar análisis de ingesta para perfiles en modo ingest.
  • scan_type: tipo de análisis que se ejecutará. Debe coincidir con el tipo de análisis del perfil si se proporciona profile_id. De forma predeterminada, usa el tipo del perfil o security para análisis sin perfil. Los tipos de análisis que no son de seguridad requieren un perfil.
  • commit_sha: confirmación que se debe extraer antes del análisis. De forma predeterminada, usa la última confirmación de la rama predeterminada del repositorio.
  • effort: normal (predeterminado) usa un menor esfuerzo de razonamiento del modelo con lotes de investigación más grandes; deep ejecuta el proceso completo.
  • interactive: cuando es true, el análisis se pausa en awaiting_user_input para que el usuario lo revise entre el modelado de amenazas y la investigación. El valor predeterminado es false. Solo los análisis de seguridad admiten la revisión interactiva; los demás tipos de análisis se ejecutan sin supervisión.
  • platform: dónde se ejecutan las sesiones del análisis: una etiqueta de plataforma configurada para la organización (por ejemplo, linux, windows o macos) o el nombre de un pool de outposts, sin distinguir mayúsculas de minúsculas. Las plataformas tienen prioridad cuando un nombre coincide con ambas. De forma predeterminada, usa el valor predeterminado de la organización.

Errores

  • 400 si scan_type entra en conflicto con el perfil, si se proporciona un scan_type que no es de seguridad sin un perfil o si platform no coincide con ninguna etiqueta de plataforma configurada ni con ningún pool de outposts (el cuerpo del error enumera los valores disponibles).
  • 403 si la organización está restringida a análisis de solo ingesta y no se proporciona un perfil en modo ingest.
  • 404 si el repositorio o el perfil no son visibles para la organización.
  • 409 si el backlog de análisis de la organización está lleno. Vuelve a intentarlo más tarde.
  • 422 si se proporcionan tanto repo_name como repos o ninguno de los dos, o si repos está vacío.

Autorizaciones

Authorization
string
header
requerido

Credencial de usuario de servicio (prefijo: cog_)

Parámetros de ruta

org_id
string
requerido

ID de la organización (prefijo: org-)

Ejemplo:

"org-abc123def456"

Cuerpo

application/json

Cuerpo de la solicitud para iniciar un nuevo análisis de código.

commit_sha
string | null

Confirmación de código que se debe seleccionar mediante checkout antes del análisis.

effort
enum<string> | null

Nivel de esfuerzo del análisis: 'normal' (predeterminado) utiliza un menor esfuerzo de razonamiento del modelo y lotes de investigación más grandes; 'deep' ejecuta el proceso completo.

Opciones disponibles:
normal,
deep
host
string | null

Servidor Git del repositorio, si se conoce.

interactive
boolean
predeterminado:false

Si el valor es true, el análisis se pausa entre el modelado de amenazas y la investigación para que el usuario lo revise.

new_budget
NewScanBudget · object | null

Asigna al análisis su propio presupuesto de ACU. Requiere los permisos ManageAccountServiceUsers y ManageAcuLimits.

platform
string | null

Dónde se ejecutan las sesiones del análisis: una etiqueta de plataforma configurada para la organización (p. ej., 'linux', 'windows', 'macos') o el nombre de un pool de outposts (BYOB), sin distinguir entre mayúsculas y minúsculas; las plataformas tienen prioridad si un nombre coincide tanto con una plataforma como con un pool. Si se omite, se usa el valor predeterminado de la organización. Los valores no reconocidos se rechazan con un error 400 cuyo cuerpo enumera las etiquetas de plataforma y los nombres de pools de outposts disponibles.

Maximum string length: 128
profile_id
string | null

Perfil de análisis que se aplicará al análisis.

repo_name
string | null

Nombre completo del repositorio que se analizará. Proporciona solo uno de los campos repo_name o repos.

repos
ScanRepoRequest · object[] | null

Repositorios que abarca un análisis; la primera entrada es el repositorio principal del análisis. Proporciona solo uno de los campos repo_name o repos.

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

Tipo de análisis que se ejecutará. Si se proporciona un perfil, debe coincidir con su tipo de análisis. El valor predeterminado es el tipo del perfil, o 'security' si no hay perfil. Los tipos distintos de 'security' requieren un perfil y se rechazan si no se proporciona uno.

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

Respuesta

Respuesta exitosa

Un análisis de código individual.

created_at
integer
requerido

Momento en que se creó el análisis (segundos Unix).

effort
enum<string>
requerido

Nivel de esfuerzo del análisis: 'normal' utiliza un nivel de esfuerzo de razonamiento del modelo más bajo y lotes de investigación más grandes; 'deep' ejecuta el proceso completo.

Opciones disponibles:
normal,
deep
host
string | null
requerido

Host de Git del repositorio, si se conoce.

org_id
string
requerido

Organización a la que pertenece el análisis.

profile
CodeScanProfileResponse · object | null
requerido

Perfil con el que se ejecutó el análisis, si corresponde.

repo_name
string
requerido

Repositorio principal del análisis. Los análisis de varios repositorios abarcan repositorios adicionales que no se enumeran aquí.

scan_id
string
requerido

Identificador único del análisis.

scan_type
enum<string>
requerido

Tipo de análisis, establecido al crearlo.

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

Estado del análisis: waiting, pending, running, awaiting_user_input, completed, failed o cancelled.

Opciones disponibles:
waiting,
pending,
running,
awaiting_user_input,
completed,
failed,
cancelled
url
string
requerido

URL de la página del análisis en la webapp de Devin.

outpost_pool_id
string | null

Pool de outposts en el que se ejecutan las sesiones del análisis, si se ha configurado uno.

platform
string | null

Etiqueta de la plataforma alojada en la que se ejecutan las sesiones del análisis. Null cuando el análisis se ejecuta en un pool de outposts o con la configuración predeterminada de la organización.

repo_full_name
string | null

Identidad del repositorio principal que incluye el host (p. ej., github.com/org/repo). Null para los depósitos de Perforce, que no tienen un host de Git.