共用方式為


支援存放庫和容器資源定義中的範本表達式

透過此更新,我們已在存放庫和容器資源定義中包含範本表達式的支援。 現在,您可以在 YAML 管線中定義 ref 資源的 屬性 repository 時,使用範本運算式來選擇存放庫資源的分支。 此外,我們已在 YAML 管線中定義 endpoint資源的 、 volumesportsoptions 屬性 container 時,新增範本表達式的支援。

如需詳細資訊,請參閱版本資訊。

Azure Boards

Azure Pipelines

Azure Boards

之前,變更工作項目連結至少需要三個步驟才能完成。 例如,若要變更相關連結的父連結,您必須複製工作專案標識碼、移除父連結、新增相關類型的現有連結,最後貼上複製的標識符並儲存。 這是一個繁瑣的過程。

我們可讓您直接編輯和變更連結類型,以解決問題。 您可以在一個步驟中快速變更連結類型。

Gif 以示範編輯工作專案連結類型。

注意

這項功能僅適用於 New Boards Hubs 預覽版。

建立暫存查詢 REST 端點

我們已看到數個延伸模組作者實例嘗試透過查詢字串傳遞工作專案查詢語言 (WIQL) 語句來執行未儲存的查詢。 除非您有達到查詢字串長度的瀏覽器限制的大型WIQL語句,否則這可正常運作。 為了解決這個問題,我們已建立新的 REST 端點,以允許工具作者產生暫時查詢。 使用回應中的標識碼透過querystring傳遞,可排除此問題。

如需詳細資訊,請參閱 暫存查詢 REST API 文件頁面

批次刪除 API (私人預覽版)

目前,從回收站移除工作專案的唯一方式是使用此 REST API 一次刪除一個。 這可以是一個緩慢的過程,而且在嘗試進行任何類型的大規模清理時,會受到速率限制。 為了回應,我們已新增 REST API 端點,以刪除和/或終結批次中的工作專案。

如果您有興趣參與這個新端點的私人預覽版,請 直接傳送電子郵件給我們。

@CurrentIteration 傳遞計劃中的宏

透過此更新,我們已新增對 @CurrentIteration 傳遞計畫中樣式的宏支援。 此宏可讓您從方案中每個數據列的小組內容取得目前的反覆專案。

Gif 以示範 Delivery Plans 中的 CurrentIteration 宏。

Azure Pipelines

存放庫資源定義中的範本表示式

我們已在 YAML 管線中定義 ref 資源的 屬性 repository 時,新增範本運算式的支援。 這是我們 開發人員社群 要求高度要求的功能。

當您想要管線查看相同存放庫資源的不同分支時,就會有使用案例。

例如,假設您有一個管線建置自己的存放庫,因此它必須從資源存放庫取出連結庫。 此外,假設您想要讓管線簽出與本身所使用的相同連結庫分支。 例如,如果您的管線在 main 分支上執行,它應該會取出 main 鏈接庫存放庫的分支。 如果管線在分支上 dev 執行,它應該會簽出連結 dev 庫分支。

直到今天為止,您必須明確指定要取出的分支,並在每當分支變更時變更管線程序代碼。

現在,您可以使用範本運算式來選擇存放庫資源的分支。 請參閱下列 YAML 程式代碼範例,以用於管線的非主要分支:

resources:
  repositories:
    - repository: library
      type: git
      name: FabrikamLibrary
      ref: ${{ variables['Build.SourceBranch'] }}

steps:
- checkout: library
- script: echo ./build.sh
- script: echo ./test.sh

當您執行管線時,您可以指定要簽出存放庫的 library 分支。

指定要在組建佇列時間擴充的範本版本

範本是減少程式代碼重複改善管線安全性的絕佳方式。

其中一個熱門的使用案例是將範本存放在自己的存放庫中。 這樣可減少範本與延伸範本與管線之間的結合,並讓您更輕鬆地獨立發展範本和管線。

請考慮下列範例,其中範本用來監視步驟清單的執行。 範本程式代碼位於存放 Templates 庫中。

# template.yml in repository Templates
parameters:
- name: steps
  type: stepList
  default: []

jobs:
- job:
  steps:
  - script: ./startMonitoring.sh
  - ${{ parameters.steps }}
  - script: ./stopMonitoring.sh

假設您有擴充此樣本的 YAML 管線,位於存放庫 FabrikamFiber。 直到今天為止,當使用存放庫做為範本來源時,無法動態指定 ref 存放庫資源的屬性 templates 。 這表示如果您想要讓管線變更管線的程式代碼:從不同的分支擴充範本,請從與管線相同的分支名稱擴充範本,而不論您執行管線的分支為何

在存放庫資源定義中引進範本運算式后,您可以撰寫管線,如下所示:

resources:
  repositories:
    - repository: templates
      type: git
      name: Templates
      ref: ${{ variables['Build.SourceBranch'] }}

extends:
  template: template.yml@templates
  parameters:
    steps:
      - script: echo ./build.sh
      - script: echo ./test.sh

如此一來,您的管線將會在與管線執行所在的分支相同的分支中擴充範本,因此您可以確定管線和範本的分支一律相符。 也就是說,如果您在分支dev上執行管線,它會擴充存放庫分支templatesdev檔案所template.yml指定的範本。

