- Organização (
/v3/organizations/{org_id}/code-scans/...) opera em uma única organização e exige a permissão de nível de organizaçãoUseCodeScans(gravação) ouViewCodeScans(leitura). - Enterprise (
/v3/enterprise/...) abrange todas as organizações da Enterprise e exige a permissão de nível EnterpriseUseAccountCodeScans(gravação) ouViewAccountCodeScans(leitura). Os endpoints de criação de varreduras e de remediação ainda recebem umorg_idno caminho, pois uma varredura pertence a uma única organização.
Endpoints
As mesmas operações também estão disponíveis nos caminhos
/v3beta1/..., com formatos de requisição e resposta idênticos. A tabela abrange o fluxo de varredura; a especificação OpenAPI v3 também disponibiliza o agendamento do Auto Scan (POST .../code-scans/{scan_id}/auto-scan) e a reatribuição de perfil (PUT .../code-scans/{scan_id}/profile) em ambos os escopos.
As etapas abaixo usam o escopo da organização; use os caminhos e as permissões do Enterprise se sua credencial tiver escopo de Enterprise.
Fluxo típico
1
Escolha um perfil (opcional)
Chame Listar perfis de varredura de código e escolha um perfil no modo
discover. Omita o perfil para executar uma varredura de segurança padrão.2
Inicie a varredura
201 e inclui o registro da varredura. Guarde o scan_id. Um 409 significa que o backlog de varreduras da organização está cheio; tente novamente mais tarde.3
Consulte o status até a conclusão
Chame Listar varreduras de código (filtre por
repo_name) até que o status da varredura seja completed (ou failed / cancelled). Considere esses três estados como finais. awaiting_user_input ocorre apenas em varreduras interativas iniciadas no app; as varreduras iniciadas pela API não são interativas e não entram nesse estado.4
Leia os resultados
Chame Listar resultados de varredura de código com
scan_id para percorrer os resultados por páginas, filtrando opcionalmente por severity e status.5
Corrija
Chame Corrigir resultado da varredura de código para que o Devin abra uma PR que corrija um resultado.
Varreduras de ingestão
ingest no app web, importe o relatório do scanner por meio da API de anexos (um endpoint no escopo da organização que exige a permissão de organização UseDevinSessions, além das permissões de varredura de código) e, em seguida, chame Iniciar varredura de ingestão (ou o equivalente do Enterprise) com profile_id e attachment_urls.
