使用 GitHub 設定原始檔控制存放庫權限
以最佳方式實作 GitHub 存放庫權限牽涉到在協助共同作業和保護程式碼基底免於濫用和誤用之間找到適當的平衡點。 GitHub 支援精細的存取控制,可讓小組有效率地彼此互動,同時維護資料隱私權、安全性和完整性的原則。
權限模型會根據 GitHub 帳戶類型而有所不同。 個人和組織可以建立的帳戶類型有五種:
- 適用於個人帳戶的 GitHub Free:個人使用免費,包括具有完整功能集的不限數量公用存放庫,以及具有有限功能集的不限數量私人存放庫上的不限數量共同作業者,例如
問題和提取要求。 - GitHub Pro:適用於專業開發人員,包括不限數量的公用和私人存放庫、不限數量的共同作業者,以及進階程式碼檢閱工具。
- 適用於組織的 GitHub Freel:對於組織免費,包含具有完整功能集的不限數量公用存放庫,以及具有有限功能集的不限數量私人存放庫上的不限數量共同作業者。 除了適用於個人帳戶的 GitHub Free 提供的功能之外,適用於組織的 GitHub Free 每月提供較高的 GitHub Actions 分鐘數和更高的 GitHub Packages 儲存體限制。
- GitHub Team:適用於小組,包括 GitHub Pro 的所有功能,以及小組和使用者權限、程式碼檢閱工具,以及私人存放庫中的進階工具和功能。
- GitHub Enterprise:適用於企業級組織,包括 GitHub Team 的所有功能,以及企業級安全性功能,例如單一登錄、稽核記錄和合規性控制。 此方案是自我裝載,且可以在內部部署或雲端環境中執行 (GitHub Enterprise Cloud)。
適用於個人帳戶的 GitHub Free 中的存放庫權限
適用於個人帳戶的 GitHub Free:針對公用存放庫,任何人都可以檢視和派生存放庫。 針對私人存放庫,存放庫擁有者可完全控制誰可以存取並參與存放庫,最多允許三個共同作業者。 只能有一個擁有者,所以擁有權權限無法與其他個人帳戶共用。 此外,在私人存放庫中,存放庫擁有者只能將寫入權限授與共同作業者。 換句話說,共同作業者無法擁有個人帳戶所擁有存放庫的唯讀存取權。
GitHub Pro 中的存放庫權限
GitHub Pro 包含與適用於個人帳戶的 GitHub Free 相同的存放庫權限等級,但具有更進階的共同作業功能,例如受保護的分支和程式碼擁有者。
適用於組織的 GitHub Free 中的存放庫權限
適用於組織的 GitHub Free 包含建立小組的能力,其可獲授與具有不同權限等級的特定存放庫存取權。 小族可以獲授與寫入權限或系統管理員存取權,也可以建立自訂角色,以授與不同使用者或群組特定權限。
組織中使用者的預設非系統管理角色是組織成員。 根據預設,組織成員有一些權限,包括建立存放庫的能力。
其他組織角色具有提升的存放庫權限,例如:
- 組織仲裁者:隱藏組織所擁有公用存放庫中的註解。
- 安全性管理員:讀取組織中的所有存放庫。
- 擁有者:所有與存放庫相關的權限,包括新增共同作業者,以及寫入和刪除存放庫。
組織擁有者可以在存取其任何存放庫時,設定套用至組織所有成員的基本權限。 基底權限不適用於外部共同作業者。 為個別存放庫授與較高層級的存取權會覆寫基底權限。
您可以藉由將內建存放庫角色指派給組織成員和外部共同作業者,以實作對存放庫的自訂存取。 這些角色包括:
- 讀取:建議用於想要檢閱存放庫內容的非程式碼參與者。
- 分級:建議用於需要主動管理問題、討論和提取要求,但不需要寫入權限的參與者。
- 寫入:建議用於主動推送至存放庫的參與者。
- 維護:建議用於需要管理存放庫,但無權存取敏感性或破壞性動作的專案經理。
- 管理:建議用於需要完整權限的人員,包括管理安全性或刪除存放庫等敏感性和破壞性動作。
GitHub Team 中的存放庫權限
GitHub Team 包含與適用於組織的 GitHub Free 相同的存放庫權限等級,並新增對小組的支援,以及更進階的安全性功能,例如授權的 IP 範圍和企業級驗證。 小組是組織成員群組。 組織擁有者和小組維護人員可以授與小組存放庫權限。
GitHub Enterprise Cloud 中的存放庫權限
GitHub Enterprise Cloud 是專為企業級組織所設計,包含 GitHub Team 的所有功能,以及企業級
安全性功能,例如單一登錄、稽核記錄和合規性控制。 GitHub Enterprise Cloud 支援非常細微地控制存放庫權限,包括管理分支層級的權限的能力。組織擁有者也可以建立自訂角色,將比內建讀取、分級、寫入、維護及系統管理員角色可用更細微的權限授與不同的使用者或小組。