或者,您可以撰寫下列 YAML 程式代碼,在組建佇列時間選擇要使用的範本存放庫分支。

parameters:
  - name: branch
    default: main

resources:
  repositories:
    - repository: templates
      type: git
      name: Templates
      ref: ${{ parameters.branch }}

extends:
  template: template.yml@templates
  parameters:
    steps:
      - script: echo ./build.sh
      - script: echo ./test.sh

現在,您可以在分支 main 上將管線從一次執行的分支 dev 擴充範本,並從另一個執行中的分支 main 擴充範本,而不需要變更管線的程式代碼。

指定存放庫資源屬性的範本運算式 ref 時,您可以使用 parameters 和系統預先定義的變數,但無法使用 YAML 或 Pipelines UI 定義的變數。

容器資源定義中的範本表示式

我們已在 YAML 管線中定義 endpoint資源的 、 volumesportsoptions 屬性 container 時,新增範本運算式的支援。 這是我們 開發人員社群 要求很高的功能。

現在,您可以撰寫 YAML 管線,如下所示。

parameters:
  - name: endpointName    
    default: AzDOACR
    type: string

resources:
  containers:
    - container: linux
      endpoint: ${{ parameters.endpointName }}
      image: fabrikamfiber.azurecr.io/ubuntu:latest

jobs:
- job:
  container: linux
  steps:
  - task: CmdLine@2
    inputs:
      script: 'echo Hello world'

您可以在樣本表示式中使用 parameters.variables. 。 針對變數,您只能使用 YAML 檔案中定義的變數,但不能使用 Pipelines UI 中定義的變數。 例如,如果您重新定義變數,使用代理程式記錄命令,則不會有任何作用。

稽核核准變更的事件

核准可讓您控制階段何時應該執行。 這通常用來控制生產環境的部署。 稽核 可讓您符合合規性需求,並監視 Azure DevOps 組織的安全性。

當要求使用者核准管線以部署至特定階段時,該使用者可以選擇將核准重新指派給其他人。

稽核核准變更的事件

到目前為止,這類動作並未記錄在稽核記錄中。 此問題現已修正。

稽核記錄會包含類似下列的專案。

[
    {
        "Id": "2517368925862632546;00000264-0000-8888-8000-000000000000;839ad1ba-f72b-4258-bc3f-88be7a4553b5",
        "CorrelationId": "8392d1ba-f76b-4258-bc3f-88be7a4553b5",
        "ActivityId": "a298a06c-965f-4e60-9643-2593f2066e37",
        "ActorCUID": "fe950802-bf07-755b-826d-e8dcc066252c",
        "ActorUserId": "fe950802-bf07-755b-826d-e8dcc066252c",
        "ActorUPN": "silviu@fabrikam.app",
        "AuthenticationMechanism": "AAD_Cookie",
        "Timestamp": "2022-10-10T11:26:53.7367453Z",
        "ScopeType": "Organization",
        "ScopeDisplayName": "Fabrikam (Organization)",
        "ScopeId": "547a7316-cdf4-40d2-af16-3215f97d053e",
        "ProjectId": "4bf16944-3595-421f-9947-79d9eb190284",
        "ProjectName": "FabrikamFiber",
        "IpAddress": "127.0.0.1",
        "UserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.37",
        "ActionId": "ApproverReassigned",
        "Data": {
            "ApprovalId": "dae6e7c9-2a10-4cd8-b63a-579a6e7ba78d",
            "OldApproverUserId": "692b6e2a-dd61-4872-866a-85498da390fc",
            "OldApproverDisplayName": "[FabrikamFiber]\\Build Administrators",
            "NewApproverUserId": "fe95080b-bf07-655b-226d-e8dcc066252c",
            "NewApproverDisplayName": "Jack Fabrikam",
            "Comment": "All admins are OOO"
        },
        "Details": "Reassigned approver of Approval dae6e7c9-9a10-4cd8-b63a-579a6e7ba78d in Project \"FabrikamFiber\" from \"[FabrikamFiber]\\Build Administrators\" to \"Jack Fabrikam\" with comment \"All admins are OOO\".",
        "Area": "Checks",
        "Category": "Modify",
        "CategoryDisplayName": "Modify",
        "ActorDisplayName": "Silviu"
    }
]

此外,它會顯示在稽核 UI 中。

稽核 UI 中的記錄專案

工作連結庫會公開代理程式裝載模型

想要判斷代理程式是否在Microsoft裝載集區中執行的工作作者,現在無法使用工作連結庫函式 getAgentMode() 來判斷裝載模型。 在工作想要根據存取客戶的網路而影響行為的情況下,這會很有説明。 如果工作是從位於客戶網路中自我裝載的代理程式或擴展集代理程序執行,則工作可能會嘗試透過私人端點連線到 Azure 服務。 請參閱 工作參考

下一步

注意

這些功能將在未來兩到三周內推出。

前往 Azure DevOps 並查看。

如何提供意見反應

我們很樂意聽到您對於這些功能的看法。 使用說明功能表來回報問題或提供建議。

提供建議

您也可以在 Stack Overflow 上的社群取得建議和您的問題。

感謝您!

Vijay Machiraju