> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Iniciar varredura de código (API do Devin)

> Inicie uma nova varredura de código do Devin em um repositório usando a API v3 da organização, opcionalmente com um perfil de varredura ou SHA de commit

<div id="permissions">
  ## Permissões
</div>

Requer um [usuário de serviço](/pt-BR/api-reference/v3/service-users/members-service-users) ou um [token de acesso pessoal](/pt-BR/api-reference/personal-access-tokens) com a permissão `UseCodeScans` no nível da organização.

<div id="behavior">
  ## Comportamento
</div>

Enfileira uma nova varredura de código para `repo_name` na organização. A varredura é iniciada de forma assíncrona pelo despachante de varreduras; a resposta é o registro da varredura, com `status` inicial `waiting` ou `pending`. Consulte [List Code Scans](/pt-BR/api-reference/v3/code-scans/organizations-code-scans-list) para acompanhar o progresso e [List Code Scan Findings](/pt-BR/api-reference/v3/code-scans/organizations-code-scans-findings) (filtrada por `scan_id`) para ler os resultados quando a varredura atingir `completed`.

A varredura é atribuída ao principal que fez a chamada (o usuário de serviço ou PAT que fez a requisição). O equivalente no escopo Enterprise é [Iniciar varredura de código (Enterprise)](/pt-BR/api-reference/v3/code-scans/enterprise-code-scans-start).

<div id="request-fields">
  ### Campos da requisição
</div>

* `repo_name` (obrigatório): nome completo do repositório, por exemplo, `owner/repo`. O repositório já deve estar acessível pela integração Git da organização.
* `host`: host Git do repositório, caso não possa ser inferido.
* `profile_id`: um [perfil de varredura](/pt-BR/api-reference/v3/code-scans/organizations-code-scans-profiles) a ser aplicado. Use [Iniciar varredura de ingestão](/pt-BR/api-reference/v3/code-scans/organizations-code-scans-start-ingestion) para perfis no modo `ingest`.
* `scan_type`: tipo de varredura a ser executada. Deve corresponder ao tipo de varredura do perfil quando `profile_id` for informado. Por padrão, usa o tipo do perfil ou `security` para varreduras sem perfil. Tipos de varredura que não são de segurança exigem um perfil.
* `commit_sha`: commit a ser usado antes da varredura. Por padrão, usa o commit mais recente da branch padrão do repositório.

<div id="errors">
  ### Erros
</div>

* `400` quando `scan_type` conflita com o perfil ou quando um `scan_type` diferente de Security é fornecido sem um perfil.
* `403` quando a organização está restrita a varreduras somente de ingestion e nenhum perfil no modo `ingest` é fornecido.
* `404` quando o repositório ou o perfil não está visível para a organização.
* `409` quando o backlog de varreduras da organização atinge a capacidade máxima. Tente novamente mais tarde.


## OpenAPI

````yaml pt-BR/v3-openapi.yaml POST /v3/organizations/{org_id}/code-scans
openapi: 3.1.0
info:
  description: API Devin v3 com autenticação de usuário de serviço e RBAC
  title: Devin API v3
  version: 3.0.0
servers: []
security:
  - bearerAuth: []
paths:
  /v3/organizations/{org_id}/code-scans:
    post:
      tags:
        - code-scans
      summary: Iniciar varredura de código
      description: >-
        Inicia uma nova varredura de código em um repositório da organização.


        A varredura é colocada na fila e iniciada de forma assíncrona pelo
        dispatcher de varreduras.

        A varredura é atribuída ao principal que fez a chamada (o usuário de
        serviço ou o PAT

        que fez a requisição). Retorna ``409`` quando o backlog de varreduras da

        organização atinge a capacidade máxima.
      operationId: handle_start_code_scan_v3_organizations__org_id__code_scans_post
      parameters:
        - description: 'ID da organização (prefixo: org-)'
          in: path
          name: org_id
          required: true
          schema:
            example: org-abc123def456
            title: Org Id
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CodeScanCreateRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CodeScanResponse'
          description: Resposta bem-sucedida
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Não autorizado
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Proibido
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Não encontrado
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conflito
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Conteúdo não processável
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
          description: Muitas requisições
