GitHub Codespaces
の暗号化されたシークレットについて
コードスペースで使用する個人アカウントに、暗号化されたシークレットを追加できます。 たとえば、次のような機密情報を暗号化されたシークレットとして保存しアクセスするとよいでしょう。
- クラウド サービスへのアクセス トークン
- サービス プリンシパル
- プラン識別子
- プライベート イメージ レジストリの資格情報 (詳しくは、「codespace がプライベート イメージ レジストリにアクセスできるようにする」をご覧ください)
各シークレットにアクセスできるリポジトリを選択できます。 そして、シークレットへのアクセス権があるリポジトリ用に作成した任意のコードスペースでそのシークレットを使用できます。 テンプレートから作成された 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 です。
シークレットを追加する
-
任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。
-
サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。
-
[Codespaces シークレット] の右側にある [新しいシークレット] をクリックします。
-
[Name] で、シークレットの名前を入力します。
-
"Value(値)"の下で、シークレットの値を入力してください。
-
"Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。
-
[シークレットの追加] をクリックします。
シークレットを編集する
既存のシークレットの値を更新したり、シークレットがアクセスできるリポジトリを変更したりすることができます。
-
任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。
-
サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。
-
[Codespaces シークレット] で、編集するシークレットの右側にある [更新] をクリックします。
-
[値] で、リンク [新しい値の入力] をクリックします。
-
"Value(値)"の下で、シークレットの値を入力してください。
-
"Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。
-
リポジトリへのシークレットのアクセス権を削除する場合は、リポジトリを選択解除します。
-
[変更を保存] をクリックします。
シークレットを削除する
-
任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。
-
サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。
-
[Codespaces シークレット] で、削除するシークレットの右側にある [削除] をクリックします。
-
警告を読み、 [OK] をクリックします。
シークレットの使用
シークレットは環境変数としてユーザーのターミナル セッションにエクスポートされます。
codespace が構築されて実行されたら、codespace でシークレットを使用できます。 たとえば、次のような場合にシークレットを使用できます。
- 統合ターミナルまたは ssh セッションからアプリケーションを起動するとき。
- codespace の実行後に実行される開発コンテナー ライフサイクル スクリプト内。 開発コンテナー ライフサイクル スクリプトについて詳しくは、開発コンテナーの Web サイト上にある「仕様」ドキュメントをご覧ください。
codespace シークレットは、次の場合は使用できません。
- codespace の構築時間 (つまり、Dockerfile またはカスタム エントリ ポイント内)。
- 開発コンテナー機能内。 詳しくは、開発コンテナーの Web サイト上にある開発コンテナーの仕様で、
features
プロパティを参照してください。