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

# Devin Code-Scans

> Nutzen Sie Devin Code-Scans, um in Ihren Repositorys Probleme bei Performance, Testabdeckung, totem Code, Barrierefreiheit und mehr zu finden und sie anschließend mit Devin zu beheben

Ein Code-Scan ist eine Devin-Sitzung samt der von ihr gestarteten untergeordneten Sitzungen, die ein oder mehrere Repositorys liest, **Befunde** meldet und diese über Pull Requests beheben kann. Sicherheits-Scans werden unter [Security Swarm](/de/work-with-devin/security-swarm) behandelt. Diese Seite beschreibt die übrigen Scan-Typen.

<Accordion title="Voraussetzungen">
  Um einen Scan auszuführen:

  * Sie benötigen die Berechtigung **Use Code-Scans** sowie die Berechtigung, Devin-Sitzungen zu verwenden. Siehe [Zugriff und Berechtigungen](/de/work-with-devin/security-swarm#access-and-permissions).
  * Ihre Organisation muss Zugriff auf das Repository haben, das Sie scannen möchten.
</Accordion>

<div id="start-a-scan-with-scan">
  ## Einen Scan mit `/scan` starten
</div>

1. Geben Sie im Composer `/scan` ein, gefolgt von dem, wonach Sie suchen möchten, und erwähnen Sie die zu scannenden Repositorys. Zum Beispiel: `/scan find N+1 queries in @acme/api`. Repositorys, die Sie im Composer ausgewählt haben, werden ebenfalls einbezogen.
2. Senden Sie die Nachricht. Devin startet eine neue Sitzung, um den Scan einzurichten, und öffnet sie. Wenn Sie `/scan` ohne Zusatz gesendet haben, schlägt Devin Beispiel-Scans vor, etwa das Auffinden langsamer Datenbankabfragen oder ungenutzten Codes, und fragt, wonach Sie suchen möchten.
3. Devin wählt den Scan-Typ anhand Ihrer Anfrage und nennt ihn in einer Zeile, zum Beispiel, dass ein benutzerdefinierter Scan eingerichtet wird, der nur nach camelCase-Variablennamen sucht. Antworten Sie, falls Sie etwas anderes möchten.
4. Devin zeigt eine **Code scan setup**-Karte an. Bestätigen Sie die zu scannenden **Repositories** und fügen Sie optional unter **What should the scan focus on?** Hinweise hinzu. Wenn Sie kein Repository erwähnt haben, wählt Devin anhand Ihrer letzten Pull Requests dasjenige vor, in dem Sie am meisten gearbeitet haben.
5. Klicken Sie auf **Start scan**. Devin erstellt den Scan erst, nachdem Sie die Karte abgeschickt haben, und teilt anschließend einen Link zur Sitzung des Scans. Klicken Sie stattdessen auf **Dismiss**, um die Einrichtung abzubrechen.

Sie müssen weder einen Scan-Typ auswählen noch den Scan selbst konfigurieren. Anfragen, die einen ganzen Bereich abdecken, etwa ein Performance-Scan eines Repositorys, verwenden den passenden [Scan-Typ](#scan-types). Engere oder abweichende Ziele, etwa das Auffinden von Speicherlecks, verwenden einen **Custom**-Scan, der sich auf Ihre Beschreibung konzentriert.

<video autoPlay muted loop playsInline className="w-full aspect-video" src="https://mintcdn.com/cognitionai-enterprise/oyRM0GqIVnPd1Bxj/images/work-with-devin/code-scans/code-scans-walkthrough.mp4?fit=max&auto=format&n=oyRM0GqIVnPd1Bxj&q=85&s=49a00198c8d9bc742a2505fa94250cda" data-path="images/work-with-devin/code-scans/code-scans-walkthrough.mp4" />

Wenn ein Scan ohne Sicherheitsbezug abgeschlossen ist, sendet Ihnen Devin eine Slack-Direktnachricht mit einer Zusammenfassung der Befunde, sofern Sie keine andere oder gar keine Benachrichtigung angefordert haben. Für Slack-Nachrichten muss die Slack-Integration Ihrer Organisation es Sitzungen erlauben, Direktnachrichten zu senden.

<Note>Scans ohne Sicherheitsbezug laufen unbeaufsichtigt mit normalem Aufwand. Die Auswahl des Aufwands und der Interactive mode, bei dem Devin pausiert, damit Sie ein threat model prüfen können, bevor die Untersuchung beginnt, stehen nur für [Sicherheits-Scans](/de/work-with-devin/security-swarm#interactive-mode) zur Verfügung.</Note>

<div id="scan-types">
  ## Scan-Typen
</div>

| Scan-Typ                    | Wonach gesucht wird                                                                                                                                              |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Performance**             | Performance-Probleme und Möglichkeiten, deinen Code schneller und effizienter zu machen.                                                                         |
| **Datenbankabfragen**       | Probleme an den Stellen, an denen dein Code seine Datenspeicher abfragt: ineffiziente, fehlerhafte, unsichere oder unzuverlässige Abfragen.                      |
| **Testabdeckung**           | Abläufe und Komponenten, die nicht durch Tests abgedeckt sind.                                                                                                   |
| **Toter Code**              | Code, den nichts mehr erreicht: ungenutzte Funktionen, Module, Flags und Abhängigkeiten, die gefahrlos entfernt werden können.                                   |
| **Codequalität**            | Wartbarkeitsprobleme, die den Code schwerer lesbar, schwerer änderbar und schwerer korrekt zu halten machen.                                                     |
| **Cleanup**                 | Unaufgeräumter, redundanter und überkonstruierter Code, der sich ohne Verhaltensänderung bereinigen lässt.                                                       |
| **Telemetry**               | Stellen, an denen Telemetrie oder Tracking-Instrumentierung fehlt.                                                                                               |
| **Accessibility**           | Frontend-Code, der die Richtlinien zur Barrierefreiheit (WCAG) nicht erfüllt, etwa fehlende Labels, defekte Tastaturbedienung und zu geringer Kontrast.          |
| **Compliance**              | Lücken gegenüber den Vorschriften, Standards und Richtlinien, auf die der Scan eingerichtet ist, etwa Umgang mit sensiblen Daten, Audit-Trails und Aufbewahrung. |
| **Migrationsdokumentation** | Verfolgt die End-to-End-Abläufe und die Geschäftslogik deines Codes und erzeugt migrationsfertige Dokumentation mit Diagrammen.                                  |
| **Custom**                  | Alles Weitere, was du beschreibst, etwa Stellen, die personenbezogene Daten protokollieren, oder eine Namenskonvention, die dein Team durchsetzen möchte.        |

Für Schwachstellen und Angriffsflächen verwendest du einen [Security Swarm](/de/work-with-devin/security-swarm)-Scan.

<div id="review-and-fix-findings">
  ## Befunde prüfen und beheben
</div>

Öffnen Sie den Tab **Findings** in der Sitzung, die den Scan gestartet hat, oder in der Hauptsitzung des Scans, um die Befunde abzuarbeiten. Offene Befunde sind nach Phase gruppiert:

* **Unassigned** – Es wurde noch keine Sitzung zur Fehlerbehebung gestartet.
* **Assigned** – Eine Sitzung zur Fehlerbehebung läuft, es ist aber noch kein Pull Request offen.
* **PR open** – Für den Befund ist ein Pull Request offen.

Für jeden Befund haben Sie folgende Möglichkeiten:

* **Assign to Devin** – Startet eine Devin-Sitzung, die den Befund korrigiert und einen Pull Request eröffnet. Über **Open session** verfolgen Sie den Fortschritt, über **Open PR** prüfen Sie das Ergebnis.
* **Dismiss** – Entfernt einen Befund, der keine Maßnahme erfordert.

Während ein Scan läuft, bietet der Tab Findings in der Hauptsitzung des Scans zusätzlich **Pause scan**, **Resume scan** und **Kill scan**. Diese Funktionen erfordern die Berechtigung **Manage Code-Scans**.

<div id="scale-scanning">
  ## Scanning skalieren
</div>

<div id="scan-new-commits">
  ### Scan new commits
</div>

Nach Abschluss eines Scans beliebigen Typs klicken Sie im Tab „Findings“ auf **Scan new commits**, um einen inkrementellen Lauf zu starten, der nur die Commits scannt, die seit dem letzten abgeschlossenen Lauf des Scans hinzugekommen sind. Der Lauf verwendet die bestehende Konfiguration des Scans und fügt dessen Befunde demselben Scan hinzu. Die Schaltfläche wird nicht angezeigt, solange der Scan läuft oder nachdem er archiviert wurde, und sie erfordert **Manage Code-Scans**. Wenn keine neuen Commits hinzugekommen sind, wird kein Lauf gestartet.

Sie können Devin in einer Sitzung auch bitten, die neuen Commits eines bestehenden Scans zu scannen.

<div id="automations">
  ### Automatisierungen
</div>

[Automatisierungen](/de/product-guides/automations) können Scans jedes Typs nach einem Zeitplan oder als Reaktion auf ein Ereignis ausführen. Wählen Sie den Agent-Typ **Code scan** und anschließend unter **Scan**:

* Wählen Sie **Create a new scan**, um bei jedem Auslösen der Automatisierung einen neuen Scan zu starten. Wählen Sie die Repositorys, den Scan-Typ und das Profil aus. Nicht sicherheitsbezogene Scan-Typen erfordern ein [Scan-Profil](/de/work-with-devin/security-swarm#scan-profiles) desselben Typs.
* Wählen Sie einen vorhandenen Scan aus, um bei jedem Auslösen der Automatisierung dessen neue Commits zu scannen. Für den Scan muss bereits ein abgeschlossener Durchlauf vorliegen.

Von Automatisierungen gestartete Scans laufen unbeaufsichtigt. Siehe [Scans aus Automatisierungen starten](/de/work-with-devin/security-swarm#start-scans-from-automations).

<div id="api">
  ### API
</div>

Mit der [Code Scans API](/de/api-reference/v3/code-scans/triggering-code-scans) lassen sich Scans starten, pollen und Befunde auslesen – ganz ohne Web-App. Wenn Sie über die API einen Scan starten, der nicht vom Typ Security ist, müssen Sie eine `profile_id` für ein Profil dieses Scan-Typs übergeben; `scan_type` übernimmt standardmäßig den Typ des Profils. Über die API gestartete Scans sind nicht interaktiv.

<div id="related-pages">
  ## Verwandte Seiten
</div>

* [Security Swarm](/de/work-with-devin/security-swarm) — Sicherheits-Scans, Scan-Profile, interaktiver Modus und Berechtigungen für Code-Scans.
* [Code-Scans über die Devin API auslösen](/de/api-reference/v3/code-scans/triggering-code-scans) — der vollständige API-Ablauf.
* [Automatisierungen](/de/product-guides/automations) — Scans planen und auslösen.
