プライベート レジストリにのみアクセスするように Dependabot を構成する方法について
Dependabot を使うと、既定でパブリック レジストリにアクセスできます。また、プライベート レジストリにアクセスできるように Dependabot を構成することもできます。 プライベート レジストリのサポートと構成について詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。 使用可能なオプションの詳細と、プライベート レジストリを構成するときの推奨事項とアドバイスについては、「Dependabot のプライベート レジストリの構成に関するガイダンス」を参照してください。
パブリック レジストリへの呼び出しを削除することでプライベート レジストリに "のみ" アクセスするように Dependabot を構成できます。__ このような構成は、この記事に記載されているエコシステムに対してのみ行えます。
Note
Dependabot updates 用の構成からパブリック レジストリへのアクセス権を削除する場合は、必要なプライベート レジストリへのアクセス権を持つ Dependabot ランナーがサイト管理者によって設定されていることを事前に確認してください。 詳しくは、「制限付きインターネット アクセスで動作するように Dependabot を構成する」を参照してください。
Bundler
プライベート レジストリにのみアクセスするように Bundler エコシステムを構成するには、dependabot.yml
ファイルで replaces-base
を true
として設定できます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Bundler エコシステムでは、さらに、プライベート レジストリの URL を含む Gemfile
ファイルをリポジトリにチェックインする必要があります。
# Example Gemfile
source "https://private_registry_url"
Docker
プライベート レジストリにのみアクセスするように Docker エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
プライベート レジストリの構成を dependabot.yml
ファイルで replaces-base
を使わずに定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから 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 }}
Dockerfile
ファイルに、イメージ名を IMAGE[:TAG]
の形式で追加します。ここで、IMAGE
はご自分のユーザー名とリポジトリの名前で構成されます。
FROM firewallregistrydep.azurecr.io/myreg/ubuntu:22.04
方法 2
dependabot.yml
ファイルで replaces-base
を true
として設定します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。 replaces-base
を使って構成されたレジストリは、ミラーまたはプル スルー キャッシュとして使用できます。 詳細については、Docker ドキュメントの「Registry as a pull through cache (プル スルー キャッシュとしてのレジストリ)」を参照してください。
Gradle
プライベート レジストリにのみアクセスするように Gradle エコシステムを構成するには、以下の構成方法を使用できます。
プライベート レジストリの構成を dependabot.yml
ファイルで定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから replaces-base: true を削除してください。
さらに、build.gradle
ファイルの repositories
セクションでプライベート レジストリの URL を指定する必要もあります。
# Example build.gradle file
repositories {
maven {
url "https://private_registry_url"
}
}
Maven
プライベート レジストリにのみアクセスするように Maven エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
dependabot.yml
ファイルで replaces-base
を true
として設定します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
方法 2
pom.xml
ファイルでプライベート レジストリの URL のみを使います。
<project>
...
<repositories>
<repository>
<id>central</id>
<name>your custom repo</name>
<url>https://private_registry_url</url>
</repository>
...
</project>
ノード
npm
プライベート レジストリにのみアクセスするように npm エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
プライベート レジストリの構成を dependabot.yml
ファイルで定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから replaces-base: true
を削除します。
npm エコシステムでは、さらに、プライベート レジストリの URL を含む .npmrc
ファイルをリポジトリにチェックインする必要があります。
registry=https://private_registry_url
方法 2
.npmrc
ファイルにグローバル レジストリが定義されていない場合は、dependabot.yml
ファイルで replaces-base
を true
として設定できます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
スコープ付き依存関係 (@my-org/my-dep
) の場合、Dependabot では、プロジェクトの.npmrc
ファイルで、プライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry=https://private_registry_url
を使います。
Yarn
Yarn Classic と Yarn Berry のプライベート レジストリはどちらも Dependabot でサポートされていますが、プライベート レジストリにのみアクセスするには、Dependabot ではエコシステムごとに異なる構成が必要です。
Yarn Classic
プライベート レジストリにのみアクセスするように Yarn Classic エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
プライベート レジストリの構成を dependabot.yml
ファイルで定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから 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"
方法 2
yarn.lock
ファイルでプライベート レジストリが依存関係ソースとしてリストされない場合は、通常のパッケージ マネージャーの手順に従って Yarn Classic を設定できます。
-
プライベート レジストリの構成を
dependabot.yml
ファイルで定義します -
キー registry を使って、プロジェクト ルートにある
.yarnrc
ファイルにレジストリを追加します。 または、yarn config set registry <private registry URL>
を実行します。registry https://private_registry_url
オプション 3
.yarnrc
ファイルにグローバル レジストリが定義されていない場合は、dependabot.yml
ファイルで replaces-base
を true
として設定できます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
スコープ付き依存関係 (@my-org/my-dep
) の場合、Dependabot では、プロジェクトの.npmrc
ファイルで、プライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry=https://private_registry_url
を使います。
Yarn Berry
プライベート レジストリにのみアクセスするように Yarn Berry エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
プライベート レジストリの構成を dependabot.yml
ファイルで定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから 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"
方法 2
yarn.lock
ファイルでプライベート レジストリが依存関係ソースとしてリストされない場合は、通常のパッケージ マネージャーの手順に従って Yarn Berry を設定できます。
- プライベート レジストリの構成を
dependabot.yml
ファイルで定義します - キー
npmRegistryServer
を使って、プロジェクト ルートにある.yarnrc.yml
ファイルにレジストリを追加します。 または、yarn config set npmRegistryServer <private registry URL>
を実行します。npmRegistryServer: "https://private_registry_url"
Note
スコープ付き依存関係 (@my-org/my-dep
) の場合、Dependabot では、プロジェクトの.yarnrc
ファイルで、プライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、"@myscope:registry" "https://private_registry_url"
を使います。
Nuget
Nuget エコシステムでプライベート レジストリへのアクセスのみを許可する場合は、dependabot.yml
ファイルを構成できます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
さらに、Nuget エコシステムでは、nuget.config
ファイルをリポジトリにチェックインする必要があります。その際、nuget.config
ファイルの <packageSources>
セクションに < clear />
タグを設定するか、disabledPackageSources
セクションでキー nuget.org
を true に設定する必要があります。
次は、nuget.config
の packageSources
セクションの < clear />
タグの例です。
<?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.config
の disabledPackageSources
セクションにキー nuget.org
を 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
例をご覧ください。registries
の下で public
フィードが構成されています。
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.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから replaces-base: true
を削除します。
pip.conf
ファイルの [global]
セクションにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
[global]
timeout = 60
index-url = https://private_registry_url
方法 2
dependabot.yml
ファイルで replaces-base
を true
として設定します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Pip-compile
プライベート レジストリにのみアクセスするように Pip-compile エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
dependabot.yml
ファイルで replaces-base
を true
として設定します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
方法 2
プライベート レジストリの構成を dependabot.yml
ファイルで定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから replaces-base: true
を削除します。
requirements.txt
ファイルにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
--index-url https://private_registry_url
Pipenv
プライベート レジストリにのみアクセスするように Pipenv を構成するには、dependabot.yml
ファイルから replaces-base
を削除します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
Note
構成ファイルから replaces-base: true
を削除します。
Pipfile
ファイルの [[source]]
セクションにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
[[source]]
url = "https://private_registry_url"
verify_ssl = true
name = "pypi"
Poetry
プライベート レジストリにのみアクセスするように Poetry を構成するには、dependabot.yml
ファイルで replaces-base
を true
として構成します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
pyproject.toml
ファイルの [[tool.poetry.source]]
セクションにプライベート レジストリの url を追加し、リポジトリにチェックインします。
[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true