共用方式為


增強的安全性和管線工作流程

在此次開發迭代中,我們將透過更高的安全性可見度和簡化的管道工作流程,來加強您的DevOps工作流程。 GitHub Advanced Security 現在包含詳細的啟用狀態追蹤 相依性掃描程式碼掃描,以及 機密掃描,為貴組織提供更深入的安全性涵蓋範圍解析。

此外,我們很高興引進管線導向的增強功能,包括新的 YAML 運算式函式和手動驗證工作的擴充控件,讓您能夠建立更有效率且安全的工作流程。

請參閱發行說明以獲取詳細資訊。

適用於 Azure DevOps 的 GitHub 進階安全性

Azure Boards:

Azure Repos

Azure Pipelines

測試計劃

適用於 Azure DevOps 的 GitHub 進階安全性

工具特定安全性概觀涵蓋範圍

GitHub Advanced Security for Azure DevOps 中的安全性概觀現在提供每個掃描工具的啟用狀態詳細細目,包括 相依性掃描程式代碼掃描,以及 秘密掃描。 這項增強功能可讓您檢視組織中所有存放庫的精細啟用狀態。

安全性概觀的螢幕快照。 螢幕快照

如需詳細資訊,請參閱 進階安全性的安全性概觀。

Azure Boards

Azure Boards 與 GitHub Enterprise Cloud 的資料駐留整合 (預覽)

注意

這項功能目前為預覽狀態。 如果您有興趣嘗試 Boards 與 GitHub Enterprise Cloud 結合數據落地的整合,請 傳送電子郵件給我們

Azure Boards 現在支援與已啟用資料駐留的 GitHub Enterprise Cloud 組織整合。 此更新與 GitHub 2024 年 9 月公告一致, 引進企業雲端客戶的數據托管,從歐盟(EU)開始。

要將 Azure Boards 專案與具有資料駐留的 GitHub Enterprise Cloud 組織連線:

  1. 在 Azure Boards 中建立新的連線。
  1. 選擇 [具有資料駐留的 GitHub Enterprise Cloud] 選項。

新 github 連線的螢幕快照。 的螢幕快照

Azure Repos

Azure Repos 的疏鬆結帳

YAML 簽出工作現在支援 git 稀疏簽出 命令,以及 部分複製篩選,以改善庫存簽出效能。 您可以使用 屬性 sparseCheckoutDirectoriessparseCheckoutPatterns

設定 sparseCheckoutDirectories 會啟用圓錐模式,其中簽出程式會使用目錄比對。 或者,您可以設定 sparseCheckoutPatterns 觸發非圓錐模式,以允許更複雜的模式比對。

如果設定這兩個屬性,代理程式就會使用目錄比對來初始化圓錐模式。 如果在檢出任務中未指定任何一個屬性,則會停用精簡檢出過程。 在命令執行期間遇到的任何問題都會導致簽出工作失敗。

稀疏檢出錐形模式的 YAML 範例:

    checkout: repo
    sparseCheckoutDirectories: src

疏鬆結帳非錐形模式的 YAML 範例:


   checkout: repo
   sparseCheckoutPatterns: /* !/img 

重要

稀疏簽出功能需要代理程式 v3.248.0 (v4.248.0 for .NET 8) 或更新版本。

您可以在 發行頁面上找到代理程式,

使跨存放庫政策區分大小寫

先前,跨存放庫政策的分支候選預覽是以不區分大小寫的方式顯示結果,儘管分支比對本身是區分大小寫的。 這種不一致造成了潛在的錯位,因為某些分支看起來似乎受到保護,但實際上並未受到保護。 為了解決此問題,我們已更新分支規則預覽,以符合策略應用的區分大小寫效能。

以前:

後:

Azure Pipelines

新的管線表達式函式

管線表達式函式可讓您撰寫功能強大的 YAML 管線。 在此迭代中,我們引入了兩項新的功能:

  • iif(condition, value_when_true, value_when_false)value_when_true 評估為 conditiontrue時傳回 value_when_false,否則

  • trim(string) 會傳回一個刪除字串開頭和結尾空格的新字串

例如,您可以使用 iif 函式,動態選取執行管線的集區。 如果您想要使用 Azure Pipelines 執行資源池來建置拉取請求,但所有其他執行都應該使用受控 DevOps 執行資源池,您可以撰寫下列流程。

variables:
  poolToUse: ${{ iif(eq(variables['Build.Reason'], 'PullRequest'), 'Azure Pipelines', 'ManagedDevOpsPool')}}

stages:
- stage: build
  pool: ${{variables.poolToUse}}
  jobs:
  - job:
    steps:   
    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'

您可以使用 trim 函式,讓您的 YAML 對使用者輸入更有彈性。 例如,在下列管線中,我們使用 trim 函式來確保階段名稱不會以空格符開頭。

parameters:
- name: regions
  type: string
  default: '  wus1,   wus2, wus3,wus4'

stages:
- ${{ each region in split(parameters.regions, ',')}}:
  - stage: stage_${{trim(region)}}
    displayName: Deploy to ${{trim(region)}}
    jobs:
    - job: deploy
      steps:
      - script: ./deploy.sh ${{trim(region)}}

手動驗證任務的增強功能

ManualValidation 任務可讓您暫停管道的運行,並等候手動介入。 使用此工作的其中一個案例是手動測試。

若要提高管線的安全性,您可能想要限制誰可以完成工作並繼續管線執行。 為此,我們推出了一個新版本的任務,該版本提供了兩個額外的參數:

  • approvers:將誰可以完成工作限製為一組預先定義的使用者/安全組/小組

  • allowApproversToApproveTheirOwnRuns:限制將管線執行排入佇列的用戶無法繼續執行

例如,下列 YAML 代碼段會將可以繼續管線執行的人員集限制為發行核准者群組的成員,但不受觸發管線執行的使用者所限制。

- task: ManualValidation@1
  inputs:
    notifyUsers: 'Release Approvers'
    approvers: 'Release Approvers'
    allowApproversToApproveTheirOwnRuns: false

approvers 屬性中,您可以使用下列值 (逗號分隔) :

  • 電子郵件位址,
  • Permission-Group、
  • 專案團隊,
  • [ProjectName][許可權群組],
  • [組織][權限群組]
  • [ProjectName][專案小組]

測試計劃

Azure Test Plans 錯誤修正

在此短期衝刺中,我們已更新 Azure 測試計劃,以解決數個 Bug 並改善可用性。 以下是已修正的內容:

  • 共用步驟結果顯示: 修正了在 New Boards Hub 中存取測試案例時,共用步驟結果無法顯示在查詢編輯器中的錯誤。

  • zh-TW: 改善利害關係人模式會話: 解決了測試與意見反應延伸模組中的一個問題,該問題妨礙具有利害關係人存取權的使用者啟動會話。

  • 更乾淨的測試計劃複製: 修正了使用 [參考現有測試案例] 選項複製測試計劃時出現的需求重複問題。

後續步驟

注意

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

打開 Azure DevOps 去看看吧。

如何提供意見反應

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

提出建議

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

謝謝

Silviu Andrica