檢閱及合併 Bicep 變更

已完成

您已了解如何使用功能分支,以及如何套用分支保護,以確保變更在合併之前經過檢閱。 現在您必須遵循一套一致的流程,以在合併變更之前提出並檢閱您的變更。

本單元會深入說明提取要求,包括建立及使用的方式。 您也會了解如何使用提取要求來檢閱 Bicep 程式碼。

提取要求

「提取要求」是作為功能開發人員的您,向主分支的維護人員所提出的「要求」。 您會要求維護人員「提取」您對存放庫主分支所做出的變更。

提取要求和分支保護

當您設定分支保護時,您可以要求程式碼擁有者檢閱提取要求。 例如,您可以將專案負責人納入作為所有提取要求的檢閱者,或者您也可以指定特定數目的人員必須檢閱每個提取要求。

提取要求和分支原則

在設定分支原則時,可以要求特定的人員或一組人員檢閱提取要求。 例如,您可以將專案負責人納入作為所有提取要求的檢閱者,或者您也可以指定特定數目的人員必須檢閱每個提取要求。

您也可以要求每個提取要求都需要連結至一個工作項目上。 藉由使用這樣的設定,您可以從包含功能要求的工作項目,追蹤至實作了該變更的程式碼,再一路追蹤至部署和實際執行環境。

建立提取要求

可使用 GitHub Web 介面來建立提取要求。 可選取來源分支,也就是做出變更的地方,以及通常會作為存放庫主分支的目標分支。

可使用 Azure DevOps Web 介面來建立提取要求。 可選取來源分支,也就是做出變更的地方,以及通常會作為存放庫主分支的目標分支。

在建立提取要求時,您必須為其指定名稱。 為提取要求取名時,建議最好要簡單明瞭。 如此有助於團隊成員瞭解所要檢閱的內容。 如果他們具有不同的專業知識領域,合適的名稱可以協助他們找到提取要求,對其提供有意義的意見反應,並略過不相關的提取要求。

此外,提取要求名稱通常會成為您的 Git 存放庫歷程記錄的一部分,因此當有人回頭查看歷程記錄時,最好讓他們能夠了解。

您也可以撰寫提取要求的相關描述。 您可以在描述中提及特定人員,或列出相關問題。 許多小組會為提取要求的描述建立標準化範本,以便釐清每次的變更。

您也可以撰寫提取要求的相關描述。 您可以在描述中提及特定人員,或列出相關工作項目。 許多小組會為提取要求的描述建立標準化範本,以便釐清每次的變更。

在建立提取要求時,您可以邀請人員檢閱變更。

有時候,建立提取要求的目的僅是想從同事那取得意見反應。 在這種情況下,可以將該提取要求指定為一份「草稿」。 檢閱者便能知道您仍在處理變更。 檢閱者仍然可以提供意見反應,但他們也會清楚知道這些變更還尚未準備好合併。 在滿意變更的修改結果後,便能移除草稿狀態。

即使是在建立完提取要求後,仍然可以變更功能分支上的程式碼。 這些變更會成為提取要求的一部分。

檢閱提取要求

在檢閱提取要求時,可以輕鬆地看到所有變更。 可以在整個提取要求上留下註解,或只在檔案被變更的特定部分留下註解。 提取要求作者可以回應註解,而其他檢閱者也可以加入參與討論。 這些註解功能能讓針對提取要求的共同作業,成為互動式的體驗。

在檢閱 Bicep 程式碼時,請尋找下列關鍵元素:

  • 檔案是否已可供部署? 在合併之前,請先部署並測試 Bicep 程式碼。 請確保沒有出現任何 linter 警告,且 Azure 部署成功。 在未來的 Microsoft Learn 課程模組中,您會了解自動部署和驗證變更的方法。
  • Bicep 程式碼是否清楚且容易理解? 請務必讓小組中的每個人都能理解 Bicep 程式碼。 在提取要求中檢閱 Bicep 檔案時,請確保您確實地了解每個變更的用途。 變數和參數是否有妥善命名? 是否使用了註解來說明任何複雜的程式碼區段?
  • 變更是否完整? 如果此提取要求是一個更大規模工作的其中一部分,請確保此在此變更合併並部署時,您的環境能夠妥善運作。 舉例來說,如果提取要求為了準備之後的變更而重新設定了 Azure 資源,請確認該資源在整個流程中都能持續正常運作。 如果提取要求新增了尚不需要的新 Azure 資源,請考慮是否應該先暫時新增一個條件,好讓資源在實際上需要的時候才進行部署。
  • 該變更是否遵循了良好的 Bicep 最佳做法? 在其他 Microsoft Learn 課程模組中,您已學過了良好 Bicep 程式碼所需的元素。 請確保您檢閱的程式碼遵循了這些相同的最佳做法。
  • 變更是否與其上的描述吻合? 在提取要求中包含描述性的標題是很好的做法。 許多團隊也會要求提取要求中要包含對於變更及其用途的相關描述。 檢查 Bicep 程式碼的變更是否符合提取要求的詳細資料。 如果提取要求作者已連結至了工作項目或問題,請確認提取要求中的變更符合工作項目中定義的成功準則。

完成提取要求

在核准了提取要求後,即可完成該要求。 這表示該提取要求的內容會合併到主分支中。

在某些小組中,提取要求作者也應該完成它。 此流程有助於確保作者能控制合併所發生的時間,並能夠監視任何的自動化部署。 在其他團隊中,則是由核准者來完成提取要求。 您的小組應該要決定由誰來合併並提取要求,以及進行的時機。

在某些小組中,提取要求作者也應該完成它。 此流程有助於確保作者能控制合併所發生的時間,並能夠監視任何的自動化部署。 在其他團隊中,則是由核准者來完成提取要求。 您甚至可以使用 Azure DevOps 來在提取要求符合核准準則時,自動完成提取要求。 您的小組應該要決定由誰來合併並提取要求,以及進行的時機。

小組的流程

在開始使用功能分支和提取要求之後,小組的流程可能會改變為類似下列的情況:

  1. 小組成員複製您的共用存放庫。

  2. 他們在自己的本機存放庫複本中,以本機方式對分支做出更動。

  3. 在完成變更後,他們會將本機的分支推送至共用存放庫。

  4. 在共用存放庫中,他們會建立提取要求,以將該分支合併至「主」分支。

    其他小組成員會檢閱變更。 在對變更滿意之後,他們便會核准提取要求,並將其合併至共用存放庫的主分支。

  5. 他們會刪除共用存放庫以及本機存放庫複本中的分支。

    在某些情節中,遠端存放庫的推送會觸發自動化管線來驗證、測試及部署程式碼。 您會在其他 Microsoft Learn 課程模組中了解更多有關管線的資訊。

下圖說明此修改後的程序。

展示了包含進行本機變更、開啟提取要求、刪除本機分支,以及觸發管道的整個流程的圖表。