Skip to main content

パブリック レジストリへの Dependabot アクセスの削除

パブリック レジストリへの呼び出しを削除することで、プライベート レジストリにのみアクセスするように Dependabot を構成する方法の例です。

この機能を使用できるユーザーについて

People with write permissions to a repository can configure Dependabot for the repository.

プライベート レジストリにのみアクセスするように Dependabot を構成する方法について

Dependabot を使うと、既定でパブリック レジストリにアクセスできます。また、プライベート レジストリにアクセスできるように Dependabot を構成することもできます。 プライベート レジストリのサポートと構成について詳しくは、「Dependabot のプライベート レジストリへのアクセスの構成」をご覧ください。 使用可能なオプションの詳細と、プライベート レジストリを構成するときの推奨事項とアドバイスについては、「Dependabot のプライベート レジストリの構成に関するガイダンス」を参照してください。

パブリック レジストリへの呼び出しを削除することでプライベート レジストリに "のみ" アクセスするように Dependabot を構成できます。__ このような構成は、この記事に記載されているエコシステムに対してのみ行えます。

Bundler

プライベート レジストリにのみアクセスするように Bundler エコシステムを構成するには、dependabot.yml ファイルで replaces-basetrue として設定できます。 詳しくは、「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-basetrue として設定します。 詳しくは、「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-basetrue として設定します。 詳しくは、「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-basetrue として設定できます。 詳しくは、「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 を設定できます。

  1. プライベート レジストリの構成を dependabot.yml ファイルで定義します

  2. キー registry を使って、プロジェクト ルートにある .yarnrc ファイルにレジストリを追加します。 または、yarn config set registry <private registry URL> を実行します。

    registry https://private_registry_url
    

オプション 3

.yarnrc ファイルにグローバル レジストリが定義されていない場合は、dependabot.yml ファイルで replaces-basetrue として設定できます。 詳しくは、「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 を設定できます。

  1. プライベート レジストリの構成を dependabot.yml ファイルで定義します
  2. キー 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.configpackageSources セクションの < 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.configdisabledPackageSources セクションにキー 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-basetrue として設定します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。

Pip-compile

プライベート レジストリにのみアクセスするように Pip-compile エコシステムを構成するには、以下の構成方法を使用できます。

方法 1

dependabot.yml ファイルで replaces-basetrue として設定します。 詳しくは、「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-basetrue として構成します。 詳しくは、「dependabot.yml ファイルの構成オプション」を参照してください。

pyproject.toml ファイルの [[tool.poetry.source]] セクションにプライベート レジストリの url を追加し、リポジトリにチェックインします。

[[tool.poetry.source]]
name = "private"
url = "https://private_registry_url"
default = true