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 UseAccountCodeScans en el nivel empresarial.

Comportamiento

Pone en cola un nuevo análisis de código del repositorio especificado (repo_name) o de los repositorios especificados (repos) en la organización indicada. 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 el estado completed. El análisis se atribuye al principal que realiza la llamada (el usuario de servicio o PAT que realizó la solicitud).

Campos de la solicitud

Proporcione exactamente uno de los campos repo_name o repos.
  • repo_name: nombre completo del repositorio; por ejemplo, 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á. Use Start Ingestion Scan para perfiles en modo ingest.
  • scan_type: tipo de análisis que se ejecutará. Debe coincidir con el tipo de análisis del perfil cuando se proporciona profile_id. De forma predeterminada, usa el tipo del perfil o security para análisis sin perfil. Los tipos de análisis distintos de los de seguridad requieren un perfil.
  • commit_sha: commit que se extraerá antes del análisis. De forma predeterminada, usa la cabecera de la rama predeterminada del repositorio.
  • effort: normal (predeterminado) usa un nivel de razonamiento del modelo más bajo 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; puede ser 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 entre mayúsculas y minúsculas. Si un nombre coincide con ambas opciones, tienen prioridad las plataformas. El valor predeterminado es el de la organización.

Errores

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

Commit que se debe extraer antes de ejecutar el análisis.

effort
enum<string> | null

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

Opciones disponibles:
normal,
deep
host
string | null

Host de Git del repositorio, si se conoce.

interactive
boolean
predeterminado:false

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

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 cuando un nombre coincide tanto con una plataforma como con un pool. Si se omite, se utiliza el valor predeterminado de la organización. Los valores no reconocidos se rechazan con una respuesta 400 cuyo cuerpo de error 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 va a analizar. Proporcione exactamente uno de los campos repo_name o repos.

repos
ScanRepoRequest · object[] | null

Repositorios incluidos en un análisis; la primera entrada corresponde al repositorio principal del análisis. Proporcione exactamente uno de los campos repo_name o repos.

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

Tipo de análisis que se ejecutará. Debe coincidir con el tipo de análisis del perfil cuando se proporciona un perfil; de forma predeterminada, se usa el tipo del perfil o 'security' para análisis sin perfil. Los tipos que no son de seguridad requieren un perfil y se rechazan sin uno.

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

Respuesta

Respuesta satisfactoria

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.