Skip to main content

codespace 内の他のリポジトリへのアクセスの管理

GitHub Codespaces からアクセスできるリポジトリを管理できます。

概要

既定では、codespace には、作成元のリポジトリをスコープとするトークンと、read アクセス許可または read および write アクセス許可が割り当てられます。 このトークンのスコープは次の状況で自動的に変わります。

  • 読み取りアクセスのみが与えられているリポジトリの codespace を作成し、その codespace でコミットするか、新しいブランチをプッシュすると、GitHub Codespaces では、そのリポジトリの新規または既存のフォークに codespace が自動的にリンクされ、そのフォークの read および write アクセス許可が与えられるよう、トークンが更新されます。 詳しくは、「Codespace でソースコントロールを使用する」を参照してください。
  • テンプレートから codespace を作成し、その codespace を新しいリポジトリに発行すると、GitHub Codespaces では、新しいリポジトリの read および write アクセス許可が与えられるよう、トークンが更新されます。 詳しくは、「テンプレートから codespace を作成する」を参照してください。

詳しくは、「GitHub Codespaces のセキュリティ」を参照してください。

Project で他のリポジトリに追加のアクセス許可が必要な場合は、この記事で後述する「追加のリポジトリのアクセス許可の設定」で説明されているとおり、これを devcontainer.json ファイルに構成することができます。 devcontainer.json ファイルにアクセス許可が一覧表示されると、そのリポジトリのcodespace 作成の一環として、追加のアクセス許可を確認して承認するように求められます。 一覧表示されているアクセス許可を承認すると、GitHub Codespaces は選択を記憶し、devcontainer.json ファイル内のアクセス許可が変更されない限り、承認を求めるメッセージは表示されません。

注: devcontainer.json ファイル内のアクセス許可を更新しても、既存の codespace のアクセス許可は変更されません。 既存の codespace に追加のアクセス許可が必要な場合は、「リポジトリに対する認証のトラブルシューティング」を参照してください。

カスタム アクセス許可を持つコードスペースの作成

カスタム アクセス許可を持つ codespace を作成するには、次のいずれかを使用する必要があります。

追加のリポジトリのアクセス許可の設定

devcontainer.json ファイルの GitHub Codespaces のリポジトリのアクセス許可を構成します。 追加または変更したカスタム アクセス許可は、変更がリポジトリにコミットされた後に作成された新しい codespace にのみ適用されます。 codespace 内からアクセス許可を追加または変更した場合、その codespace を再構築しても、これらのアクセス許可は現在のコードスペースには適用されません。

  1. リポジトリに devcontainer.json ファイルがまだ含まれていない場合は、今すぐ追加します。 詳しくは、「開発コンテナー構成のリポジトリへの追加」を参照してください。

  2. devcontainer.json ファイルを編集し、repositories オブジェクトに必要なリポジトリ名とアクセス許可を追加します。

    JSON
    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": {
                "issues": "write"
              }
            }
          }
        }
      }
    }
    

    注: 参照できるのは、現在作業しているリポジトリと同じ個人アカウントまたは組織に属するリポジトリのみです。

    一覧に示されている各リポジトリに対して、次のアクセス許可のうち、いくつでも付与することができます。

    • actions - 読み取り / 書き込み
    • checks - 読み取り / 書き込み
    • contents - 読み取り / 書き込み
    • deployments - 読み取り / 書き込み
    • discussions - 読み取り / 書き込み
    • issues - 読み取り / 書き込み
    • packages - 読み取り
    • pages - 読み取り / 書き込み
    • pull_requests - 読み取り / 書き込み
    • repository_projects - 読み取り / 書き込み
    • statuses - 読み取り / 書き込み
    • workflows - 書き込み

    組織内のリポジトリのアクセス許可を設定するには、そのリポジトリ名を repositories オブジェクトに明示的に追加する必要があります。

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": {
                "issues": "write"
              }
            }
          }
        }
      }
    }
    

    特定のリポジトリのすべてのアクセス許可を設定するには、リポジトリ オブジェクトで "permissions": "read-all" または "permissions": "write-all" を使用します。

    {
      "customizations": {
        "codespaces": {
          "repositories": {
            "my_org/my_repo": {
              "permissions": "write-all"
            }
          }
        }
      }
    }
    

要求されたアクセス許可の承認

devcontainer.json ファイルで追加のリポジトリのアクセス許可が定義されている場合、このリポジトリの codespace またはプレビルド構成を作るときに、アクセス許可を確認し、必要に応じて認可するように求められます。 リポジトリのアクセス許可を承認すると、要求されたアクセス許可のセットがリポジトリに対して変更されない限り、GitHub Codespaces は再プロンプトを表示しません。

要求されたアクセス許可ページのスクリーンショット。 2 つのアクセス許可が要求済みとして表示されています。メタデータの読み取りアクセス許可と issue の書き込みアクセス許可です。

承認する必要があるのは、自分が知っていて信頼できるリポジトリに対するアクセス許可のみです。 要求されたアクセス許可のセットを信頼できない場合は、 [承認なしで続行] をクリックして、基本のアクセス許可のセットを使用して codespace を作成します。 追加のアクセス許可を拒否すると、codespace は作成元のリポジトリにしかアクセスできないため、codespace 内のプロジェクトの機能に影響を与える可能性があります。

個人アカウントが既に所有しているアクセス許可のみを承認できます。 現在アクセス権を持たないリポジトリでのアクセス許可を codespace が要求する場合は、リポジトリの所有者または管理者に連絡して十分なアクセス権を取得してから、codespace の作成を再試行してください。

アクセスとセキュリティ

非推奨の注意: 以下で説明するアクセスとセキュリティの設定は現在非推奨であり、ここには参考用に記載されています。 他のリポジトリへの拡張アクセスを有効にするには、前述のように、要求されたアクセス許可を codespace の開発コンテナー定義に追加します。

個人アカウントが所有するリポジトリのアクセスとセキュリティを有効にすると、そのリポジトリ用に作成された codespace には、所有している他のすべてのリポジトリへの読み取り権限が付与されます。 Codespace がアクセスできるリポジトリを制限する場合は、Codespace がオープンされたリポジトリまたは特定のリポジトリのいずれかに制限できます。 信頼するリポジトリに対してのみ、アクセスとセキュリティを有効にしてください。

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。

    Screenshot of a user's account menu on GitHub. The menu item "Settings" is outlined in dark orange.

  2. サイドバーの [コード、プラン、自動化] セクションで、[ Codespaces] をクリックします。

  3. [アクセスとセキュリティ] で、ご自身の個人アカウント用の設定を選択します。

    • [無効] - 個人用 codespace のアクセスを、その作成元のリポジトリに制限します。
    • [すべてのリポジトリ] - すべての個人用 codespace から、自分が所有している他のリポジトリにアクセスできます。
    • [選択したリポジトリ] - 特定のリポジトリから作成された個人用 codespace から、自分が所有している他のリポジトリにアクセスできます。
  4. [選択したリポジトリ] を選択した場合は、[リポジトリの選択] ドロップダウン メニューを選択してから、リポジトリをクリックして、そのリポジトリの codespace から自分が所有している他のリポジトリへのアクセスを許可します。 その codespace から自分が所有する他のリポジトリにアクセスできるようにしたいすべてのリポジトリについて、同じ手順を繰り返します。