Skip to main content

Dependabot のプライベート レジストリの構成に関するガイダンス

この記事では、プライベート レジストリの構成に関する詳細情報と、コマンド ラインから実行してパッケージ マネージャーをローカルで構成できるコマンドについて説明します。

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

書き込み アクセスを持つユーザー

この記事には、プライベート レジストリにアクセスするための Dependabot を構成するのに役立つ推奨事項とアドバイスが含まれています。また、次の情報も含まれています。

  • 各パッケージ マネージャーの dependabot.yml 構成ファイルの詳細なスニペット
  • 重要な制限事項または注意事項
  • 構成が機能していることをテストする方法を説明する手順
  • 必要に応じて追加の構成オプション (たとえば、npm には設定する必要がある構成ファイルがあります)
  • レジストリ ホストの構成に関するアドバイス

次のパッケージ マネージャーのセットアップに関する詳細なガイダンスがあります。

また、次のレジストリ ホストのセットアップに関する推奨事項も記載してあります。

プライベート レジストリと内部ネットワーク リソースへの Dependabot のアクセスをより詳細に制御するには、Dependabot を GitHub Actions セルフホステッド ランナーで実行するように構成します。 詳細については、「GitHub Actionsランナーのディペンダボット」および「セルフホステッド ランナーでの Dependabot の設定」を参照してください。

パッケージ マネージャーを構成する

Bun

Bun は npm と同じ構成ガイドラインに従います。 .npmrc ファイルは必須ではありませんが、構成をカスタマイズするために指定できることに注意してください。 詳細な手順については、「npm」を参照してください。

Bundler

Artifactory、Artifacts、Cloudsmith、 GitHub Packages レジストリ、Nexus、ProGet でサポートされています。

ユーザー名とパスワード、またはトークンを使用して認証できます。 詳細については、rubygems-serverの「」を参照してください。

ユーザー名とパスワードを使用する dependabot.yml ファイルのスニペット。

YAML
registries:
  ruby-example:
    type: rubygems-server
    url: https://rubygems.example.com
    username: octocat@example.com
    password: ${{secrets.MY_RUBYGEMS_PASSWORD}}

次の dependabot.yml ファイルのスニペットは、トークンを使用します。 GitHub Packages レジストリ (xyz.pkg.github.com) を使用するこの種類のレジストリでは、トークンは実際には GitHub personal access token (PAT) です。

YAML
registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

注記

GitHub リポジトリから直接ソースされた依存関係により、Dependabot UI を介してリポジトリにアクセス GitHub できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

貨物

Cargo では、ユーザー名、パスワード、およびトークン ベースの認証をサポートしています。 詳細については、cargo-registryの「」を参照してください。

以下のスニペットは、トークンを使用する dependabot.yml ファイル構成を示しています。

registries:
  cargo-example:
    type: cargo-registry
    registry: "name-of-your-registry"
    url: https://cargo.cloudsmith.io/foobaruser/test/
    token: "Token ${{secrets.CARGO_TOKEN}}"

https://cargo.cloudsmith.io プライベート レジストリに対してこの構成をテストしました。

Docker

Docker では、レジストリのユーザー名とパスワードの使用がサポートされています。 詳細については、docker-registryの「」を参照してください。

ユーザー名とパスワードを使用する dependabot.yml ファイルのスニペット。

YAML
registries:
  dockerhub:
    type: docker-registry
    url: https://registry.hub.docker.com
    username: octocat
    password: ${{secrets.MY_DOCKERHUB_PASSWORD}}

docker-registry は、静的な AWS 資格情報を使ってプライベート Amazon ECR からプルするためにも使用できます。

YAML
registries:
  ecr-docker:
    type: docker-registry
    url: https://1234567890.dkr.ecr.us-east-1.amazonaws.com
    username: ${{secrets.ECR_AWS_ACCESS_KEY_ID}}
    password: ${{secrets.ECR_AWS_SECRET_ACCESS_KEY}}

