Zum Inhalt springen

Azure DevOps

Azure DevOps wird mit einem Personal Access Token (PAT) verbunden. Nur Azure DevOps Services (dev.azure.com) wird unterstützt; Azure DevOps Server nicht.

Öffnen Sie in Azure DevOps User settings → Personal access tokens → New Token, wählen Sie die Organisation und erteilen Sie:

  • Code (Read & Write)
  • Pull Request Threads (Read & Write) - für die PR-Kommentare von ArchPilot.

Für reine Lesenutzung genügt Code (Read); ArchPilot kann dann nicht kommentieren. Azure DevOps zeigt das Token nur einmal an.

  1. Credentials → Add credential → Azure DevOps.
  2. Geben Sie nur den Organisations-Slug ein - den Teil nach dev.azure.com/ (z. B. myorg). dev.azure.com/ ergänzt AppArch selbst.
  3. Fügen Sie das PAT ein. Ein Projektname ist optional und beschränkt die Repository-Liste auf ein Projekt.
  4. Speichern - die Verbindung wird gegen dev.azure.com getestet.

Azure DevOps bietet keinen Endpunkt, um Scopes oder Ablaufdatum eines Tokens zu lesen. Der Verbindungstest ist daher die einzige Prüfung, und am Zugang wird kein Ablaufdatum angezeigt.

trigger: none
pr: ['*']
pool: { vmImage: ubuntu-latest }
steps:
- checkout: self
fetchDepth: 0 # the target branch is then in the clone: the change's own files and its merge base
- script: |
echo "$(APPARCH_INSTALLATION_KEY)" | docker login hub.apparch.io -u "$(APPARCH_INSTALLATION_ID)" --password-stdin
docker run --rm -v "$(Build.SourcesDirectory):/workspace:ro" \
-e APPARCH_Collector__Token="$(APPARCH_TOKEN)" \
-e APPARCH_Collector__ApiUrl="https://api.yourdomain.com" \
-e SYSTEM_PULLREQUEST_PULLREQUESTID="$(System.PullRequest.PullRequestId)" \
-e SYSTEM_PULLREQUEST_TARGETBRANCH="$(System.PullRequest.TargetBranch)" \
-e SYSTEM_TEAMPROJECT="$(System.TeamProject)" \
-e BUILD_REPOSITORY_NAME="$(Build.Repository.Name)" \
-e SYSTEM_COLLECTIONURI="$(System.CollectionUri)" \
-e BUILD_SOURCEVERSION="$(Build.SourceVersion)" \
hub.apparch.io/collectors/dotnet:latest /workspace

Legen Sie APPARCH_TOKEN, APPARCH_INSTALLATION_ID und APPARCH_INSTALLATION_KEY als geheime Variablen in der Pipeline an. Das erste ist das Runner-Token des Projekts; die beiden anderen sind der Installationszugang, mit dem der Image-Pull sich authentifiziert. Die Variable SYSTEM_PULLREQUEST_PULLREQUESTID sagt dem Runner, dass er einen Pull Request prüft.