Aller au contenu

Azure DevOps

Azure DevOps se connecte avec un jeton d’accès personnel (PAT). Seul Azure DevOps Services (dev.azure.com) est pris en charge ; Azure DevOps Server ne l’est pas.

Dans Azure DevOps, ouvrez User settings → Personal access tokens → New Token, choisissez l’organisation et accordez :

  • Code (Read & Write)
  • Pull Request Threads (Read & Write) - pour les commentaires de PR d’ArchPilot.

Code (Read) seul suffit pour un usage en lecture ; ArchPilot ne peut alors pas commenter. Azure DevOps n’affiche le jeton qu’une seule fois.

  1. Credentials → Add credential → Azure DevOps.
  2. Saisissez uniquement le slug de l’organisation - la partie après dev.azure.com/ (par ex. myorg). AppArch ajoute dev.azure.com/ lui-même.
  3. Collez le PAT. Un nom de projet est facultatif et restreint la liste des dépôts à un seul projet.
  4. Enregistrez - la connexion est testée auprès de dev.azure.com.

Azure DevOps n’offre aucun point d’accès pour lire les scopes ou la date d’expiration d’un jeton ; le test de connexion est donc la seule vérification et aucune date d’expiration n’est affichée sur l’identifiant.

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

Définissez APPARCH_TOKEN, APPARCH_INSTALLATION_ID et APPARCH_INSTALLATION_KEY comme variables secrètes du pipeline. La première est le jeton runner du projet ; les deux autres forment l’identifiant d’installation avec lequel le pull de l’image s’authentifie. C’est la variable SYSTEM_PULLREQUEST_PULLREQUESTID qui indique au runner qu’il examine une pull request.