注記

Dependabot は、Open Container Initiative (OCI) ディストリビューション仕様を実装する任意のコンテナー レジストリで動作します。 詳細については、https://github.com/opencontainers/distribution-spec/blob/main/spec.md をご覧ください。

Dependabot では、中央トークン サービスまたは HTTP 基本認証を介したプライベート レジストリへの認証がサポートされます。詳細については、Docker ドキュメントの トークン認証仕様 と Wikipedia の 基本アクセス認証 を参照してください。

制限事項と回避策

  • イメージ名は、Containerfiles、Helm ファイル、または yaml ファイルで常に検出されるとは限りません。
  • Dockerfile は、最初の FROM ディレクティブのバージョン更新のみを受け取る場合があります。
  • Dockerfile は、ARGディレクティブで指定されたイメージの更新を受け取りません。 COPY ディレクティブには使用可能な回避策が用意されています。 詳細については、dependabot/dependabot-core リポジトリの Dependabot「Dockerfile の COPY ステートメントでイメージ参照を無視する」 を参照してください。
  • Dependabot では、マルチステージ Docker ビルドはサポートされていません。 詳細については、 リポジトリのdependabot/dependabot-coreを参照してください。

Docker Compose

Docker Compose は、Docker と同じ構成ガイドラインに従います。 詳細については、「Docker」を参照してください。

Helm チャート

Helm では、レジストリのユーザー名とパスワードの使用がサポートされています。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。

ユーザー名とパスワードを使用する dependabot.yml ファイルのスニペット。

YAML
registries:
  helm_registry:
    type: helm-registry
    url: https://registry.example.com
    username: octocat
    password: ${{secrets.MY_REGISTRY_PASSWORD}}

注記

helm-registryの種類では、HTTP 基本認証のみがサポートされ、OCI 準拠のレジストリはサポートされません。 Helm チャートの OCI 準拠レジストリにアクセスする必要がある場合は、代わりに docker-registry を構成します。 基本認証の詳細については、Wikipedia の 基本アクセス認証 を参照してください。

Helm グラフの Dependabot を構成すると、それらのグラフ内で参照されている Docker イメージも自動的に更新され、グラフのバージョンと含まれているイメージの両方が最新の状態に保たれようになります。

制限事項と回避策

  • Dependabot は、 Chart.yaml ファイル内の依存関係のみを更新します。
  • values.yaml ファイルと Chart.yaml ファイルのイメージが更新されます。
  • Helm の依存関係の更新は、最初に Helm CLI を使って試行され、index.yaml の検索にフォールバックします。
  • YAML 内にバージョンの配列があるイメージは更新できません。
  • Helm ファイルまたは YAML ファイルで、イメージ名が常に検出されるわけではありません。
  • Helm v2 の更新プログラムの場合は、Docker エコシステムを使用します。

Gradle

Dependabot は Gradle を実行しませんが、特定の Gradle ファイルの更新をサポートします。 詳細については、「AUTOTITLE」の「Gradle」を参照してください。

Gradle は、maven-repositoryレジストリ型をサポートします。 詳細については、maven-repositoryの「」を参照してください。

maven-repositoryの種類では、ユーザー名、パスワード、および replaces-base がサポートされます。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。

YAML
registries:
  gradle-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-gradle-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
    replaces-base: true
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    registries:
      - gradle-artifactory
    schedule:
      interval: "monthly"

注記

特に、一部の依存関係がビルド時の依存関係である場合は、依存関係グラフで表されているすべての依存関係が表示されない場合があります。 依存関係送信 API を使用して、他の依存関係について GitHub に通知し、それらのセキュリティ更新プログラムを受け取ることができます。 詳しくは、「依存関係サブミッション API を使用する」をご覧ください。

Go

Jfrog Artifactory と Nexus でサポートされています。

Go では、プライベート レジストリでのユーザー名とパスワードの使用がサポートされています。

