設定 Git 存放庫權限

Azure DevOps 服務 |Azure DevOps Server |Azure DevOps Server 2022

管理誰可以存取你的 Git 倉庫,以及他們可以執行哪些動作。 在 所有倉庫 層級設定權限,將權限套用到專案中的每個 Git 儲存庫,或為個別儲存庫設定權限。 個別倉庫會繼承專案層級 Git 倉庫條目的權限。

注意

分支會繼承在存放庫層級進行的指派中的部分權限。 如需分支許可權和原則,請參閱使用分支原則設定分支許可權和改善程式碼品質。

如需涵蓋儲存庫權限、分支政策、提交簽署及實際實作情境的完整安全指南,請參見 「安全倉庫與拉取請求」。

關於誰應提供更高權限等級的指引,請參閱 「使用權限管理存取」。

必要條件

類別 需求
專案存取 加入 Azure DevOps 專案。
許可 管理專案層級 Git 倉庫的權限,以管理專案中所有儲存庫,或管理個別儲存庫的權限以管理該儲存庫。 Project 管理員群組的成員預設擁有此權限。 如需詳細資訊,請參閱 許可權和群組參考。
Services Azure Repos enabled.

檢視預設儲存庫權限

根據預設,項目參與者群組的成員具有參與存放庫的許可權。 此權限層級包括建立分支、建立標籤及管理筆記的能力。 如需每個安全組和許可權等級的描述,請參閱 許可權和群組參考。

權限

讀者

參與者

建構管理員

專案管理員


讀取 (複製、擷取及探索存放庫的內容);也可以建立、批注、投票和 參與合併請求

✔️

✔️

✔️

✔️

貢獻、 建立分支、 建立標籤及 管理筆記

✔️

✔️

✔️

建立存放庫、刪除存放庫和重新命名存放庫

✔️

編輯原則、 管理許可權、 移除其他人的鎖定

✔️

完成提取要求時略過原則、 推送時略過原則、 強制推送 (重寫歷程記錄、刪除分支和標籤)
( 未針對任何安全組設定 )


從 Azure DevOps sprint 224 開始,分支建立者不會自動獲得編輯政策權限。 即使倉庫開啟 了權限管理 設定,這個權限也不會被授予。 透過繼承、群組成員資格或直接轉讓,明確授予 編輯政策 。

在 Azure DevOps Server 2022.1 及以後版本中,分支建立者不會自動獲得編輯政策權限。 即使倉庫開啟 了權限管理 設定,這個權限也不會被授予。 透過繼承、群組成員資格或直接轉讓,明確授予 編輯政策 。 欲了解更多資訊,請參閱 Azure DevOps Server 2022 Update 1 發布說明。

了解授權狀態

在更改權限前,請先檢視 Azure DevOps 如何評估權限狀態:

  • 未設定 並不代表授權或拒絕。 透過其他群組分配或從父範圍繼承的權限仍可適用。
  • 除非有更具體或適用的拒絕覆蓋,否則允許權限會授予該許可。
  • 拒絕通常會覆蓋允許權限,包括繼承或透過其他群組授予的權限。 當你拒絕某個群組的許可時,該拒絕會影響該群組的所有成員。

在指定 拒絕前,請先檢查群組成員資格和繼承權限。 欲了解更多資訊,請參閱 關於權限與群組。

開放儲存庫安全性

從 Project 設定>的Repositories 設定 Git 儲存庫權限。

  1. 打開網頁入口,選擇你想新增使用者或群組的專案。 若要選擇其他專案,請參閱 Switch 專案、儲存庫、團隊。

  2. 選取 [項目設定>存放庫]。

  3. 要為專案中每個 Git 儲存庫設定權限,請選擇 「所有儲存庫>安全性」。

    顯示專案中所有倉庫開啟安全性的截圖。

  4. 要設定特定儲存庫的權限,請選擇該儲存庫,然後選擇 安全性。

    截圖顯示我選擇儲存庫並選擇安全。

從 Project 設定>的Repositories 設定 Git 儲存庫權限。

  1. 打開網頁入口,選擇你想管理權限的專案。 若要選擇其他專案,請參閱 Switch 專案、儲存庫、團隊。

  2. 選取 [項目設定>存放庫]。

  3. 要為專案中每個 Git 儲存庫設定權限,請選擇 Git 倉庫,然後選擇你想管理的使用者或安全群組權限。

    若要查看完整圖片,請點擊圖片以展開。 選擇關閉圖示來關閉。

    截圖顯示選取專案設定 > 儲存庫 > Git 儲存庫 > 貢獻者。

    否則,選擇特定的儲存庫,然後選擇你想管理的使用者或安全群組權限。

  4. 更改權限,然後選擇 「儲存變更」。

  5. 確認每次變更的許可都保留其新狀態。

