概要
既定では、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
ファイル内のアクセス許可が変更されない限り、承認を求めるメッセージは表示されません。
Note
devcontainer.json
ファイル内のアクセス許可を更新しても、既存の codespace のアクセス許可は変更されません。 既存の codespace に追加のアクセス許可が必要な場合は、「リポジトリに対する認証のトラブルシューティング」を参照してください。
カスタム アクセス許可を持つコードスペースの作成
カスタム アクセス許可を持つ codespace を作成するには、次のいずれかを使用する必要があります。
- GitHub Web UI
- GitHub CLI 2.5.2 以降
- GitHub Codespaces Visual Studio Code 拡張機能 1.5.3 以降
追加のリポジトリのアクセス許可の設定
devcontainer.json
ファイルの GitHub Codespaces のリポジトリのアクセス許可を構成します。 追加または変更したカスタム アクセス許可は、変更がリポジトリにコミットされた後に作成された新しい codespace にのみ適用されます。 codespace 内からアクセス許可を追加または変更した場合、その codespace を再構築しても、これらのアクセス許可は現在のコードスペースには適用されません。
-
リポジトリに
devcontainer.json
ファイルがまだ含まれていない場合は、今すぐ追加します。 詳しくは、「開発コンテナー構成のリポジトリへの追加」を参照してください。 -
devcontainer.json
ファイルを編集し、repositories
オブジェクトに必要なリポジトリ名とアクセス許可を追加します。JSON { "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
{ "customizations": { "codespaces": { "repositories": { "my_org/my_repo": { "permissions": { "issues": "write" } } } } } }
Note
- 参照できるのは、現在作業しているリポジトリと同じ個人用アカウントまたは Organization に属するリポジトリのみです。
*
ワイルドカード を使用して、Organization 内の複数のリポジトリにアクセス許可を付与できます。 たとえば、my_org
Organization 内のすべてのリポジトリにアクセス許可を付与するには、my_org/*
を使用します。 この構文は、Codespaces でのみ有効です。 プレビルドに使用されるdevcontainer.json
ファイルでは、各リポジトリのアクセス許可を個別に定義する必要があります。 詳しくは、「プレビルドで他のリポジトリにアクセスできるようにする」を参照してください。
一覧に示されている各リポジトリに対して、次のアクセス許可のうち、いくつでも付与することができます。
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 は再プロンプトを表示しません。
承認する必要があるのは、自分が知っていて信頼できるリポジトリに対するアクセス許可のみです。 要求されたアクセス許可のセットを信頼できない場合は、 [承認なしで続行] をクリックして、基本のアクセス許可のセットを使用して codespace を作成します。 追加のアクセス許可を拒否すると、codespace は作成元のリポジトリにしかアクセスできないため、codespace 内のプロジェクトの機能に影響を与える可能性があります。
個人アカウントが既に所有しているアクセス許可のみを承認できます。 現在アクセス権を持たないリポジトリでのアクセス許可を codespace が要求する場合は、リポジトリの所有者または管理者に連絡して十分なアクセス権を取得してから、codespace の作成を再試行してください。