components:
  schemas:
    CodeScanCreateRequest:
      description: Corpo da requisição para iniciar uma nova varredura de código.
      properties:
        commit_sha:
          anyOf:
            - type: string
            - type: 'null'
          description: Commit para fazer checkout antes da varredura.
          title: Commit Sha
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host Git do repositório, se conhecido.
          title: Host
        profile_id:
          anyOf:
            - type: string
            - type: 'null'
          description: Perfil de varredura a ser aplicado à varredura.
          title: Profile Id
        repo_name:
          description: Nome completo do repositório a ser varrido.
          title: Repo Name
          type: string
        scan_type:
          anyOf:
            - enum:
                - security
                - performance
                - db-queries
                - test-coverage
                - dead-code
                - code-quality
                - telemetry
                - accessibility
                - general
                - migration-docs
              type: string
            - type: 'null'
          description: >-
            Tipo de varredura a executar. Deve corresponder ao tipo de varredura
            do perfil quando um perfil é fornecido; por padrão, usa o tipo do
            perfil ou 'security' para varreduras sem perfil. Tipos que não são
            de segurança exigem um perfil e são rejeitados sem um.
          title: Scan Type
      required:
        - repo_name
      title: CodeScanCreateRequest
      type: object
    CodeScanResponse:
      description: Uma única varredura de código.
      properties:
        created_at:
          description: Quando a varredura foi criada (segundos Unix).
          title: Created At
          type: integer
        host:
          anyOf:
            - type: string
            - type: 'null'
          description: Host Git do repositório, se conhecido.
          title: Host
        org_id:
          description: Organização à qual a varredura pertence.
          title: Org Id
          type: string
        profile:
          anyOf:
            - $ref: '#/components/schemas/CodeScanProfileResponse'
            - type: 'null'
          description: Perfil sob o qual a varredura foi executada, se houver.
        repo_name:
          description: >-
            Repositório principal da varredura. Varreduras com vários
            repositórios abrangem repositórios adicionais não listados aqui.
          title: Repo Name
          type: string
        scan_id:
          description: Identificador único da varredura.
          title: Scan Id
          type: string
        scan_type:
          description: Tipo de varredura, definido na criação.
          enum:
            - security
            - performance
            - db-queries
            - test-coverage
            - dead-code
            - code-quality
            - telemetry
            - accessibility
            - general
            - migration-docs
          title: Scan Type
          type: string
        status:
          description: >-
            Status da varredura: waiting, pending, running, awaiting_user_input,
            completed, failed ou cancelled.
          enum:
            - waiting
            - pending
            - running
            - awaiting_user_input
            - completed
            - failed
            - cancelled
          title: Status
          type: string
      required:
        - scan_id
        - org_id
        - repo_name
        - host
        - status
        - profile
        - scan_type
        - created_at
      title: CodeScanResponse
      type: object
    ProblemDetail:
      description: >-
        Corpo de erro RFC 9457 application/problem+json da API v3.


        detail é mantido do corpo legado {"detail": ...} por
        retrocompatibilidade; os

        outros membros são aditivos. errors contém falhas de validação em nível
        de campo

        (apenas 422).
      properties:
        detail:
          anyOf:
            - type: string
            - type: 'null'
          description: Uma explicação legível por humanos específica para esta ocorrência.
          title: Detail
        errors:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          description: Erros de validação no nível do campo (apenas respostas 422).
          title: Errors
        instance:
          anyOf:
            - type: string
            - type: 'null'
          description: >-
            Uma referência de URI (o caminho da requisição) para esta
            ocorrência.
          title: Instance
        status:
          description: O código de status HTTP.
          title: Status
          type: integer
        title:
          description: Um breve resumo do tipo de problema, legível para humanos.
          title: Title
          type: string
        type:
          default: about:blank
          description: Uma referência de URI que identifica o tipo de problema.
          title: Type
          type: string
      required:
        - title
        - status
      title: ProblemDetail
      type: object
    CodeScanProfileResponse:
      description: Resumo do perfil sob o qual uma varredura foi executada.
      properties:
        name:
          description: Nome do perfil.
          title: Name
          type: string
        profile_id:
          description: Identificador único do perfil.
          title: Profile Id
          type: string
      required:
        - profile_id
        - name
      title: CodeScanProfileResponse
      type: object
  securitySchemes:
    bearerAuth:
      description: 'Credencial de usuário de serviço (prefixo: cog_)'
      scheme: bearer
      type: http

````