Skip to main content

GitHub Codespaces のアカウント固有のシークレットの管理

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

GitHub Codespaces

のシークレットについて

コードスペースで使用する個人アカウントに、開発環境シークレットを追加できます。 たとえば、次のような機密情報をシークレットとして保存したりアクセスしたりできます。

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

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

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

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

  • シークレット名には、英数字 ([a-z][A-Z][0-9]) またはアンダースコア (_) のみを含めることができます。 スペースは使用できません。
  • シークレット名の最初を GITHUB_ プレフィックスにすることはできません。
  • シークレット名の最初を数字にすることはできません。
  • シークレット名は大文字と小文字を区別しません。
  • シークレット名は、作成されたレベルで一意である必要があります。 たとえば、リポジトリレベルで作成されたシークレットは、そのリポジトリ内で一意の名前である必要があります。

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

シークレットの制限

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

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

シークレットを追加する

  1. GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。

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

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

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

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

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

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

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

シークレットを編集する

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

  1. GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。

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

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

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

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

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

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

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

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

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

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

シークレットを削除する

  1. GitHub で、任意のページの右上隅にある自分のプロフィール写真をクリックしてから、 [設定] をクリックします。
  2. サイドバーの [コード、プラン、自動化] セクションで、[ Codespaces] をクリックします。
  3. [Codespaces シークレット] で、削除するシークレットの右側にある [削除] をクリックします。
  4. 警告を読み、 [OK] をクリックします。

シークレットの使用

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

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

コードスペースをビルドして実行した後は、開発環境シークレットを使用できます。 たとえば、次のような場合にシークレットを使用できます。

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

開発環境シークレットは使用できません。

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

参考資料