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

codespaces の暗号化されたシークレットを管理する

環境変数を介してコードスペースにアクセスする、トークンなどの機密情報を保存できます。

GitHub Codespaces

の暗号化されたシークレットについて

コードスペースで使用する個人アカウントに、暗号化されたシークレットを追加できます。 たとえば、次のような機密情報を暗号化されたシークレットとして保存しアクセスするとよいでしょう。

各シークレットにアクセスできるリポジトリを選択できます。 そして、シークレットへのアクセス権があるリポジトリ用に作成した任意のコードスペースでそのシークレットを使用できます。 テンプレートから作成された codespace とシークレットを共有するには、GitHub 上のリポジトリに codespace を発行し、そのリポジトリにシークレットへのアクセス権を付与する必要があります。

シークレットを作成すると、新しいcodespaceを作成したり、codespaceを再起動したりすれば、利用できるようになります。 GitHub.com でシークレットを作成しており、現在実行している codespace でそれを使う場合、codespace を停止し、再起動します。 codespace の停止については、「GitHub Codespaces で Visual Studio Code のコマンド パレットを使う」を参照してください。

シークレットに名前を付ける

シークレットの名前には次のルールが適用されます。

  • シークレット名には、英数字 ([a-z][A-Z][0-9]) またはアンダースコア (_) のみを含めることができます。 スペースは使用できません。

  • シークレット名の最初を GITHUB_ プレフィックスにすることはできません。

  • シークレット名の最初を数字にすることはできません。

  • シークレット名は大文字と小文字を区別しません。

  • シークレット名は、作成されたレベルで一意である必要があります。 たとえば、リポジトリレベルで作成されたシークレットは、そのリポジトリ内で一意の名前である必要があります。

    複数のレベルで同じ名前のシークレットが存在する場合、最も低いレベルのシークレットが優先されます。 たとえば、Organization レベルのシークレット名がリポジトリレベルのシークレット名と同じ場合、リポジトリレベルのシークレット名が優先されます。

シークレットの制限

GitHub Codespaces には最大 100 個のシークレットを保存できます。

シークレットのサイズは最大 48 KB です。

シークレットを追加する

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

    GitHub のアカウント メニューのスクリーンショット。ユーザーがプロファイル、コンテンツ、設定を表示および編集するためのオプションが表示されています。 メニュー項目 [設定] が濃いオレンジ色の枠線で囲まれています。

  2. サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。

  3. [Codespaces シークレット] の右側にある [新しいシークレット] をクリックします。

  4. [Name] で、シークレットの名前を入力します。

  5. "Value(値)"の下で、シークレットの値を入力してください。

  6. "Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。

    [リポジトリ アクセス] ドロップダウン メニューのスクリーンショット。 ドロップダウン メニューに 2 つのリポジトリが表示されています。

  7. [シークレットの追加] をクリックします。

シークレットを編集する

既存のシークレットの値を更新したり、シークレットがアクセスできるリポジトリを変更したりすることができます。

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

    GitHub のアカウント メニューのスクリーンショット。ユーザーがプロファイル、コンテンツ、設定を表示および編集するためのオプションが表示されています。 メニュー項目 [設定] が濃いオレンジ色の枠線で囲まれています。

  2. サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。

  3. [Codespaces シークレット] で、編集するシークレットの右側にある [更新] をクリックします。

  4. [値] で、リンク [新しい値の入力] をクリックします。

    [Codespaces / シークレットの更新] ページのスクリーンショット。 [新しい値の入力] リンクが濃いオレンジ色の枠線で強調表示されています。

  5. "Value(値)"の下で、シークレットの値を入力してください。

  6. "Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。

    [リポジトリ アクセス] ドロップダウン メニューのスクリーンショット。 ドロップダウン メニューに 2 つのリポジトリが表示されています。

  7. リポジトリへのシークレットのアクセス権を削除する場合は、リポジトリを選択解除します。

    2 つのリポジトリの一覧を示すスクリーンショット。 いずれもチェックボックスが選択されています。

  8. [変更を保存] をクリックします。

シークレットを削除する

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

    GitHub のアカウント メニューのスクリーンショット。ユーザーがプロファイル、コンテンツ、設定を表示および編集するためのオプションが表示されています。 メニュー項目 [設定] が濃いオレンジ色の枠線で囲まれています。

  2. サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。

  3. [Codespaces シークレット] で、削除するシークレットの右側にある [削除] をクリックします。

  4. 警告を読み、 [OK] をクリックします。

シークレットの使用

シークレットは環境変数としてユーザーのターミナル セッションにエクスポートされます。

VS Code のターミナルのスクリーンショット。 コマンド "echo $EXAMPLE_API_KEY" から "aBCdeFG1234567" が返されています。

codespace が構築されて実行されたら、codespace でシークレットを使用できます。 たとえば、次のような場合にシークレットを使用できます。

  • 統合ターミナルまたは ssh セッションからアプリケーションを起動するとき。
  • codespace の実行後に実行される開発コンテナー ライフサイクル スクリプト内。 開発コンテナー ライフサイクル スクリプトについて詳しくは、開発コンテナーの Web サイト上にある「仕様」ドキュメントをご覧ください。

codespace シークレットは、次の場合は使用できません。

  • codespace の構築時間 (つまり、Dockerfile またはカスタム エントリ ポイント内)。
  • 開発コンテナー機能内。 詳しくは、開発コンテナーの Web サイト上にある開発コンテナーの仕様で、features プロパティを参照してください。

参考資料