GitHub 管理とは

完了

GitHub 管理者の目標は、ユーザーのためにすべての作業を円滑に進めていくことです。 このユニットでは、GitHub 組織階層内のさまざまなレベルと、各レベルに関連付けられている管理タスクについて学習します。

チーム レベルでの管理

Screenshot of the organization screen with the Teams tab highlighted.

GitHub では、各ユーザーはチームに追加できる Organization のメンバーです。 カスケード型のアクセス許可とメンションを使用して組織内にチームを作成し、会社またはグループの構造を反映させることができます。 チームはより詳細なレベルでリポジトリ権限を絞り込み、チーム メンバー間の通信と通知を有効にする場合に便利です。

さらに、GitHub を使用すると、Microsoft Entra ID などの ID プロバイダー (IdP) グループとチームを同期することができます。 GitHub のチームを Microsoft Entra ID と同期すると、変更が GitHub に自動的にレプリケートされるため、手動による更新やカスタム スクリプトの必要性が軽減されます。 チームの同期で Microsoft Entra ID を使用して、新しいメンバーのオンボード、新しいアクセス許可の付与、Organization へのメンバー アクセスの削除などの管理タスクを管理できます。

''チーム メンテナ'' またはリポジトリ ''管理者'' 権限を持つチームのメンバーは、次のことができます。

  • 新しいチームを作成し、親チームを選択または変更する。
  • Team を削除または名前を変更する。
  • チームに対して組織メンバーを追加または削除する、あるいは GitHub チームのメンバーシップを IdP グループと同期する。
  • チーム リポジトリの外部コラボレーター (コンサルタントや一時従業員など、Organization の明示的なメンバーではないユーザー) を追加または削除する。
  • チームのページでのチーム ディスカッションを有効または無効にする。
  • Organization 内の Team の表示を変更する。
  • GitHub のレビュー割り当てルーティング アルゴリズムを利用して、pull request の自動コード レビュー割り当てを管理する。
  • リマインダーをスケジュールする。
  • チームのプロファイル画像を設定する。

チームレベルの管理に関するベスト プラクティス

組織内にチームを作成すると、コラボレーションの柔軟性を高め、リポジトリと権限をより簡単に分離できます。 GitHub でチームを設定するためのベスト プラクティスを以下に示します。

  • 入れ子になったチームを作成し、GitHub 組織内のグループまたは会社の階層を反映させる。
  • 関心や特定のテクノロジ (JavaScript、データ サイエンスなど) に基づいてチームを作成し、PR レビュー プロセスの効率化に役立てる。 個人は、自分の関心やスキルに応じて、これらのチームに参加することができます。
  • ID プロバイダー (IdP) と GitHub の間のチーム同期を有効にし、組織の所有者とチーム メンテナが組織内のチームを IdP グループに接続できるようにする。 GitHub のチームを IdP のグループと同期すると、変更を GitHub に自動的にレプリケートでき、必要な手動更新とカスタム スクリプトが減ります。 IdP とチームの同期を使って、新しいメンバーのオンボード、新しい権限の付与、Organization へのメンバー アクセスの削除などの管理タスクを管理できます。

組織レベルの管理

GitHub では、組織は、ユーザーが一度に多くのプロジェクト間で共同作業を行える共有スペースです。 所有者と管理者は、組織のデータとリポジトリへのメンバーのアクセスを高度なセキュリティおよび管理機能を使用して管理できます。

組織レベルでは、"所有者" 権限を持つ組織のメンバーは、次のようなさまざまなアクティビティを実行できます。

  • Organization に参加するようユーザーを招待し、Organization からメンバーを削除する。
  • ユーザーをチームに編成し、組織メンバーに "チーム メンテナ" 権限を付与する。
  • Organization のリポジトリの外部コラボレーター (コンサルタントや一時従業員など、Organization の明示的なメンバーではないユーザー) を追加または削除する。
  • リポジトリ権限レベルをメンバーに付与し、特定のリポジトリに対して基本 (既定) 権限レベルを設定する。
  • 組織のセキュリティを設定する。
  • 支払いを設定する、または Organization に支払いマネージャーを割り当てる。
  • カスタム スクリプトを使用して、リポジトリに関するさまざまな種類の情報を抽出する。
  • カスタム スクリプトを使用して、移行などの組織全体の変更を適用する。

ユーザーとリポジトリに対しては、1 つの組織のみを設定することをお勧めします。 会社の特定の制約で複数の組織を作成することが求められている場合は、次の点にご注意ください。

  • Organization を複製したり、2 つの Organization 間で構成を共有したりすることはできません。 つまり、組織を作成するごとにすべてをゼロから設定する必要があります。これにより、設定でエラーが発生するリスクが増加します。
  • ソフトウェア プロバイダーのポリシーによっては、複数の組織にいくつかのアプリケーションをインストールする必要がある場合に、追加料金が発生する場合があります。
  • 一般に複数の組織の管理がより難しくなります。

エンタープライズ レベルでの管理

エンタープライズ アカウントには、GitHub Enterprise Cloud と Enterprise Server インスタンスが含まれるので、所有者は複数の組織のポリシーと課金を一元的に管理できます。

Enterprise レベルでは、"オーナー" 権限を持つ Enterprise のメンバーは、次のことができます。

  • エンタープライズ アカウントの SAML シングル サインオンを有効にし、各エンタープライズ メンバーが ID プロバイダー (IdP) の外部 ID を既存の GitHub アカウントにリンクできるようにする。
  • エンタープライズに対して組織を追加または削除する。
  • 支払いを設定する、Enterprise 内のすべての Organization に支払いマネージャーを割り当てる。
  • リポジトリ管理ポリシー、プロジェクト ボード ポリシー、チーム ポリシー、およびエンタープライズ内のすべての組織、リポジトリ、およびメンバーに適用されるその他のセキュリティ設定を設定する。
  • カスタム スクリプトを使用して、組織に関するさまざまな種類の情報を抽出する。
  • カスタム スクリプトを使用して、移行などのエンタープライズ全体の変更を適用する。

詳細情報

詳しくは、GitHub Docs の「入れ子チーム」をご覧ください。