Skip to main content
ドキュメントへの更新が頻繁に発行されており、このページの翻訳はまだ行われている場合があります。 最新の情報については、「英語のドキュメント」を参照してください。

プレビルドで他のリポジトリにアクセスできるようにする

正常にビルドできるように、プレビルドが他の GitHub リポジトリにアクセスすることを許可できます。

この機能を使用できるユーザー

People with admin access to a repository can configure prebuilds for the repository.

既定では、事前ビルド構成の GitHub Actions ワークフローは、それ自身のリポジトリ コンテンツにのみアクセスできます。 プロジェクトで、他の場所にある追加のリソースを使って、開発環境を構築できます。

プレビルドに外部リソースの読み取りアクセスを許可する

プレビルド構成で使われる devcontainer.json ファイルにアクセス許可を指定すると、リポジトリ所有者が同じである他の GitHub リポジトリへの読み取りアクセスを構成できます。 詳しくは、「codespace 内の他のリポジトリへのアクセスの管理」を参照してください。

: 読み取りアクセス許可は、この方法でのみ認可でき、ターゲット リポジトリの所有者は、プレビルドを作るリポジトリの所有者と同じである必要があります。 たとえば、octo-org/octocat リポジトリにプレビルド構成を作成する場合は、これが devcontainer.json ファイルに指定されていて、自分自身がそのアクセス許可を持っていれば、他のリポジトリ (octo-org/octodemo など) に対する読み取りアクセス許可を付与できます。

リポジトリ所有者が同じである他のリポジトリへの読み取りアクセスを設定する devcontainer.json ファイルに対してプレビルド構成を作成または編集するとき、 [作成] または [更新] をクリックすると、これらのアクセス許可を付与するように求められます。 詳しくは、「プレビルドの構成」を参照してください。

プレビルドに外部リソースの書き込みアクセスを許可する

プロジェクトでリソースへの書き込みアクセスが必要な場合、または外部リソースが、事前ビルド構成を作っているリポジトリとは所有者が異なるリポジトリに存在する場合は、personal access tokenを使ってこのアクセス権を付与できます。

新しい個人アカウントを作り、このアカウントを使って、適切なスコープを持つpersonal access token (classic) を作る必要があります。

  1. GitHub に新しい個人アカウントを作成します。

    警告: 既存の個人アカウントを使用してpersonal access token (classic) を生成することはできますが、ご自分のシナリオに必要なターゲット リポジトリにのみアクセスできる新しいアカウントを作成することを強くお勧めします。 これは、アクセス トークンの repository アクセス許可によって、そのアカウントからアクセスできるすべてのリポジトリへのアクセス権が付与されるからです。 詳細については、「新しい GitHub アカウントへのサインアップ」および「GitHub Actions のセキュリティ強化」を参照してください。

  2. 新しいアカウントに、必要なリポジトリへの読み取りアクセス権を付与します。 詳しくは、「Organization のリポジトリへの個人のアクセスを管理する」を参照してください。

  3. 新しいアカウントにサインインしている間に、repo スコープを持つpersonal access token (classic) を作成します。 必要に応じて、事前ビルドで GitHub Container registry からパッケージをダウンロードする必要がある場合は、read:packages スコープも選択します。 詳しくは、「個人用アクセス トークンの作成」を参照してください。

    [リポジトリ] スコープと [読み取り:パッケージ] スコープが選ばれている personal access token (classic) の [スコープの選択] 構成オプションのスクリーンショット。

    事前ビルドで GitHub Container registry のパッケージを使用する場合は、新しいアカウントにパッケージへのアクセス権を付与するか、事前ビルドするリポジトリのアクセス許可を継承するようにパッケージを構成する必要があります。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。

  4. トークン文字列をコピーします。 これを Codespaces リポジトリ シークレットに割り当てます。

  5. リポジトリへの管理者アクセス権を持つアカウントにもう一度サインインします。

  6. GitHub Codespaces 事前ビルドを作成するリポジトリで、CODESPACES_PREBUILD_TOKEN という名前の新しい Codespaces リポジトリ シークレットを作成して、作成してコピーしたトークンの値を指定します。 詳しくは、「リポジトリの暗号化されたシークレットと GitHub Codespaces の Organization を管理する」を参照してください。

このpersonal access tokenは、リポジトリ用に作成された後続のすべての事前ビルドに使用されます。 他の Codespaces リポジトリ シークレットとは異なり、CODESPACES_PREBUILD_TOKEN シークレットは事前ビルドにのみ使用され、リポジトリから作成される codespace では使用できません。

参考資料