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

# Azure DevOps (Service-Principal)

> Verbinden Sie Devin mit Azure DevOps über einen Microsoft Entra-Service-Principal

<div id="overview">
  ## Überblick
</div>

Devin verbindet sich über einen Microsoft Entra-Service-Principal mit Azure DevOps. Ihr Administrator genehmigt in Ihrem Mandanten die von Cognition veröffentlichte Anwendung **Cognition Azure DevOps Service Principal**. Dadurch wird ein Service-Principal erstellt, den Sie anschließend mit den von Ihnen gewählten Berechtigungen zu Ihrer Azure DevOps-Organisation hinzufügen.

* Bei der Entra-Genehmigung wird nur `User.Read` angefordert — dies dient ausschließlich der Identifikation
* Die Entra-Genehmigung allein gewährt **keinen** Zugriff auf Repositories oder Code
* Der gesamte Zugriff auf Repositories wird durch die Berechtigungen gesteuert, die Sie in Azure DevOps zuweisen

Anders als einige andere SCM-Integrationen zeigt Azure DevOps Drittanbieter-Apps nicht auf dieselbe Weise an. Die gesamte Verbindungsverwaltung erfolgt in Devin unter **Settings > Enterprise Settings > Integrationen**.

<div id="prerequisites">
  ## Voraussetzungen
</div>

Bevor Sie die Azure DevOps-Integration einrichten, stellen Sie sicher, dass Sie über Folgendes verfügen:

1. **Devin-Enterprise-Konto** mit der Berechtigung, Integrationen zu verwalten
2. **Microsoft Entra-Administrator**, der die Administratorzustimmung für Anwendungen erteilen kann
3. **Administrator der Azure DevOps-Organisation**, der Nutzer hinzufügen und Berechtigungen zuweisen kann

<div id="setting-up-the-integration">
  ## Einrichten der Integration
</div>

