シークレットについて
シークレットは暗号化された環境変数であり、Organization、リポジトリ、個人向けアカウントの GitHub Codespaces 設定で作成します。 ユーザー固有シークレットの作成について詳しくは、「codespaces の暗号化されたシークレットを管理する」を参照してください。
作成したシークレットは、GitHub Codespaces で使用できます。 GitHub では libsodium シールド ボックスを使い、GitHub に到達する前にシークレットを暗号化し、codespace で使うときだけ復号します。
Organization レベルのシークレットを使用すると、複数のリポジトリ間でシークレットを共有できるため、重複するシークレットを作成する必要が軽減されます。 アクセスポリシーを使用して、Organization のシークレットを使用できるリポジトリを制御できます。
シークレットを作成すると、新しいcodespaceを作成したり、codespaceを再起動したりすれば、利用できるようになります。 GitHub.com でシークレットを作成しており、現在実行している codespace でそれを使う場合、codespace を停止し、再起動します。 codespace の停止については、「GitHub Codespaces で Visual Studio Code のコマンド パレットを使う」を参照してください。
シークレットに名前を付ける
シークレットの名前には次のルールが適用されます。
-
シークレット名には、英数字 (
[a-z]
、[A-Z]
、[0-9]
) またはアンダースコア (_
) のみを含めることができます。 スペースは使用できません。 -
シークレット名の最初を
GITHUB_
プレフィックスにすることはできません。 -
シークレット名の最初を数字にすることはできません。
-
シークレット名は大文字と小文字を区別しません。
-
シークレット名は、作成されたレベルで一意である必要があります。 たとえば、リポジトリレベルで作成されたシークレットは、そのリポジトリ内で一意の名前である必要があり、Organization レベルで作成されたシークレットは、そのレベルで一意の名前である必要があります。
複数のレベルで同じ名前のシークレットが存在する場合、最も低いレベルのシークレットが優先されます。 たとえば、Organization レベルのシークレット名がリポジトリレベルのシークレット名と同じ場合、リポジトリレベルのシークレット名が優先されます。
シークレットの制限
Organization ごとに最大 100 個のシークレット、リポジトリごとに最大 100 個のシークレットを保存できます。
シークレットのサイズは最大 48 KB です。
リポジトリの推奨シークレット
プロジェクトには、特定のユーザー シークレットが必要になることがあります。 たとえば、codespace でアプリケーションを実行するとき、場合によっては、個人の API キーを入力する必要があります。 その場合、開発コンテナー構成で推奨シークレットを指定できます。 その後、詳細オプションのページで codespace を作成するとき、個人のシークレットをまだ作成していないなら、シークレットの値を入力するように求められます。 codespace で使うシークレット値を入力すると、そのシークレットは Codespaces の個人設定に追加されます。 今後、このリポジトリで codespace を作成するとき、このシークレットの値を入力する必要がありません。 詳しくは、「リポジトリに推奨シークレットを指定する」を参照してください。
リポジトリにシークレットを追加する
Organization リポジトリのシークレットを作成するには、管理者アクセス権が必要です。
-
GitHub.com で、リポジトリのメイン ページへ移動します。 1. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
1. サイドバーの [セキュリティ] セクションで、 [シークレットと変数] 、 [Codespaces] をクリックします。 -
ページの上部にある [新しいリポジトリ シークレット] をクリックします。
-
[名前] 入力ボックスにシークレットの名前を入力します。
-
シークレットの値を入力します。
-
[シークレットの追加] をクリックします。
Organization にシークレットを追加する
Organizationでシークレットを作成する場合、ポリシーを使用して、そのシークレットにアクセスできるリポジトリを制限できます。 たとえば、すべてのリポジトリにアクセスを許可したり、プライベート リポジトリまたは指定したリポジトリ のリストのみにアクセスを制限したりできます。
組織レベルでシークレットを作成するには、admin
アクセス権が必要です。
-
GitHub.com で、Organization のメイン ページへ移動します。 1. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
1. サイドバーの [セキュリティ] セクションで、 [シークレットと変数] 、 [Codespaces] をクリックします。 -
ページの上部にある [新しい Organization のシークレット] をクリックします。
-
[名前] 入力ボックスにシークレットの名前を入力します。
-
シークレットの [値] を入力します。
-
[リポジトリアクセス] ドロップダウンリストから、アクセスポリシーを選びます。
-
[シークレットの追加] をクリックします。
Organizationレベルのシークレットへのアクセスの確認
Organization 内のシークレットに適用されているアクセスポリシーを確認できます。
-
GitHub.com で、Organization のメイン ページへ移動します。 1. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
1. サイドバーの [セキュリティ] セクションで、 [シークレットと変数] 、 [Codespaces] をクリックします。 -
シークレットのリストには、設定済みのアクセス許可とポリシーが含まれます。 次に例を示します。
-
各シークレットに構成されているアクセス許可の詳細については、 [更新] をクリックします。