Skip to main content

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

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

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

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

この記事には、プライベート レジストリにアクセスするように Dependabot を構成するのに役立つ推奨事項および、次について説明します。

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

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

  •         [Bun](#bun)
    
  •         [Bundler](#bundler)
    
  •         [貨物](#cargo)
    
  •         [Docker](#docker)
    
  •         [Docker Compose](#docker-compose)
    
  •         [進む](#go)
    
  •         [Gradle](#gradle)
    
  •         [Helm チャート](#helm-charts)
    
  •         [Maven](#maven)
    
  •         [npm](#npm)
    
  •         [NuGet](#nuget)
    
  •         [pub](#pub)
    
  •         [Python](#python) (pip、pip-compile、pipenv、および詩を含む)
    
  •         [uv](#uv)
    
  •         [Yarn](#yarn)
    

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

  •         [Artifactory](#artifactory)
    
  •         [Azure Artifacts](#azure-artifacts)
    
  •         [Cloudsmith](#cloudsmith)
    
  •         [GitHub Packages レジストリ](#github-packages-registry)
    
  •         [Nexus](#nexus)
    
  •         [ProGet](#proget)
    

プライベート レジストリと内部ネットワーク リソースへの Dependabot のアクセスをより詳細に制御するには、Dependabot を GitHub Actions セルフホステッド ランナーで実行するように構成します。 詳細については、「GitHub Actions ランナーの Dependabot について」および「セルフホステッド ランナーでの 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 リポジトリから直接ソースされた依存関係により、GitHub UI を介してリポジトリにアクセス Dependabot できます。 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 は、マルチステージ 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`](#docker) を構成します。 基本認証の詳細については、Wikipedia の [基本アクセス認証](https://en.wikipedia.org/wiki/Basic_access_authentication) を参照してください。

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/*

注記

この機能を使うと、1 つの Dependabot ワークフロー内でパブリックとプライベート両方の Go モジュールの依存関係をまとめて管理できるため、JFrog Artifactory や Nexus などの企業成果物管理システムを使用する organization に最適です。

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

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

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

GitHub リポジトリから直接ソースされた依存関係により、GitHub UI を介してリポジトリにアクセス Dependabot できます。 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` ファイルの構成を定義したり、Dependabot を構成して、指定したベース URL 経由ですべてのレジストリ要求を送信したりできます。

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

          `dependabot.yml` 型を使用して `npm-registry` ファイルでプライベート レジストリ構成を定義できます。 詳しくは、「[AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot#npm-registry)」をご覧ください。

次の 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` ファイルで `true` を `dependabot.yml` として設定できます。 詳細については、`replaces-base`の「`registries`」を参照してください。

注記

GitHub リポジトリから直接ソースされた依存関係により、GitHub UI を介してリポジトリにアクセス Dependabot できます。 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`の「[](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot#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` ファイルでプライベート レジストリ構成を定義できます。 詳しくは、「[AUTOTITLE](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot#pub-repository)」をご覧ください。
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 リポジトリから直接ソースされた依存関係により、GitHub UI を介してリポジトリにアクセス Dependabot できます。 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`の「[](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/configuring-access-to-private-registries-for-dependabot#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 リポジトリから直接ソースされた依存関係により、GitHub UI を介してリポジトリにアクセス Dependabot できます。 Dependabot にプライベート GitHub 依存関係へのアクセスを許可する方法については、「Dependabot によるプライベート依存関係へのアクセスを許可する」を参照してください。

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

uv

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

Yarn

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` キー」](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/dependabot-options-reference#top-level-registries-key)を参照してください。

プライベート レジストリがプロジェクトの 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` キー」](/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/dependabot-options-reference#top-level-registries-key)を参照してください。

プライベート レジストリがプロジェクトの 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 ドキュメント](https://yarnpkg.com/configuration/yarnrc/#npmAuthIdent)の「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 リポジトリから直接ソースされた依存関係により、GitHub UI を介してリポジトリにアクセス Dependabot できます。 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 の詳細と、Azure Artifacts を使用するように Dependabot を構成する方法については、Azure Artifacts ドキュメントの「Azure DevOps」「Azure 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 と Dependabot を構成して Cloudsmith を使用する方法の詳細については、Cloudsmith ドキュメントの「Cloudsmith の概要」および「Cloudsmith で GitHub Dependabot を統合する」を参照してください。

GitHub Packages レジストリ

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

  • Bundler (rubygems) - Rubyの依存関係管理ツール
  • Docker (コンテナー)
  • GitHub Actions
  • Gradle
  • Maven
  • Npm
  • NuGet
  • Yarn
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 キー」](https://docs.inedo.com/docs/buildmaster-administration-security-api-keys)を参照してください。

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