GitHub 組織和權限如何運作?

已完成

在上一個單元中,您探索了使用者可向 GitHub 進行驗證的各種方式。 在本單元中,您將了解各個層級的權限:

  • 存放庫權限
  • 小組權限
  • 組織權限
  • 企業權限

存放庫權限等級

您可以指派特定的權限層級,以自訂對每個存放庫的存取權。 有五個標準存放庫層級權限:

  • 讀取:適用對象為想要檢視專案或參與討論的非程式碼參與者。 這適合任何需要檢視存放庫中內容,但不需要實際進行參與或變更的人。
  • 分級:適用對象為需要主動管理問題和提取要求,但不需要寫入存取權的參與者。 此層級對於在不修改程式碼的情況下追蹤問題和討論的專案經理非常有用。
  • 寫入:適用對象為會主動推送至專案的參與者。 寫入是大部分開發人員的標準權限。
  • 維護:建議用於需要管理存放庫,但無權存取敏感性或破壞性動作的專案經理。
  • 管理:適用對象為需要專案完整存取權的人員,包括管理安全性或刪除存放庫等敏感性和破壞性動作。 這些人員為存放庫擁有者和系統管理員。

您可以針對由組織擁有的存放庫,提供組織成員、外部參與者和小組不同層級的存取權。 每個權限層級都會逐步授與儲存庫內容和設定的更多存取權。 為專案中每個人或小組角色選擇最適合的層級,而不提供超過必須程度的專案存取權。

系統管理員也可以在 GitHub Enterprise 中建立自訂角色,並視需要使用其他權限來擴充其中一個基本角色。

什麼是存放庫分支處理?

分叉是一種在您自己的 GitHub 帳戶下建立其他人儲存庫的個人副本的方法。 當您分叉儲存庫時,您會獲得自己的版本,您可以自由修改該版本,而不會影響原始專案。 此程式是為開放原始碼做出貢獻或安全地試驗變更的常見工作流程。

您也可以從原始存放庫(通常稱為「上游」存放庫)提取變更,讓分支保持最新狀態。

以下說明如何為存放庫分支處理:

  1. 在 GitHub.com 上,導覽至您要分叉的存放庫主頁面。

  2. 在右上角,選取 Fork

  3. 選擇分支的擁有者 (您的個人帳戶或組織)。

  4. 或者,重新命名分支儲存庫或包含所有分支。

  5. 選擇建立分叉

    螢幕擷取畫面顯示 GitHub 存放庫右上角的分支按鈕。

管理分叉權限(適用於管理員)

對於組織擁有的存放庫,管理員可以控制存放庫是否可以分支:

  • 公用儲存庫:一律允許分叉。
  • 私有儲存庫:可以停用分叉功能,或限制僅限於組織成員。
  • 內部儲存庫:這些儲存庫只能在同一個企業帳戶內分叉。

若要設定分支設定:

  1. 移至組織存放庫的 設定

  2. 在左側邊欄的 [存取] 底下,按一下 [成員權限]。

  3. 找到 存放庫分支 選項並視需要更新它們。

    顯示 GitHub 組織分支權限的螢幕擷取畫面。

小提示

如果您停用私人存放庫的分支處理,則沒有人 (包括組織成員) 能夠進行分支處理。

若要深入瞭解,請參閱 GitHub Docs 有關 Fork a 存放庫的文章。

查看資料庫深入解析

GitHub 上的儲存庫見解提供了一種強大的方法來監控和分析專案的活動、貢獻和依賴關係。 透過利用這些見解,您可以追蹤專案運作狀況、識別瓶頸並確保安全性。 本節將引導您完成存取儲存庫見解的步驟,並提供有效使用它們的最佳實踐。

檢視存放庫分析資料的步驟

  1. 導覽至 GitHub 上的存放庫。
  2. 在存放庫名稱下,按一下 洞察 索引標籤。
  3. 探索 Insights 索引標籤中的下列區段:
    • 貢獻者:檢視一段時間內的貢獻圖表,包括每個貢獻者的提交、新增和刪除。
    • 流量:監控儲存庫流量,包括不重複訪客和頁面檢視。
    • 提交:分析一段時間內的提交活動。
    • 代碼頻率:追蹤隨時間添加和刪除的行數。
    • 依賴關係圖:查看儲存庫的依賴關係並識別潛在的安全漏洞。

使用 Repository Insights 的最佳實務

  • 監控貢獻:使用「貢獻者」部分來識別活躍的貢獻者和儲存庫中最受關注的區域。
  • 追蹤流量:使用「流量」部分了解使用者如何與您的儲存庫互動並識別參與趨勢。
  • 解決漏洞: 定期檢查依賴關係圖,以確保您的存儲庫保持安全。

透過利用儲存庫洞察,您可以做出數據驅動的決策,以改善協作、安全性和專案管理。

使用者如何獲得儲存庫存取的方式

使用者指定其存放庫權限清單的動作

存放庫中使用者的有效許可權會受到各種因素的影響,包括:

  • 存放庫角色: (例如管理員、寫入、讀取)
  • 小組成員資格: (例如繼承團隊的許可權)
  • 組織成員資格: (例如預設組織許可權、SSO 需求)