變更群組的許可權

要設定自訂安全群組的權限,首先定義該群組。 欲了解更多資訊,請參閱 變更專案層級權限。

  1. 選擇群組來設定權限。 例如,選擇 貢獻者。

    顯示選擇貢獻者群組的截圖。

  2. 變更一或多個許可權。 要授予權限,請選擇 允許。 若要移除明確的指派並使用繼承或群組權限,請選擇 「未設定」。 只在需要覆寫適用的允許時才選擇拒絕。

    截圖顯示貢獻者群組的三個權限變更。

權限變更會自動被儲存。 確認每個變更的權限都顯示預期狀態。

變更用戶的許可權

  1. 在搜尋篩選器中輸入使用者名稱,並從看似能為特定使用者設定權限的身份中選擇。

    截圖顯示選取使用者或群組。

  2. 更改所選使用者的一個或多個權限。

    注意

    如果使用者沒有被加入專案,無論是加入安全群組或專案團隊,你可能無法從權限頁面或身份欄位找到該使用者。 此外,當使用者被加入到 Microsoft Entra ID 或 Active Directory時,從使用者加入專案到可以在身份識別欄位中搜尋可能會有延遲。 延遲時間可以介於 5 分鐘到 7 天之間。

    權限變更會自動儲存給所選使用者。 確認每個變更的權限都顯示預期狀態。

    你可以新增一個使用者或群組,但不改變該使用者或群組的任何權限。 權限頁面重新整理後,該使用者或群組將不再出現。

為儲存庫設定繼承

在更改繼承之前,先記錄目前的設定,並檢視倉庫的明確與繼承權限。 當你關閉繼承後,專案層級 Git 倉庫的權限就不會再流向倉庫。 在繼續之前,請確認剩餘的作業是否提供預期的存取權限。

若要啟用或停用特定儲存庫的繼承,請選擇該儲存庫,然後將 繼承 設定為 開啟 或 關閉。

截圖顯示啟用或停用特定儲存庫繼承的畫面。

更改繼承後,請向受影響的代表確認倉庫的權限分配。 如果結果錯誤,請恢復先前的設定和權限狀態。 欲了解繼承,請參閱 「關於權限與群組」。

設定政策繞過權限

在許多情況下,您偶爾需要暫時繞過分支政策。 例如,您可以還原導致建置失敗的變更,或在半夜緊急套用修正程式。

過去,「免受政策強制執行」的權限幫助團隊管理哪些使用者有權在完成拉取請求時繞過分支政策。 然而,該權限也賦予使用者直接推送至分支機構,完全繞過 PR 流程的能力。

以下兩個權限取代了免於 政策執行 ,並提供更細緻的控制:

  • 完成 pull request 時繞過政策:擁有此權限的使用者可利用覆寫功能來執行 pull request。
  • 推送時繞過政策:擁有此權限的使用者可直接推送至已設定的必要政策分支。

若要讓使用者只在完成拉取請求時繞過政策,請在 完成拉取請求時將繞過政策 設為 允許。 如果使用者沒有透過其他指派收到允許,推送時將繞過政策保留為「未設定」。 只在需要覆寫適用的允許時才設為拒絕。

注意

先前將「免於 政策執行 」設定為 「允許 」的使用者,則獲得了兩個替換權限的 允許 。 當使用者不需要直接推送到受保護的分支且沒有其他指派賦予權限時,請檢視這些指派並將 繞過政策 設定為 「不設定 」。

排除權限變更問題

當權限變更未達到預期結果時,請使用以下指引:

問題 Resolution
你不能更改權限 請確認你在專案層級的 Git 倉庫條目或所選倉庫有 管理權限 。
使用者或群組不會出現在搜尋中 透過團隊或資安團隊將身份加入專案。 身份變更可能需要時間才能在搜尋中出現。
許可並不代表你能進入 檢查使用者的群組成員資格及更具體的範圍,尋找適用的 拒絕選項。
授權會影響錯誤的儲存庫 確認你是更改 了所有儲存庫 還是個別儲存庫。
當你選擇「未設定」後,權限會回傳 確認該許可是繼承還是透過其他群組授予。
停用繼承會移除存取權限 恢復你之前記錄的繼承設定或明確的權限分配。

問題解決後,請由受影響的使用者代表驗證預期的儲存庫操作。

小提示

你可以用 AI 來協助 Azure DevOps 的任務。 請參閱 啟用 Azure DevOps MCP Server 的 AI 協助 以開始。