プライベート レジストリにのみアクセスするように Dependabot を構成する方法について
Dependabot を使うと、既定でパブリック レジストリにアクセスできます。また、プライベート レジストリにアクセスできるように Dependabot を構成することもできます。 プライベート レジストリのサポートと構成について詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。 使用可能なオプションの詳細と、プライベート レジストリを構成するときの推奨事項とアドバイスについては、「Dependabot のプライベート レジストリの構成に関するガイダンス」を参照してください。
プライベート レジストリと内部ネットワーク リソースへの Dependabot のアクセスをより詳細に制御するには、Dependabot を GitHub Actions セルフホステッド ランナーで実行するように構成します。 詳細については、「GitHub Actions ランナーの Dependabot について」および「セルフホステッド ランナーでの 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 ファイルの構成オプション」を参照してください。
注: 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 ファイルの構成オプション」を参照してください。
注: 構成ファイルから 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 ファイルの構成オプション」を参照してください。
注: replaces-base: true
から構成ファイルを削除してください。
npm エコシステムでは、さらに、プライベート レジストリの URL を含む .npmrc
ファイルをリポジトリにチェックインする必要があります。
registry=https://private_registry_url
方法 2
.npmrc
ファイルにグローバル レジストリが定義されていない場合は、dependabot.yml
ファイルで replaces-base
を true
として設定できます。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
注: スコープ付き依存関係 (@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 ファイルの構成オプション」を参照してください。
注: 構成ファイルから 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 ファイルの構成オプション」を参照してください。
注: スコープ付き依存関係 (@my-org/my-dep
) の場合、Dependabot では、プロジェクトの .npmrc
ファイルでプライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry=https://private_registry_url
を使います。
Yarn Berry
プライベート レジストリにのみアクセスするように Yarn Berry エコシステムを構成するには、以下の構成方法を使用できます。
方法 1
プライベート レジストリの構成を dependabot.yml
ファイルで定義します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
注: 構成ファイルから 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"
注: スコープ付き依存関係 (@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 ファイルの構成オプション」を参照してください。
注: 構成ファイルから 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 ファイルの構成オプション」を参照してください。
注: 構成ファイルから replaces-base: true
を削除します。
requirements.txt
ファイルにプライベート レジストリの URL を追加し、リポジトリにファイルをチェックインします。
--index-url https://private_registry_url
Pipenv
プライベート レジストリにのみアクセスするように Pipenv を構成するには、dependabot.yml
ファイルから replaces-base
を削除します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。
注: 構成ファイルから 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