Skip to main content

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

ビルド前に他の GitHub リポジトリにアクセスして、正常にビルドできるようにすることができます。

この機能を使用できるユーザーについて

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

GitHub Codespaces のリポジトリ レベルの設定は、個人アカウントが所有するすべてのリポジトリで使用できます。

Organization が所有するリポジトリの場合、GitHub Codespaces のリポジトリ レベルの設定は、GitHub Team および GitHub Enterprise プランの Organization で使用できます。 設定にアクセスするには、Organization またはその親 Enterprise が支払い方法を追加し、GitHub Codespaces の使用制限を設定する必要があります。 詳細については、「組織内の codespace を誰が所有し、支払うかの選択」および「GitHubのプラン」を参照してください。

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

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

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

メモ

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

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

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

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

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

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

    警告

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

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

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

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

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

  4. [SSO の構成] をクリックし、シングル サインオン (SSO) が有効になっている組織が所有するリポジトリにアクセスできるように、SAML SSO で使用するトークンを認可します。 詳しくは、「シングル サインオンに使用する個人用アクセス トークンの認可」をご覧ください。

    「Personal access tokens (classic)」ページのスクリーンショット。 PAT の [SSO の構成] ボタンが、濃いオレンジ色のアウトラインで強調されています。

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

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

  7. GitHub Codespaces事前ビルドを作成するリポジトリで、Codespaces という名前の新しいCODESPACES_PREBUILD_TOKEN リポジトリ シークレットを作成し、作成してコピーしたトークンの値を指定します。 詳しくは、「リポジトリまたは Organization の開発環境シークレットの管理」をご覧ください。

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

参考資料