プライベート レジストリについて
Dependabot version updatesにより、依存関係が最新の状態に保たれます。 Dependabot からパブリック リポジトリにアクセスできます。 さらに、プライベート パッケージ レジストリとプライベート GitHub リポジトリへのアクセス権を Dependabot version updatesに付与して、プライベートと内部ソースの依存関係をパブリック依存関係として最新の状態に保つことができます。
ほとんどのエコシステムでは、プライベート依存関係は通常、プライベート パッケージ レジストリに発行されます。 これらのプライベート レジストリはパブリックに相当するものに似ていますが、認証が必要です。
特定のエコシステムでは、パブリック レジストリへの呼び出しを削除することで、プライベート レジストリ ''にのみ'' アクセスするように Dependabot を構成することができます。__ 詳しくは、「パブリック レジストリへの Dependabot アクセスの削除」を参照してください。
プライベートにホストされているレジストリまたは内部ネットワークに制限されているレジストリへの Dependabot アクセスを許可するには、Dependabot を GitHub Actions セルフホステッド ランナーで実行するように構成します。 詳しくは、「セルフホステッド ランナーでの Dependabot の管理」をご覧ください。
プライベート レジストリの構成
dependabot.yml
ファイルでプライベート レジストリへの Dependabot のアクセスを構成します。
最上位の registries
キーは省略可能であり、認証の詳細を指定します。
dependabot.yml
ファイルには、registries
キーを使用できる場所が 2 つあります。
- 必要に応じて、最上位レベルでレジストリとアクセス情報を定義します。
updates
ブロック内では、registries: "*"
を使って最上位レベルで定義したレジストリの一部またはすべてを使用するように Dependabot に指示できます。
# registries: gradle-artifactory - provides access details for the gradle-artifactory registry
# registries: "*" - allows Dependabot to use all the defined registries specified at the top level
version: 2
registries:
gradle-artifactory:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-gradle-registry
username: octocat
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
updates:
- package-ecosystem: "gradle"
directory: "/"
registries: "*"
schedule:
interval: "monthly"
以下のオプションを使用して、アクセス設定を指定します。 レジストリの設定には、type
と url
、そして通常は username
と password
の組み合わせまたは token
を含める必要があります。
オプション | 説明 |
---|---|
type | レジストリのタイプを指定します。 使用できるレジストリの種類について詳しくは、「registries 」をご覧ください。プライベート レジストリの具体的な構成について詳しくは、「プライベート レジストリの設定オプション」をご覧ください。 |
url | このレジストリの依存関係にアクセスするために使用する URL。 プロトコルはオプションです。 指定しないと、https:// が想定されます。 Dependabot が必要に応じて末尾のスラッシュを追加または無視します。 |
username | Dependabot がレジストリにアクセスするために使用するユーザ名。username は、アカウントのユーザー名またはメール アドレスです。 |
password | 指定したユーザのパスワードを含む Dependabot シークレットへのリファレンス。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。password はユーザー名が指定したアカウントのパスワードです。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。 |
key | このレジストリへのアクセスキーを含むDependabotシークレットへの参照 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。 |
token | このレジストリへのアクセストークンを含む Dependabot シークレットへのリファレンス。 詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。token は外部システムにアクセス トークンを提供するために使用します。GitHub personal access token を提供するために使用しないでください。 GitHub personal access token を使用する場合は、パスワードとして指定する必要があります。 |
replaces-base | レジストリ では、ブール値が true の場合、Dependabot ではその特定のエコシステムのベース URL ではなく、指定された URL を使って依存関係を解決します。 たとえば、type: python-index であるレジストリでは、ブール値が true の場合、pip では Python Package Index のベース URL (既定では https://pypi.org/simple ) ではなく、指定された URL を使って依存関係を解決します。 |
使用可能な構成オプション、その使用方法、サポートされている種類について詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Dependabot で使用する資格情報の格納
GitHub でサポートされているプライベート レジストリへのアクセス権を Dependabot に付与するには、レジストリのアクセス トークンまたはシークレットをリポジトリまたは Organization のシークレット ストアに格納します。
Dependabot に対する暗号化されたシークレットについて
Dependabot シークレットとは、Organization レベルまたはリポジトリレベルで作成する、暗号化された資格情報のことです。 シークレットを Organization レベルで追加した場合、そのシークレットにどのリポジトリがアクセスできるかを指定できます。 シークレットを使用して、プライベートパッケージレジストリにある依存関係を Dependabot が更新できるようにすることができます。 シークレットを追加すると、それが GitHub に届く前に暗号化され、それを Dependabot によりプライベート パッケージ レジストリにアクセスするために使用されるまで暗号化されたままとなります。
Dependabot シークレットには、Dependabot pull request によってトリガーされる GitHub Actions ワークフローで使用されるシークレットも含まれます。 Dependabot 自体では、これらのシークレットが使用されない場合がありますが、ワークフローでは必要です。 詳しくは、「GitHub ActionsでのDependabotの自動化」を参照してください。
Dependabot シークレットを追加後は、dependabot.yml
設定ファイルで ${{secrets.NAME}}
のように参照できます。「NAME」は、シークレットに付けた名前としてください。 次に例を示します。
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
シークレットに名前を付ける
Dependabot シークレットの名前には、以下の制限があります。
- 英数字 (
[A-Z]
、[0-9]
) またはアンダースコア (_
) のみを含めることができます。 スペースは使用できません。 小文字を入力すると、大文字に変換されます。 GITHUB_
プレフィックスで始めることはできません。- 最初を数字にすることはできません。
Dependabot にリポジトリシークレットを追加する
個人アカウントのリポジトリにシークレットを作成するには、そのリポジトリのオーナーでなければなりません。 組織リポジトリのシークレットを作成するには、admin
アクセス権が必要です。
-
GitHub.com で、リポジトリのメイン ページへ移動します。
-
リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
サイド バーの [セキュリティ] セクションで、 [シークレットと変数] を選択し、[Dependabot] をクリックします。
-
[新しいリポジトリ シークレット] をクリックします。
-
[名前] 入力ボックスにシークレットの名前を入力します。
-
シークレットの値を入力します。
-
[シークレットの追加] をクリックします。
シークレットの名前が、Dependabot シークレットのページに一覧表示されます。 [更新] をクリックしてシークレットの値を変更できます。 [削除] をクリックしてシークレットを削除できます。
Dependabot に Organization シークレットを追加する
Organizationでシークレットを作成する場合、ポリシーを使用して、そのシークレットにアクセスできるリポジトリを制限できます。 たとえば、すべてのリポジトリにアクセスを許可したり、プライベート リポジトリまたは指定したリポジトリ のリストのみにアクセスを制限したりできます。
組織レベルでシークレットを作成するには、admin
アクセス権が必要です。
-
GitHub.com で、Organization のメイン ページへ移動します。
-
組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
-
サイド バーの [セキュリティ] セクションで、 [シークレットと変数] を選択し、[Dependabot] をクリックします。
-
[新しい組織シークレット] をクリックします。
-
[名前] 入力ボックスにシークレットの名前を入力します。
-
シークレットの [値] を入力します。
-
[リポジトリアクセス] ドロップダウンリストから、アクセスポリシーを選びます。
-
[選択したリポジトリ] を選択した場合は、次のようにします。
- をクリックします。
- ダイアログ ボックスで、このシークレットにアクセスできるリポジトリを選びます。
- [選択の更新] をクリックします。
-
[シークレットの追加] をクリックします。
シークレットの名前が、Dependabotシークレットのページに一覧表示されます。 [更新] をクリックしてシークレット値またはそのアクセスポリシーを変更できます。 [削除] をクリックしてシークレットを削除できます。
ファイアウォール IP 規則の構成
レジストリ IP 許可リストに Dependabot関連の IP アドレスを追加することができます。
プライベートレジストリが IP 許可リストとともに設定されているなら、Dependabotがレジストリへのアクセスに使う IP アドレスは、メタ API エンドポイントで dependabot
の下にあります。 GitHub Actions セルフホステッド ランナーで Dependabot を実行する場合は、代わりに actions
キーの下にある IP アドレスを使用する必要があります。 詳細については、「メタデータ用 REST API エンドポイント」および「GitHub Actions ランナーの Dependabot について」を参照してください。