> ## 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.

# Code-Scans über die Devin API auslösen

> Leitfaden zum programmgesteuerten Starten von Devin-Code-Scans, zum Abfragen ihres Status und zum Lesen von Befunden mit den v3-Organisations- und Enterprise-APIs

Mit der Code-Scans-API können Sie Scans starten, ihren Status abfragen und Befunde lesen, ohne die Web-App zu verwenden. Jede Operation ist in zwei Geltungsbereichen verfügbar und folgt derselben [Trennung zwischen Organisation und Enterprise](/de/api-reference/v3/overview) wie der Rest der v3-API:

* **Organisation** (`/v3/organizations/{org_id}/code-scans/...`) gilt für eine einzelne Organisation und erfordert die Berechtigung `UseCodeScans` auf Organisationsebene (Schreibvorgänge) oder `ViewCodeScans` (Lesevorgänge).
* **Enterprise** (`/v3/enterprise/...`) umfasst alle Organisationen im Enterprise und erfordert die Berechtigung `UseAccountCodeScans` auf Enterprise-Ebene (Schreibvorgänge) oder `ViewAccountCodeScans` (Lesevorgänge). Die Endpunkte zum Erstellen von Scans und zur Fehlerbehebung erwarten weiterhin eine `org_id` im Pfad, da ein Scan zu einer Organisation gehört.

Beide Geltungsbereiche authentifizieren sich mit einem API key eines [Service-Benutzers](/de/api-reference/v3/service-users/members-service-users) oder einem [Personal Access Token](/de/api-reference/personal-access-tokens) und verwenden dieselben Anfrage- und Antwortformate.

<div id="endpoints">
  ## Endpunkte
</div>

| Vorgang                     | Organisation                                                                                                       | Enterprise                                                                                                             |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Code-Scan starten           | [`POST /v3/organizations/{org_id}/code-scans`](/de/api-reference/v3/code-scans/organizations-code-scans-start)     | [`POST /v3/enterprise/organizations/{org_id}/code-scans`](/de/api-reference/v3/code-scans/enterprise-code-scans-start) |
| Ingestion-Scan starten      | [`POST .../code-scans/ingestion`](/de/api-reference/v3/code-scans/organizations-code-scans-start-ingestion)        | [`POST .../code-scans/ingestion`](/de/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion)               |
| Code-Scans auflisten        | [`GET /v3/organizations/{org_id}/code-scans/scans`](/de/api-reference/v3/code-scans/organizations-code-scans-list) | [`GET /v3/enterprise/code-scans/scans`](/de/api-reference/v3/code-scans/enterprise-code-scans-list)                    |
| Code-Scan-Profile auflisten | [`GET .../code-scans/profiles`](/de/api-reference/v3/code-scans/organizations-code-scans-profiles)                 | [`GET /v3/enterprise/code-scans/profiles`](/de/api-reference/v3/code-scans/enterprise-code-scans-profiles)             |
| Code-Scan-Profil abrufen    | [`GET .../code-scans/profiles/{profile_id}`](/de/api-reference/v3/code-scans/organizations-code-scans-profile)     | [`GET /v3/enterprise/code-scans/profiles/{profile_id}`](/de/api-reference/v3/code-scans/enterprise-code-scans-profile) |
| Code-Scan-Befunde auflisten | [`GET .../code-scans/findings`](/de/api-reference/v3/code-scans/organizations-code-scans-findings)                 | [`GET /v3/enterprise/code-scans/findings`](/de/api-reference/v3/code-scans/enterprise-code-scans-findings)             |
| Code-Scan-Metriken abrufen  | [`GET .../code-scans/metrics`](/de/api-reference/v3/code-scans/organizations-code-scans-metrics)                   | [`GET /v3/enterprise/code-scans/metrics`](/de/api-reference/v3/code-scans/enterprise-code-scans-metrics)               |
| Code-Scan-Befund beheben    | [`POST .../findings/{finding_id}/remediate`](/de/api-reference/v3/code-scans/organizations-code-scans-remediate)   | [`POST .../findings/{finding_id}/remediate`](/de/api-reference/v3/code-scans/enterprise-code-scans-remediate)          |

