تخطَّ إلى المحتوى

Azure DevOps

يتصل Azure DevOps عبر رمز وصول شخصي (PAT). يُدعم Azure DevOps Services (dev.azure.com) فقط؛ ولا يُدعم Azure DevOps Server.

في Azure DevOps افتح User settings ← Personal access tokens ← New Token، واختر المؤسسة وامنح:

  • Code (Read & Write)
  • Pull Request Threads (Read & Write) - لتعليقات ArchPilot على طلبات السحب.

يكفي Code (Read) وحده للاستخدام بالقراءة فقط؛ وعندها لا يستطيع ArchPilot التعليق. يعرض Azure DevOps الرمز مرة واحدة فقط.

  1. Credentials ← Add credential ← Azure DevOps.
  2. أدخل معرّف المؤسسة (slug) فقط - الجزء الذي يلي dev.azure.com/ (مثل myorg). يضيف AppArch dev.azure.com/ بنفسه.
  3. الصق الـ PAT. اسم المشروع اختياري ويقصر قائمة المستودعات على مشروع واحد.
  4. احفظ - يُختبر الاتصال مقابل dev.azure.com.

لا يوفّر Azure DevOps نقطة نهاية لقراءة نطاقات الرمز أو تاريخ انتهائه؛ لذا فاختبار الاتصال هو الفحص الوحيد، ولا يظهر تاريخ انتهاء على بيانات الاعتماد.

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

عرّف APPARCH_TOKEN وAPPARCH_INSTALLATION_ID وAPPARCH_INSTALLATION_KEY كمتغيّرات سرّية في خط الأنابيب. الأول هو رمز الـ runner للمشروع؛ والآخران هما بيانات اعتماد التثبيت التي يصادق بها سحب الصورة. المتغيّر SYSTEM_PULLREQUEST_PULLREQUESTID هو ما يُخبر الـ runner بأنه يراجع طلب سحب.