dependabot.yml ファイルと goproxy-server タイプを使って、プライベート レジストリを構成します。

YAML
registries:
  my-private-registry:
    type: goproxy-server
    url: https://acme.jfrog.io/artifactory/api/go/my-repo
    username: octocat
    password: ${{secrets.MY_GO_REGISTRY_TOKEN}}

必要に応じて、リポジトリ ルートに go.env ファイルを作成し、Go ツールチェーンがプロキシ サーバーにアクセスする方法を構成することもできます。 このファイルを使うと、GOPROXYGOPRIVATEGONOSUMDBGOSUMDB などの環境変数を設定して、Go モジュールの解決方法を制御できます。

Text
GOPROXY=https://acme.jfrog.io/artifactory/api/go/my-repo
GOPRIVATE=my-company.com/*
GONOSUMDB=my-company.com/*

注記

この機能により、単一の Dependabot ワークフロー内のパブリックおよびプライベート Go モジュールの両方に対する統合された依存関係管理が可能になり、JFrog Artifactory や Nexus などの企業アーティファクト管理システムを使用する組織に最適です。

すべてのモジュールに対応するプライベート プロキシ: すべてのモジュール要求は、最初にプロキシを経由します。 パブリック モジュールの取得に失敗した場合、プロキシは 404/410 を返し、Go は直接バージョン コントロール システム (VCS) アクセスにフォールバックします。 JFrog Artifactory のようなプライベート リポジトリにのみ公開されているプライベート モジュールについては、VCS へのフォールバックは機能しません。これはプロキシ経由でしかアクセスできないためです。

プライベート モジュールに対応するプライベート プロキシ: リポジトリのルートに go.env を追加し、プライベート モジュールのパターンに一致するように GONOSUMDB を設定します (例: my-company.com/ で始まるすべてのプライベート モジュールの場合は GONOSUMDB=my-company.com/*)。 これにより、プライベート モジュールのパブリックなチェックサム検証が無効になります。パブリックなチェックサム データベースにこれらのプライベート モジュールが存在しないためです。

プライベート モジュールに直接アクセス: GOPRIVATE=my-company.com/* を プロキシを経由せずに VCS から直接取得するように設定します。 この設定は、プライベート モジュールが、ソース コントロールでセマンティック バージョン タグ付きで適切に公開されている場合にのみ機能します。

GitHub リポジトリから直接ソースされた依存関係により、Dependabot UI を介してリポジトリにアクセス GitHub できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

Maven

Maven では、ユーザー名、パスワード、および replaces-base がサポートされています。 詳細については、maven-repositoryの「」を参照してください。

YAML
registries:
  maven-artifactory:
    type: maven-repository
    url: https://acme.jfrog.io/artifactory/my-maven-registry
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
    replaces-base: true

アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。

YAML
version: 2
registries:
  maven-github:
    type: maven-repository
    url: https://maven.pkg.github.com/octocat
    username: octocat
    password: ${{secrets.OCTOCAT_GITHUB_PAT}}
    replaces-base: true
updates:
  - package-ecosystem: "maven"
    directory: "/"
    registries:
      - maven-github
    schedule:
      interval: "monthly"

注記

特に、一部の依存関係がビルド時の依存関係である場合は、依存関係グラフで表されているすべての依存関係が表示されない場合があります。 依存関係送信 API を使用して、他の依存関係について GitHub に通知し、それらのセキュリティ更新プログラムを受け取ることができます。 詳しくは、「依存関係サブミッション API を使用する」をご覧ください。

npm

dependabot.ymlの種類を使用してnpm-registry ファイル内の構成を定義することも、指定したベース URL を介してすべてのレジストリ要求を送信するようにDependabotを構成することもできます。

構成ファイルで npm-registry 型を使用する

dependabot.yml 型を使用して npm-registry ファイルでプライベート レジストリ構成を定義できます。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。

次の dependabot.yml ファイルのスニペットは、トークンを使用します。 GitHub Packages レジストリ (xyz.pkg.github.com) を使用するこの種類のレジストリでは、トークンは実際には GitHub personal access token (PAT) です。

YAML
registries:
  npm-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

npm エコシステムでは、プライベート レジストリの URL を含む .npmrc ファイルをリポジトリにチェックインする必要があります。

.npmrc ファイルのサンプル コンテンツ:

registry=https://<private-registry-url>

または、次のコマンドを使用して、既存の .npmrc ファイルにプライベート レジストリ URL を追加できます。

npm config set registry <url>

詳細については、npm ドキュメントの「レジストリ」を参照してください。

また、構成を単一依存関係または組織のみに絞ることもできます。この場合、トークンは、組織に対してのみに有効になり、別のトークンは、同じリポジトリの別の組織に使用できます。

npm config set @<org-name>:registry <url>

これにより、レジストリを持つ '.npmrc' が生成されます。

@<org-name>:registry=https://<private-registry-url>

npm は、replace-registry-host を含むロックファイルでプライベート レジストリの URL を使用するように構成できます。 詳細については、npm ドキュメントの「replace-registry-host」を参照してください。

npm config set replace-registry-host "never"

replace-registry-host を使用する場合は、ロックファイルを再生成するためにローカルで npm install を実行して、プライベート レジストリ URL を使用する必要があります。 Dependabot は、更新プログラムを提供するときに同じ URL を使用します。

レジストリが構成されたら、構成が正しく有効であることを確認するために npm login を実行することもできます。 ロックファイルを再生成して、再度 npm install を実行することで、新しいプライベート レジストリを使用することもできます。

.npmrc ファイルがプロジェクトの package.json と同じディレクトリにチェック インされていること、およびファイルに環境変数やシークレットが含まれていないことを確認する必要があります。 monorepo を使用する場合、.npmrc ファイルはプロジェクトのルート ディレクトリに存在する必要があります。

指定したベース URL を介してレジストリ要求を送信するように Dependabot を構成する

指定したベース URL を介してすべてのレジストリ要求を送信するように Dependabot を構成できます。 Dependabotがパブリック依存関係にアクセスするには、レジストリに、要求されたバージョンの依存関係の複製されたコピーがあるか、または依存関係が使用できない場合にパブリック レジストリからトラフィックをフェッチできるようにする必要があります。

.npmrc ファイルにグローバル レジストリが定義されていない場合は、replaces-base ファイルで truedependabot.yml として設定できます。 詳細については、replaces-baseの「registries」を参照してください。

注記

GitHub リポジトリから直接ソースされた依存関係により、Dependabot UI を介してリポジトリにアクセス GitHub できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

スコープ付き依存関係 (@my-org/my-dep)、 Dependabot はプロジェクトの .npmrc ファイルでプライベート レジストリが定義されている必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry=https://private_registry_url を使います。

レジストリは、https プロトコルを使用して構成する必要があります。

NuGet

Artifactory、Artifacts、Cloudsmith、 GitHub Packages レジストリ、Nexus、ProGet でサポートされています。

nuget-feed タイプは、ユーザー名とパスワード、またはトークンをサポートします。 詳細については、nuget-feedの「」を参照してください。

YAML
registries:
  nuget-example:
    type: nuget-feed
    url: https://nuget.example.com/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_NUGET_PASSWORD}}
YAML
registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
    username: octocat@example.com
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

注記

dependabot.yml ファイルでトークンを使用することもできます。 GitHub Packages レジストリ (xyz.pkg.github.com) を使用するこの種類のレジストリでは、トークンは実際には GitHub personal access token (PAT) です。

YAML
registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/.../_packaging/My_Feed/nuget/v3/index.json
    token: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

pub

dependabot.yml 型を使用して pub-repository ファイルでプライベート レジストリ構成を定義できます。 詳細については、「Dependabot のプライベート レジストリへのアクセスの構成」を参照してください。

YAML
registries:
  my-pub-registry:
    type: pub-repository
    url: https://example-private-pub-repo.dev/optional-path
    token: ${{secrets.MY_PUB_TOKEN}}
updates:
  - package-ecosystem: "pub"
    directory: "/"
    schedule:
      interval: "weekly"
    registries:
      - my-pub-registry

注記

GitHub リポジトリから直接ソースされた依存関係により、Dependabot UI を介してリポジトリにアクセス GitHub できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

pub では、URL とトークン認証がサポートされています。 レジストリに使用される URL は、pub でホストされている URL と一致している必要があります。 詳細については、 リポジトリのgithub/dart-lang/pubを参照してください。

Dependabot では、既定のパッケージ レジストリへのオーバーライドはサポートされていません。 オーバーライドの詳細と、一部のユーザーがオーバーライドを実装する理由については、Dart ドキュメントの「既定のパッケージ リポジトリをオーバーライドする」を参照してください。

Python

Artifactory、Azure Artifacts、Cloudsmith、Nexus、および ProGet でサポートされています。 GitHub Packages レジストリはサポートされていません。

python-index タイプは、ユーザー名とパスワード、またはトークンをサポートします。 詳細については、python-indexの「」を参照してください。

YAML
registries:
  python-example:
    type: python-index
    url: https://example.com/_packaging/my-feed/pypi/example
    username: octocat
    password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
YAML
registries:
  python-azure:
    type: python-index
    url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
    username: octocat@example.com
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}
YAML
registries:
  python-gemfury:
    type: python-index
    url: https://pypi.fury.io/my_org
    token: ${{secrets.MY_GEMFURY_TOKEN}}

注記

GitHub リポジトリから直接ソースされた依存関係により、Dependabot UI を介してリポジトリにアクセス GitHub できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

url には、URL、組織、および "フィード" またはリポジトリが含まれている必要があります。

uv

uv レジストリでは、Python インデックスと同様の構成が使用されます。 詳細については、python-indexの「」を参照してください。

Yarn レジストリでは、npm レジストリと同様の構成が使用されます。 詳細については、npm-registryの「」を参照してください。

YAML
registries:
  yarn-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
  • プライベート レジストリの場合は、.yarnrc.yml ファイル (Yarn 3) または .yarnrc ファイル (Yarn Classic) にチェック インする必要があります。
  • yarn 構成ファイルには環境変数を含めてはなりません。
  • dependabot.yml を使用して https ファイルに一覧されているプライベート レジストリを構成する必要があります。

Yarn Classic

dependabot.yml ファイルでプライベート レジストリ構成を指定するか、標準のパッケージ マネージャー手順を実行して Yarn Classic を設定します。

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

dependabot.yml ファイルでプライベート レジストリ構成を定義できます。 詳細については、「上位 registries キー」を参照してください。

プライベート レジストリがプロジェクトの yarn.lock ファイルの依存関係ソースとして確実にリストされるようにするには、プライベート レジストリにアクセスできるマシンで yarn install を実行する必要があります。 プライベート レジストリ URL を含むように、Yarn は、解決済みフィールドを更新するはずです。

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"
パッケージ マネージャーからの標準手順を実行する

yarn.lock ファイルでプライベート レジストリが依存関係ソースとしてリストされない場合は、標準のパッケージ マネージャーの手順を実行して Yarn Classic を設定できます。

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

  2. その後、次のいずれかを実行できます。

    • キー レジストリを使用してプロジェクト ルート内の .yarnrc ファイルにレジストリを追加して、プライベート レジストリを .yarnrc.yml ファイルに手動で設定する、または
    • ターミナルで yarn config set registry <private registry URL> を実行して、同じアクションを実行します。

    定義されたプライベート レジストリを持つ .yarnrc の例: registry https://nexus.example.com/repository/yarn-all

Yarn Berry (v3)

構成の詳細については、Yarn ドキュメントの「設定 (.yarnrc.yml) 」を参照してください。

Yarn Classic を使用して、dependabot.yml ファイルでプライベート レジストリ構成を指定するか、標準のパッケージ マネージャー手順を実行して Yarn Berry を設定します。

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

dependabot.yml ファイルでプライベート レジストリ構成を定義できます。 詳細については、「上位 registries キー」を参照してください。

プライベート レジストリがプロジェクトの yarn.lock ファイルの依存関係ソースとして確実にリストされるようにするには、プライベート レジストリにアクセスできるマシンで yarn install を実行します。 プライベート レジストリ URL を含むように、Yarn は、解決済みフィールドを更新するはずです。

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"

npmAuthIdent または npmAuthToken を使用しても、プライベート レジストリを構成できます。 詳細については、Yarn ドキュメントの「npmAuthIdent」および「npmAuthToken」を参照してください。

yarn config set registry <url>

構成は、単一の依存関係または組織のみに限定することができます。

yarn config set @<SCOPE>:registry <url>

最後に、構成が正しく有効であることを確認するために yarn login を実行することをお勧めします。 ロックファイルを再生成して、再度 yarn install を実行することで、新しいプライベート レジストリを使用することもできます。

パッケージ マネージャーからの標準手順を実行する

yarn.lock ファイルでプライベート レジストリが依存関係ソースとしてリストされない場合は、標準のパッケージ マネージャーの手順を実行して Yarn Berry を設定できます。

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

  2. その後、次のいずれかを実行できます。

    • キー .yarnrc を使用してプロジェクト ルート内の .yarnrc.yml ファイルにレジストリを追加して、プライベート レジストリを npmRegistryServer ファイルに手動で設定する、または
    • ターミナルで yarn config set npmRegistryServer <private registry URL> を実行して、同じアクションを実行します。

    構成されたプライベート レジストリを持つ .yarnrc.yml ファイルの例: npmRegistryServer: "https://nexus.example.com/repository/yarn-all"

    詳細については、Yarn ドキュメントの「npmRegistryServer」を参照してください。

注記

GitHub リポジトリから直接ソースされた依存関係により、Dependabot UI を介してリポジトリにアクセス GitHub できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

スコープ付き依存関係 (@my-org/my-dep)、 Dependabot は、プロジェクトの .yarnrc fileでプライベート レジストリを定義する必要があります。 個々のスコープのプライベート レジストリを定義するには、@myscope:registry" "https://private_registry_url" を使います。

プライベート レジストリ ホストを構成する

Artifactory

Artifactory の構成の詳細については、JFrog Artifactory ドキュメントの「Artifactory を構成する」を参照してください。

リモート リポジトリ

リモート リポジトリは、ビルド アーティファクトと依存関係のキャッシュとして機能します。 ビルド ツールでは、グローバル依存関係リポジトリにアクセスする必要なく、アーティファクト キャッシュを使用できるため、ビルド時間が短縮されます。 詳細については、JFrog Artifactory ドキュメントの「リモート リポジトリ」を参照してください。

replace-base 設定を使用する場合、依存関係がプライベートレジストリで見つからないときに Dependabot が別のレジストリにアクセスできるようにするには、Artifactory 用のリモートリポジトリも構成する必要があります。

仮想レジストリ

仮想レジストリを使用すると、すべてのプライベート依存関係とパブリック依存関係を 1 つのドメインでグループ化できます。 詳細については、JFrog Artifactory ドキュメントの「npm Registry」を参照してください。

Azure Artifacts

Azure Artifacts に関する情報、および Dependabot を Azure Artifacts で動作するように構成する方法については、それぞれ Azure Artifacts のドキュメントにある Azure DevOpsAzure Artifacts で GitHub の Dependabot を使用する を参照してください。

Azure Artifacts レジストリの例:

YAML
registries:
  nuget-azure-devops:
    type: nuget-feed
    url: https://pkgs.dev.azure.com/my_org/_packaging/public/nuget/v3/index.json
    token: ${{secrets.AZURE_DEVOPS_TOKEN}}

Azure Artifacts パスワードは、エンコードされていないトークンである必要があり、トークン後に : を含める必要があります。 さらに、パスワードを base64 でエンコードすることはできません。

プライベート レジストリに正常にアクセスされたかどうかを確認する場合は、 Dependabot ログを確認します。

Cloudsmith

Cloudsmith の詳細と、Cloudsmith と連携するようにDependabotを構成する方法については、Cloudsmith ドキュメントの「Cloudsmith の概要」と「GitHubDependabotと Cloudsmith の統合」を参照してください。

GitHub Packages レジストリ

GitHub Packages レジストリの詳細については、「GitHub Packagesレジストリの利用」を参照してください。 この記事では、次のレジストリを構成する方法を説明するページにアクセスできます。

  • Bundler (rubygems) - Rubyの依存関係管理ツール
  • Docker (コンテナー)
  • GitHub Actions
  • Gradle
  • Maven
  • Npm
  • NuGet
YAML
registries:
  github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{ secrets.<token> }}

注記

Python コンテナー レジストリはありません。

特定の組織にスコープが設定されているプライベート レジストリの場合、 Dependabot は URL に組織名が dependabot.yml ファイルに含まれると想定しています。

Nexus

Nexus の構成の詳細については、Sonatype ドキュメントの「リポジトリ マネージャー 3」を参照してください。

注記

Nexus Repository Pro では、ユーザー トークンを有効にできます。 詳細については、Sonatype ドキュメントの「ユーザー トークン」を参照してください。

Nexus レジストリの例:

YAML
registries:
  npm-nexus:
    type: npm-registry
    url: https://registry.example.com/repository/npm-internal/
    token: ${{secrets.NEXUS_NPM_TOKEN}}

リバース プロキシの背後で Nexus を実行している場合は、curl -v -H 'Authorization: Bearer <token>' 'https://<nexus-repo-url>/repository/<repo-name>/@<scope>%2<package>' を使用することで認証トークンを使用してサーバーにアクセスできるようにする必要があります。 詳細については、Sonatype ドキュメントの「リバース プロキシの背後で実行する」を参照してください。

Nexus ホストに到達できる IP を制限する場合は、 Dependabot IP を許可リストに追加する必要があります。

プライベート レジストリで依存関係が使用できない場合は、レジストリをプロキシして、パブリック レジストリにアクセスできるようにします。 ただし、Dependabot がプライベート レジストリにのみアクセスし、パブリック レジストリには一切アクセスしないようにしたい場合があります。 詳しくは、Sonatype ドキュメントの「クイック スタート ガイド - Maven と NPM のプロキシ」「AUTOTITLE」を参照してください。

ProGet

ProGet の詳細と、ProGet でフィードを操作するように Dependabot を構成する方法については、 ProGet のドキュメントを参照してください

NuGet フィードの ProGet レジストリ構成の例:

YAML
registries:
  proget-nuget-feed:
    type: nuget-feed
    url: https://proget.corp.local/nuget/MyNuGetFeed/v3/index.json
    token: ${{secrets.PROGET_APK_KEY}}

Bundler (rubygems) の ProGet レジストリ構成の例:

YAML
registries:
  proget-gems-feed:
    type: rubygems-server
    url: https://proget.corp.local/rubygems/MyRubygemsFeed
    token: ${{secrets.PROGET_APK_KEY}}

Python (PyPI) の ProGet レジストリ構成の例:

YAML
registries:
  proget-python-feed:
    type: python-index
    url: https://proget.corp.local/pypi/MyPythonFeed
    token: ${{secrets.PROGET_APK_KEY}}

注記

token は、パッケージを表示するアクセス権を持つ API キーである必要があります。 詳細については、ProGet ドキュメントの「API アクセスと API キー」を参照してください。

プライベート レジストリに正常にアクセスされたかどうかを確認する場合は、 Dependabot ログを確認します。