Dieselben Vorgänge sind auch über `/v3beta1/...`-Pfade mit identischen Anfrage- und Antwortformaten verfügbar. Die Tabelle deckt den Scan-Workflow ab; die v3-OpenAPI-Spezifikation unterstützt zusätzlich die Planung von Auto Scan (`POST .../code-scans/{scan_id}/auto-scan`) und die Neuzuweisung von Profilen (`PUT .../code-scans/{scan_id}/profile`) in beiden Geltungsbereichen.

Die folgenden Schritte verwenden den Organisations-Geltungsbereich. Wenn Ihre Zugangsdaten auf Enterprise beschränkt sind, verwenden Sie stattdessen die Enterprise-Pfade und -Berechtigungen.

<div id="typical-flow">
  ## Typischer Ablauf
</div>

<Steps>
  <Step title="Profil auswählen (optional)">
    Rufen Sie [Code-Scan-Profile auflisten](/de/api-reference/v3/code-scans/organizations-code-scans-profiles) auf und wählen Sie ein Profil im Modus `discover` aus. Lassen Sie das Profil weg, um einen Standard-Sicherheitsscan auszuführen.
  </Step>

  <Step title="Scan starten">
    ```bash theme={null}
    curl -X POST "https://api.devin.ai/v3/organizations/$ORG_ID/code-scans" \
      -H "Authorization: Bearer $DEVIN_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{"repo_name": "acme/payments"}'
    ```

    Die Antwort ist ein `201` mit dem Scan-Datensatz. Speichern Sie `scan_id`. Ein `409` bedeutet, dass die Scan-Warteschlange der Organisation voll ist; versuchen Sie es später erneut.
  </Step>

  <Step title="Abschluss prüfen">
    Rufen Sie [Code-Scans auflisten](/de/api-reference/v3/code-scans/organizations-code-scans-list) auf (gefiltert nach `repo_name`), bis der `status` des Scans `completed` (oder `failed` / `cancelled`) lautet. Betrachten Sie diese drei Status als Endzustände. `awaiting_user_input` tritt nur bei interaktiven Scans auf, die über die Web-App gestartet wurden; über die API gestartete Scans sind nicht interaktiv und erreichen diesen Status nicht.
  </Step>

  <Step title="Befunde anzeigen">
    Rufen Sie [Code-Scan-Befunde auflisten](/de/api-reference/v3/code-scans/organizations-code-scans-findings) mit `scan_id` auf, um die Befunde seitenweise abzurufen und optional nach `severity` und `status` zu filtern.
  </Step>

  <Step title="Beheben">
    Rufen Sie [Code-Scan-Befund beheben](/de/api-reference/v3/code-scans/organizations-code-scans-remediate) auf, damit Devin einen Pull Request zum Beheben eines Befunds erstellt.
  </Step>
</Steps>

<div id="ingestion-scans">
  ## Ingestion-Scans
</div>

Damit Devin die von einem anderen Scanner erzeugten Befunde triagieren kann, erstellen Sie in der Web-App ein Profil im Modus `ingest`, laden Sie den Scannerbericht über die [Attachments API](/de/api-reference/v3/attachments/post-organizations-attachments) hoch (einen Endpunkt im Org-Geltungsbereich, der zusätzlich zu den Berechtigungen für Code-Scans die Org-Berechtigung `UseDevinSessions` erfordert), und rufen Sie anschließend [Ingestion-Scan starten](/de/api-reference/v3/code-scans/organizations-code-scans-start-ingestion) (oder das [Enterprise-Äquivalent](/de/api-reference/v3/code-scans/enterprise-code-scans-start-ingestion)) mit `profile_id` und `attachment_urls` auf.
