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 のアクセスをより詳細に制御するには、Dependabot を GitHub Actions セルフホステッド ランナーで実行するように構成します。 詳細については、「GitHub Actions ランナーの 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