當您結合這些不同的許可權來源時,GitHub 會套用授與使用者的最高層級存取權。 例如,如果使用者透過小組具有讀取權限,且也有直接指派為共同作業者的寫入權限,則他們實際上將具有寫入權限。

存放庫成員資格選項

將存放庫的存取權授與時,有數種方式可讓用戶成為共同作業者:

會員類型 說明
直接共同作業者 明確新增至具有特定角色 (讀取、分級、寫入、維護或管理員) 的存放庫。
建議用於外部參與者或小型小組。
小組成員資格 用戶透過團隊成員資格繼承存放庫存取權。
小組許可權通常會在組織層級設定,以便進行一致且可調整的管理。
組織默認許可權 如果存放庫是組織的一部分,則所有組織成員可能會有默認許可權等級(例如 None、Read)。
擁有者可以覆寫特定小組或使用者的這些預設值。
外部共同作業者 不是組織成員但具有存放庫明確存取權的使用者。
適用於需要有限存取權的承包商、自由職業者或開放原始碼參與者。

監視和稽核存放庫存取

定期稽核可存取存放庫的人員可確保適當的安全性和合規性。 以下是一些建議的步驟和工具:

  • 在存放庫設定中檢視存取權:

    • 流覽至 [設定 > 管理存取權] (存放庫)。
    • 檢閱使用者和小組的清單,以及其許可權等級。
  • 組織稽核記錄檔 (GitHub Enterprise 或組織層級):

    • 組織擁有者可以在稽核記錄中檢視成員資格、存放庫存取權和許可權的變更。
    • 依儲存庫名稱篩選事件或存取變更以取得更集中焦點的檢視。
  • 企業稽核記錄檔 (GitHub Enterprise):

    • 如果您管理多個組織,請使用企業帳戶的稽核記錄來追蹤所有組織和存放庫的變更。
    • 對於合規性報告或大規模安全性檢閱而言,這特別有用。
  • 自動化文稿:

    • 使用 GitHub REST API 或 GraphQL API,以程式設計方式列出共同作業者、小組和許可權。
    • 將腳本與您的 CI/CD 管線或安全性儀錶板整合,以持續監視和標幟異常狀況。

提示: 設定分支保護規則和必要的檢閱,以針對所有程式代碼變更新增另一層安全性和責任。

小組權限等級

GitHub 組織中的小組是一組在共用存放庫上共同作業的使用者。 Teams 可透過一次將一致許可權套用至多個存放庫,協助簡化存取管理和通訊。 主要優點包括:

  • 集中式訪問控制: 將存放庫許可權(例如讀取、寫入)指派給整個小組,而不是個別管理每個使用者。
  • 結構化共同作業: 依部門、專案或角色組織成員,以提升共同作業效率。
  • 可見度和通訊: 每個小組都可以有自己的討論區,讓您更輕鬆地共用更新並協調工作。

小組提供一種簡單的方式,可讓您將存放庫權限一次指派數名相關的使用者。 子小組成員也會繼承父小組的權限設定,讓您透過公司的自然結構,輕鬆串聯這些權限。

小組層級有兩種層級的權限:

權限層級 說明
成員 小組成員與組織成員擁有相同的功能集
維護人員 小組維修人員可以執行小組成員所能執行的所有操作,也能:
- 變更小組的名稱、描述和可見度。
- 要求小組變更父小組和子小組。
- 設定小組設定檔圖片。
- 編輯與刪除小組討論。
- 在小組中新增及移除組織成員。
- 提升團隊成員,讓他們也擁有團隊維護者權限。
- 移除小組對存放庫的存取權。
- 管理小組的程式碼檢閱指派。
- 管理提取要求的排程提醒。

組織擁有者也可以升階任何組織成員,使其成為小組的維護人員。

若要稽核您所管理存放庫的存取權,您可以在設定中檢視可存取您存放庫的小組和使用者合併清單:

管理存取畫面的螢幕擷取畫面。

GitHub 提供數個可指派給小組的許可權等級。 當您將存放庫的存取權授與小組時,您可以從下列許可權模型中選擇:

許可權模型

許可權等級 說明 適用對象
讀取 用戶可以檢視和複製存放庫。 可以開啟並在問題及提取要求加上註解。 需要唯讀或檢閱存取權的個人。
分級 用戶可以管理問題和提取要求(例如標籤、指派、批註)。 無法將變更推送至存放庫。 需要分類並組織議題但不需撰寫代碼的專案經理或貢獻者。
寫入 使用者可以推送至分支 (受保護的分支除外)。 可以管理問題和提取要求。 需要提交程式碼或更新文件的活躍貢獻者。
維護 用戶可以管理存放庫設定、問題和提取要求。 無法刪除或傳輸存放庫。 處理例行存放庫管理但不需要完整系統管理員許可權的項目維護人員。
管理員 使用者完全控制存放庫,包括設定許可權、刪除存放庫及管理所有設定。 需要最上層系統管理存取權的人員。

提示: 請一律遵循最低許可權原則—指派每個小組有效執行其工作所需的最低許可權等級。 這種方法可降低意外或未經授權的變更風險。