プライベート レジストリにのみアクセスするように Dependabot を構成する方法について
Dependabot を使うと、既定でパブリック レジストリにアクセスできます。また、プライベート レジストリにアクセスできるように Dependabot を構成することもできます。 プライベート レジストリのサポートと構成の詳細については、 Dependabot のプライベート レジストリへのアクセスの構成 を参照してください。 使用可能なオプションの詳細と、プライベート レジストリを構成するときの推奨事項とアドバイスについては、「Dependabot のプライベート レジストリの構成に関するガイダンス」を参照してください。
プライベート レジストリと内部ネットワーク リソースへのDependabotのアクセスをより詳細に制御するには、セルフホステッド ランナーで実行するようにDependabotGitHub Actions構成できます。 詳細については、「GitHub Actionsランナーのディペンダボット」および「セルフホステッド ランナーでの Dependabot の設定」を参照してください。
パブリック レジストリの呼び出しを削除することで、プライベート レジストリDependabotアクセスするように__ を構成できます。 このような構成は、この記事に記載されているエコシステムに対してのみ行えます。
Bundler
プライベート レジストリにのみアクセスするように Bundler エコシステムを構成するには、replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
Bundler エコシステムでは、さらに、プライベート レジストリの URL を含む Gemfile ファイルをリポジトリにチェックインする必要があります。
# Example Gemfile source "https://private_registry_url"
# Example Gemfile
source "https://private_registry_url"
Docker
プライベート レジストリにのみアクセスするように Docker エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
プライベート レジストリの構成を dependabot.yml ファイルで replaces-base を使わずに定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
version: 2
registries:
azuretestregistry: # Define access for a private registry
type: docker-registry
url: firewallregistrydep.azurecr.io
username: firewallregistrydep
password: ${{ secrets.AZUREHUB_PASSWORD }}
version: 2
registries:
azuretestregistry: # Define access for a private registry
type: docker-registry
url: firewallregistrydep.azurecr.io
username: firewallregistrydep
password: ${{ secrets.AZUREHUB_PASSWORD }}
Dockerfile ファイルに、イメージ名を IMAGE[:TAG] の形式で追加します。ここで、IMAGE はご自分のユーザー名とリポジトリの名前で構成されます。
FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04
FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04
オプション 2
replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
replaces-base を使って構成されたレジストリは、ミラーまたはプル スルー キャッシュとして使用できます。 詳細については、Docker ドキュメントの「Registry as a pull through cache (プル スルー キャッシュとしてのレジストリ)」を参照してください。
Gradle
プライベート レジストリにのみアクセスするように Gradle エコシステムを構成するには、以下の構成方法を使用できます。
プライベート レジストリの構成を dependabot.yml ファイルで定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
さらに、repositories ファイルの build.gradle セクションでプライベート レジストリの URL を指定する必要もあります。
# Example build.gradle file
repositories {
maven {
url "https://private_registry_url"
}
}
Maven
プライベート レジストリにのみアクセスするように Maven エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
オプション 2
pom.xml ファイルでプライベート レジストリの URL のみを使います。
<project>
...
<repositories>
<repository>
<id>central</id>
<name>your custom repo</name>
<url>https://private_registry_url</url>
</repository>
...
</project>
Node
npm
プライベート レジストリにのみアクセスするように npm エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
プライベート レジストリの構成を dependabot.yml ファイルで定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
npm エコシステムでは、さらに、プライベート レジストリの URL を含む .npmrc ファイルをリポジトリにチェックインする必要があります。
registry=https://private_registry_url
registry=https://private_registry_url
オプション 2
.npmrc ファイルで、グローバル レジストリが定義されていない場合は、replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
スコープ付き依存関係 (@my-org/my-dep)、 Dependabot はプロジェクトの .npmrc ファイルでプライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry=https://private_registry_url を使います。
糸
Yarn クラシック レジストリと Yarn Berry プライベート レジストリはどちらも Dependabotでサポートされていますが、 Dependabot では、プライベート レジストリにのみアクセスするためにエコシステムごとに異なる構成が必要です。
Yarn Classic
プライベート レジストリにのみアクセスするように Yarn Classic エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
プライベート レジストリの構成を dependabot.yml ファイルで定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
プライベート レジストリがプロジェクトの yarn.lock ファイルの依存関係ソースとして確実にリストされるようにするには、プライベート レジストリにアクセスできるマシンで yarn install を実行します。 Yarn によって、プライベート レジストリの URL を含むように resolved フィールドが更新されるはずです。
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
オプション 2
yarn.lock ファイルでプライベート レジストリが依存関係ソースとしてリストされない場合は、通常のパッケージ マネージャーの手順に従って Yarn Classic を設定できます。
-
プライベート レジストリの構成を
dependabot.ymlファイルで定義します -
キー registry を使って、プロジェクト ルートにある
.yarnrcファイルにレジストリを追加します。 または、yarn config set registry <private registry URL>を実行します。YAML registry https://private_registry_url
registry https://private_registry_url
オプション 3
.yarnrc ファイルにグローバル レジストリが定義されていない場合は、 replaces-base: trueファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
スコープ付き依存関係 (@my-org/my-dep)、 Dependabot はプロジェクトの .npmrc ファイルでプライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry=https://private_registry_url を使います。
ヤーンベリー
プライベート レジストリにのみアクセスするように Yarn Berry エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
プライベート レジストリの構成を dependabot.yml ファイルで定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
プライベート レジストリがプロジェクトの yarn.lock ファイルの依存関係ソースとして確実にリストされるようにするには、プライベート レジストリにアクセスできるマシンで yarn install を実行します。 Yarn によって、プライベート レジストリの URL を含むように resolved フィールドが更新されるはずです。
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
encoding@^0.1.11:
version "0.1.13"
resolved "https://private_registry_url/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9"
integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==
dependencies:
iconv-lite "^0.6.2"
オプション 2
yarn.lock ファイルでプライベート レジストリが依存関係ソースとしてリストされない場合は、通常のパッケージ マネージャーの手順に従って Yarn Berry を設定できます。
- プライベート レジストリの構成を
dependabot.ymlファイルで定義します - キー
.yarnrc.ymlを使って、プロジェクト ルートにあるnpmRegistryServerファイルにレジストリを追加します。 または、yarn config set npmRegistryServer <private registry URL>を実行します。npmRegistryServer: "https://private_registry_url"
メモ
スコープ付き依存関係 (@my-org/my-dep)、 Dependabot はプロジェクトの .yarnrc ファイルでプライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、"@myscope:registry" "https://private_registry_url" を使います。
NuGet
NuGet エコシステムでプライベート レジストリへのアクセスのみを許可する場合は、dependabot.yml ファイルを構成できます。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
さらに、NuGet エコシステムでは、nuget.config ファイルをリポジトリにチェックインする必要があります。その際、< clear /> ファイルの <packageSources> セクションに nuget.org タグを設定するか、disabledPackageSources セクションでキー nuget.config を true に設定する必要があります。
次は、< clear /> の packageSources セクションの nuget.config タグの例です。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
< clear />
<add key="example-nuget" value="https://private_registry_url/nuget/example-nuget/index.json" />
</packageSources>
</configuration>
次は、nuget.org の disabledPackageSources セクションにキー nuget.config を true として追加する場合の例です
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="example-nuget" value="https://private_registry_url/nuget/example-nuget/index.json" />
</packageSources>
<disabledPackageSources>
<add key="nuget.org" value="true" />
</disabledPackageSources>
</configuration>
プライベート Dependabotパブリック フィードの両方にアクセスするように__ を構成するには、次のdependabot.yml例を参照してください。この例には、publicの下に構成されたregistries フィードが含まれています。
version: 2
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: $
password: $
public:
type: nuget-feed
url: https://api.nuget.org/v3/index.json
updates:
- package-ecosystem: nuget
directory: "/"
registries: "*"
schedule:
interval: daily
version: 2
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: $
password: $
public:
type: nuget-feed
url: https://api.nuget.org/v3/index.json
updates:
- package-ecosystem: nuget
directory: "/"
registries: "*"
schedule:
interval: daily
Python
Pip、Pip-compile、Pipenv、Poetry が、Python エコシステムで現在サポートされている 4 つのパッケージ マネージャーです。
pip
プライベート レジストリにのみアクセスするように Pip エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
プライベート レジストリの構成を dependabot.yml ファイルで定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
[global] ファイルの pip.conf セクションにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
[global] timeout = 60 index-url = https://private_registry_url
[global]
timeout = 60
index-url = https://private_registry_url
オプション 2
replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
Pip-compile
プライベート レジストリにのみアクセスするように Pip-compile エコシステムを構成するには、以下の構成方法を使用できます。
オプション 1
replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
オプション 2
プライベート レジストリの構成を dependabot.yml ファイルで定義します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
requirements.txt ファイルにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
--index-url https://private_registry_url
--index-url https://private_registry_url
Pipenv
プライベート レジストリにのみアクセスするように Pipenv を構成するには、replaces-base ファイルから dependabot.yml を削除します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
メモ
構成ファイルから replaces-base: true を削除します。
[[source]] ファイルの Pipfile セクションにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
[[source]] url = "https://private_registry_url" verify_ssl = true name = "pypi"
[[source]]
url = "https://private_registry_url"
verify_ssl = true
name = "pypi"
詩
プライベート レジストリにのみアクセスするように Poetry を構成するには、replaces-base: true ファイルで dependabot.yml を設定します。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。
[[tool.poetry.source]] ファイルの pyproject.toml セクションにプライベート レジストリの url を追加し、リポジトリにチェックインします。
[[tool.poetry.source]] name = "private" url = "https://private_registry_url" default = true
[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true