使用 GitHub 設定原始檔控制存放庫許可權

已完成

以最佳方式實作 GitHub 存放庫許可權牽涉到在協助共同作業和保護程式代碼基底免於濫用和濫用之間找到適當的平衡點。 GitHub 支援精細的訪問控制,可讓小組有效率地彼此互動,同時維護數據隱私權、安全性和完整性的原則。

許可權模型會根據 GitHub 帳戶類型而有所不同。 個人和組織可以建立的帳戶類型有五種:

  • 個人帳戶 GitHub Free: 個人使用免費,包括無限制公用存放庫上具有完整功能集的無限制共同作業者,以及具有有限功能集的無限制私人存放庫,例如
    問題和提取要求。
  • GitHub Pro:適用於專業開發人員的,包括無限制的公用和私人存放庫、無限制的共同作業者和進階程式代碼檢閱工具。
  • 適用於組織的 GitHub Free: 免費組織,包括具有完整功能集的無限制公用存放庫上的無限制共同作業者,以及具有有限功能集的無限制私人存放庫。 除了個人帳戶的 GitHub Free 提供的功能之外,適用於組織的 GitHub Free 每月提供較高的 GitHub Actions 分鐘數和更高的 GitHub Packages 記憶體限制。
  • GitHub 團隊版: 包括 GitHub Pro 的所有功能,以及團隊和使用者權限、程式碼審查工具,以及私人存放庫中的進階工具和功能。
  • GitHub Enterprise:適用於企業級組織的,包括 GitHub Team 的所有功能,以及企業層級的安全性功能,例如單一登錄、稽核記錄和合規性控制。 此方案是自我裝載,而且可以在內部部署或雲端環境中執行 (GitHub Enterprise Cloud)。

個人帳戶的 GitHub Free 存放庫許可權

個人帳戶的 GitHub Free: 針對公用儲存庫,任何人都可以查看並複製儲存庫。 對於私人存放庫,存放庫擁有者可完全控制誰可以存取並參與存放庫,最多允許三個共同作業者。 只有一個擁有者,所以擁有權許可權無法與其他個人帳戶共用。 此外,在私人存放庫中,存放庫擁有者只能將寫入許可權授與共同作業者。 換句話說,共同作業者無法擁有個人帳戶所擁有之存放庫的只讀存取權。

GitHub Pro 中的存放庫許可權

GitHub Pro 包含與個人帳戶 GitHub Free 相同的存放庫許可權等級,但具有更進階的共同作業功能,例如受保護的分支和程式代碼擁有者。

適用於組織的 GitHub Free 存放庫許可權

適用於組織的 GitHub Free 包含建立小組的能力,其可授與具有不同許可權等級的特定存放庫存取權。 Teams 可以授與寫入許可權或系統管理員存取權,也可以建立自定義角色,以授與不同使用者或群組的特定許可權。

組織中用戶的預設非系統管理角色是組織成員。 根據預設,組織成員有一些許可權,包括建立存放庫的能力。

其他組織角色具有較高的存放庫許可權,例如:

  • 組織管理員: 隱藏組織擁有的公開資源庫中的評論。
  • 安全性管理員: 讀取組織中的所有存放庫。
  • 擁有者: 所有與存放庫相關的許可權,包括新增共同作業者,以及寫入和刪除存放庫。

組織擁有者可以在存取其任何存放庫時,設定套用至組織所有成員的基本許可權。 基底許可權不適用於外部共同作業者。 給個別碼庫較高層級的存取權會取代基底許可權。

您可以藉由將內建存放庫角色指派給組織成員和外部共同作業者,以實作對存放庫的自定義存取。 這些角色包括:

  • 建議: 適合非代碼貢獻者,希望檢閱存放庫內容的人士。
  • 分級: 針對需要主動管理問題、討論和提取要求而不需寫入存取權的參與者建議。
  • 寫入:建議 主動推送至存放庫的參與者。
  • 維護: 建議專案經理使用,以便在不需要存取敏感或破壞性操作的情況下管理倉庫。
  • 系統管理員: 建議用於需要完整許可權的人員,包括管理安全性或刪除存放庫等敏感性和破壞性動作。

GitHub Team 中的存放庫許可權

GitHub Team 包含與組織 GitHub Free 相同的存放庫許可權等級,並新增小組的支援,以及更進階的安全性功能,例如授權的IP範圍和企業級驗證。 團隊是組織成員的群體。 組織擁有者和團隊管理者可以授予團隊存取存放庫的許可權。

GitHub Enterprise Cloud 中的存放庫許可權

GitHub Enterprise Cloud 是專為企業級組織所設計,包含 GitHub Team 的所有功能,以及企業級功能。

l 安全性功能,例如單一登錄、稽核記錄和合規性控制。 GitHub Enterprise Cloud 支援非常細微地控制存放庫許可權,包括管理分支層級的許可權的能力。組織擁有者也可以建立自定義角色,將比內建讀取、分級、寫入、維護及系統管理員角色可用的許可權授與不同的使用者或小組更細微的許可權。