GitHub Codespaces
のシークレットについて
コードスペースで使用する個人アカウントに、開発環境シークレットを追加できます。 たとえば、次のような機密情報をシークレットとして保存したりアクセスしたりできます。
- クラウド サービスへのアクセス トークン
- サービス プリンシパル
- サブスクリプション識別子
- プライベート イメージ レジストリの資格情報 (詳しくは、「codespace がプライベートレジストリにアクセスできるようにする」を参照してください)
各シークレットにアクセスできるリポジトリを選択できます。 そして、シークレットへのアクセス権があるリポジトリ用に作成した任意のコードスペースでそのシークレットを使用できます。 テンプレートから作成された 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 です。
シークレットを追加する
-
GitHub の任意のページの右上隅にあるプロフィール写真をクリックし、[ Settings] をクリックします。1. サイドバーの [Code, planning, and automation] セクションで、 [Codespaces] をクリックします。
-
[Codespaces シークレット] の右側にある [新しいシークレット] をクリックします。
-
[Name] で、シークレットの名前を入力します。
-
"Value(値)"の下で、シークレットの値を入力してください。1. "Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。
![[リポジトリ アクセス] ドロップダウン メニューのスクリーンショット。 ドロップダウン メニューに 2 つのリポジトリが表示されています。](/assets/cb-32169/images/help/codespaces/select-repository-access.png)
-
**[シークレットの追加]** をクリックします。
シークレットを編集する
既存のシークレットの値を更新したり、シークレットがアクセスできるリポジトリを変更したりすることができます。
-
GitHub の任意のページの右上隅にあるプロフィール写真をクリックし、[ Settings] をクリックします。1. サイドバーの [Code, planning, and automation] セクションで、 [Codespaces] をクリックします。
-
[Codespaces シークレット] で、編集するシークレットの右側にある [更新] をクリックします。
-
[値] で、リンク [新しい値の入力] をクリックします。
![[Codespaces / シークレットの更新] ページのスクリーンショット。 [新しい値の入力] リンクが濃いオレンジ色の枠線で強調表示されます。](/assets/cb-38851/images/help/codespaces/codespaces-secret-update-value-text.png)
-
"Value(値)"の下で、シークレットの値を入力してください。1. "Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。
![[リポジトリ アクセス] ドロップダウン メニューのスクリーンショット。 ドロップダウン メニューに 2 つのリポジトリが表示されています。](/assets/cb-32169/images/help/codespaces/select-repository-access.png)
-
リポジトリへのシークレットのアクセス権を削除する場合は、リポジトリを選択解除します。

-
[ 変更の保存] をクリックします。
シークレットを削除する
- GitHub の任意のページの右上隅にあるプロフィール写真をクリックし、[ Settings] をクリックします。1. サイドバーの [Code, planning, and automation] セクションで、 [Codespaces] をクリックします。
- [Codespaces シークレット] で、削除するシークレットの右側にある [削除] をクリックします。
- 警告を読み、 [OK] をクリックします。
シークレットの使用
開発環境シークレットは環境変数としてユーザーのターミナル セッションにエクスポートされます。

コードスペースをビルドして実行した後は、開発環境シークレットを使用できます。 たとえば、次のような場合にシークレットを使用できます。
- 統合ターミナルまたは ssh セッションからアプリケーションを起動するとき。
- codespace の実行後に実行される開発コンテナー ライフサイクル スクリプト内。 開発コンテナー ライフサイクル スクリプトについて詳しくは、開発コンテナーの Web サイト上にある「仕様」ドキュメントをご覧ください。
開発環境シークレットは使用できません。
- codespace のビルド時(つまり、Dockerfile またはカスタムエントリポイント内)。
- 開発コンテナー機能内。 詳しくは、開発コンテナーの Web サイトにある
featuresのプロパティを参照してください。
参考資料
-
[AUTOTITLE](/codespaces/managing-codespaces-for-your-organization/managing-development-environment-secrets-for-your-repository-or-organization) -
[AUTOTITLE](/codespaces/developing-in-a-codespace/creating-a-codespace-for-a-repository#recommended-secrets) -
[AUTOTITLE](/codespaces/setting-your-user-preferences) -
[AUTOTITLE](/codespaces/customizing-your-codespace)