1. Melden Sie sich unter [app.devin.ai](https://app.devin.ai) bei Ihrem Devin-Konto an.

2. Melden Sie sich in einem separaten Browser- oder Inkognito-Fenster bei Azure DevOps an (erforderlich für Schritt 6).

3. Navigieren Sie in Ihrem Enterprise-Devin-Konto zu **Settings > Enterprise Settings > Integrations** und wählen Sie **Azure DevOps** aus.

4. Öffnen Sie das Dropdown-Menü der Schaltfläche **Connect** und wählen Sie **Connect with service principal** aus.

<Frame>
  <img src="https://mintcdn.com/cognitionai/d4tSaSvcW_EO3rtt/images/enterprise/ADO-connect-service-principal.png?fit=max&auto=format&n=d4tSaSvcW_EO3rtt&q=85&s=6368b81bb8fc22f2f0425ad8eb809d17" alt="Mit Service Principal verbinden" width="1466" height="676" data-path="images/enterprise/ADO-connect-service-principal.png" />
</Frame>

5. Sie werden zu Microsoft weitergeleitet, um Devin die Berechtigung für Ihren Mandanten zu erteilen. Nach der Bestätigung werden Sie zur Azure-DevOps-Integrationsseite in Devin zurückgeleitet, auf der jetzt ein Abschnitt **Add organization with service principal** angezeigt wird.
   * Durch die Bestätigung wird ein Service Principal in Ihrem Microsoft-Entra-Mandanten erstellt
   * In diesem Schritt wird nur `User.Read` angefordert — es wird kein Zugriff auf Repositories gewährt

6. Navigieren Sie in Azure DevOps zu **Organization Settings > Users**:
   * Klicken Sie auf **Add Users** und fügen Sie den Service Principal (`Cognition Azure DevOps Service Principal`) hinzu
   * Wählen Sie als Zugriffsebene **Basic** aus (Stakeholder ist nicht ausreichend — APIs erfordern Basic)
   * Fügen Sie ihn zu allen Projekten hinzu, auf die Devin Zugriff haben soll
   * Weisen Sie den Service Principal den relevanten Azure-DevOps-Gruppen zu (in der Regel Project Contributors)

7. Geben Sie zurück in Devin im Abschnitt **Add organization with service principal** auf der Azure-DevOps-Integrationsseite den Azure-DevOps-Organisationsnamen aus dem vorherigen Schritt ein und klicken Sie auf **Add**.

8. Wählen Sie in Devin in Ihrer Azure-DevOps-Integration **Git Permissions** aus, wählen Sie eine Sub-Organization aus und erteilen Sie Berechtigungen entweder auf Gruppen- oder Repository-Ebene.

<Frame>
  <img src="https://mintcdn.com/cognitionai/IUVOuadgM9g1fi9k/images/enterprise/ADO-git-permissions.png?fit=max&auto=format&n=IUVOuadgM9g1fi9k&q=85&s=765a3e9cdbc8da18001b0cc268e72e64" alt="Azure DevOps Git Permissions" width="2414" height="630" data-path="images/enterprise/ADO-git-permissions.png" />
</Frame>

9. Navigieren Sie für jede Organization, der Berechtigungen erteilt wurden, zu **Devin's Settings > Devin's Machine**, klicken Sie auf **+ Repository** und integrieren Sie die Repositories.

<div id="what-devin-can-access">
  ## Auf was Devin zugreifen kann
</div>

Die Azure-DevOps-Integration von Devin ist **ausschließlich auf Git-Vorgänge** beschränkt:

| Fähigkeit               | Beschreibung                                              |
| ----------------------- | --------------------------------------------------------- |
| Repositories auflisten  | Verfügbare Repositories und ihre Metadaten anzeigen       |
| Branches lesen          | Auf Branch-Informationen und den Commit-Verlauf zugreifen |
| Pull Requests erstellen | Neue PRs für Codeänderungen öffnen                        |
| Pull Requests anzeigen  | Auf PR-Ereignisse, Kommentare und den Status zugreifen    |
| Code pushen             | Neue Branches und Commits in Repositories pushen          |

Devin hat **keinen** Zugriff auf Work Items, Pipelines, Builds, Testpläne, Artefakte, Wiki oder Dienstverbindungen.

<Note>
  Wenn Ihre Organisation künftig Unterstützung für zusätzliche Azure-DevOps-Bereiche durch Devin benötigt, kontaktieren Sie bitte [enterprise@cognition.ai](mailto:enterprise@cognition.ai), um Ihre Anforderungen zu besprechen.
</Note>

<div id="security-considerations">
  ## Sicherheitshinweise
</div>

* **Minimale Entra-Berechtigungen** — Es wird nur `User.Read` angefordert. Kein lesender Zugriff auf das gesamte Verzeichnis, keine Einsicht in Gruppenmitgliedschaften und keine administrative Kontrolle.
* **Explizite Autorisierung** — Die Entra-Genehmigung allein gewährt keinen Zugriff auf Azure DevOps. Jeder Zugriff auf Repositories muss explizit von Ihrem Azure DevOps-Admin zugewiesen werden.
* **Verschlüsselte Anmeldedaten** — Alle Tokens werden verschlüsselt und sicher gespeichert.
* **Zugriff mit begrenztem Geltungsbereich** — Berechtigungen können über Devins Enterprise-UI auf bestimmte Projekte, Repositories und Vorgänge beschränkt werden.
* **Nachvollziehbarkeit** — Aktivitäten werden in den Entra-Anmeldeprotokollen und den Azure DevOps-Audit-Logs protokolliert.
* **Branch-Richtlinien werden eingehalten** — Devins PRs unterliegen denselben Branch-Richtlinien und Review-Anforderungen wie die jedes anderen Beitragenden.

<div id="best-practices">
  ## Bewährte Methoden
</div>

* **Verwenden Sie Berechtigungen auf Repository-Ebene** — Gewähren Sie Devin nur Zugriff auf die spezifischen Repositorys und Projekte, die es benötigt, anstatt Zugriff auf die gesamte Organisation zu gewähren.
* **Aktivieren Sie Branch-Richtlinien** — Richten Sie Branch-Richtlinien in Azure DevOps ein, um sicherzustellen, dass alle Änderungen vor dem Zusammenführen die vorgesehenen Review-Prozesse durchlaufen.
* **Überwachen Sie Audit-Logs** — Prüfen Sie regelmäßig die Azure DevOps-Audit-Logs und die Entra-Anmeldeprotokolle auf Aktivitäten des Service-Principal.

<div id="troubleshooting">
  ## Fehlerbehebung
</div>

**Administratorzustimmung schlägt fehl:**

* Vergewissern Sie sich, dass der zustimmende Nutzer berechtigt ist, Administratorzustimmung für Anwendungen in Ihrem Entra-Mandanten zu erteilen
* Wenn Ihr Mandant die Zustimmung für Anwendungen einschränkt, muss sie möglicherweise von einem Global Administrator oder Cloud Application Administrator erteilt werden

**Service Principal in Azure DevOps nicht sichtbar:**

* Vergewissern Sie sich in Ihrem Entra-Portal unter **Enterprise Applications**, dass die Administratorzustimmung erfolgreich abgeschlossen wurde (suchen Sie nach `Cognition Azure DevOps Service Principal`)
* Stellen Sie sicher, dass der Service Principal Ihrer Azure DevOps-Organisation unter **Organization Settings > Users** explizit hinzugefügt wurde

**Conditional Access / MFA blockiert den Zugriff:**

* Wenn der Service Principal Conditional-Access-Richtlinien unterliegt, die MFA erzwingen, schlägt die Token-Aktualisierung ohne Fehlermeldung fehl. Erstellen Sie für den Service Principal eine Conditional-Access-Ausnahme für die Devin-Anwendung.

**Devin kann meine Repositories nicht sehen:**

* Vergewissern Sie sich, dass der Service Principal der Azure DevOps-Organisation unter **Organization Settings > Users** hinzugefügt wurde
* Bestätigen Sie, dass die Zugriffsebene auf **Basic** gesetzt ist (**Stakeholder** reicht für den API-Zugriff nicht aus)
* Prüfen Sie, ob die Repository-Berechtigungen in Devins Enterprise Settings erteilt wurden
* Stellen Sie sicher, dass die Repositories zu Devin's Machine hinzugefügt wurden

**Erstellung von Pull Requests schlägt fehl:**

* Bestätigen Sie, dass der Service Principal Contributor-Berechtigungen für das Ziel-Repository hat
* Prüfen Sie, dass Branch-Richtlinien die Erstellung des Pull Requests nicht blockieren
* Vergewissern Sie sich, dass der Ziel-Branch existiert und zugänglich ist

<div id="network-setup">
  ## Netzwerk-Setup
</div>

Wenn Sie die IP-Filterung in Ihrer Azure DevOps-Instanz aktiviert haben, müssen Sie Devins IP-Adressen auf die Whitelist setzen.

Die aktuellste Liste finden Sie in unserer [Dokumentation zum IP-Whitelisting](/de/admin/common-issues#ip-whitelisting).
