Skip to main content

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

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

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

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

Dependabot のプライベート レジストリの構成について

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

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

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

  •         [Bun](#bun)
    
  •         [Bundler](#bundler)
    
  •         [Cargo](#cargo)
    
  •         [Docker](#docker)
    
  •         [Docker Compose](#docker-compose)
    
  •         [Go](#go)
    
  •         [Gradle](#gradle)
    
  •         [Helm チャート](#helm-charts)
    
  •         [Maven](#maven)
    
  •         [npm](#npm)
    
  •         [NuGet](#nuget)
    
  •         [pub](#pub)
    
  •         [Python](#python)
    
  •         [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」を参照してください。

バンドル

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

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

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

YAML
registries:
  ruby-example:
    type: rubygems-server
    url: https://rubygems.example.com
    username: [email protected]
    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 では、ユーザー名、パスワード、およびトークン ベースの認証をサポートしています。 詳しくは、「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 は、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 ファイルの更新はサポートされます。 詳しくは、「Dependabot でサポートされているエコシステムとリポジトリ」の「Gradle」を参照してください。

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

          `maven-repository` タイプは、ユーザー名とパスワードをサポートします。 アカウントが 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}}
updates:
  - package-ecosystem: "gradle"
    directory: "/"
    registries:
      - gradle-artifactory
    schedule:
      interval: "monthly"

メモ

特に、一部の依存関係がビルド時の依存関係である場合は、依存関係グラフで表されているすべての依存関係が表示されない場合があります。 依存関係送信 API を使用して、他の依存関係について GitHub に通知し、それらのセキュリティ更新プログラムを受け取ることができます。 詳しくは、「Dependency Submission 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 では、ユーザー名とパスワードによる認証をサポートしています。 詳しくは、「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}}

アカウントが 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}}
updates:
  - package-ecosystem: "maven"
    directory: "/"
    registries:
      - maven-github
    schedule:
      interval: "monthly"

メモ

特に、一部の依存関係がビルド時の依存関係である場合は、依存関係グラフで表されているすべての依存関係が表示されない場合があります。 依存関係送信 API を使用して、他の依存関係について GitHub に通知し、それらのセキュリティ更新プログラムを受け取ることができます。 詳しくは、「Dependency Submission 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 ドキュメントの「レジストリ ホストの置き換え」を参照してください。

npm config set replace-registry-host "never"
          `replace-registry-host` を使用する場合は、プライベート レジストリ URL を使用するようにロックファイルを再生成するためにローカルで `npm install` を実行する必要があります。 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/dependabot/working-with-dependabot/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: [email protected]
    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: [email protected]
    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 リポジトリから直接ソースされた依存関係により、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/dependabot/working-with-dependabot/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: [email protected]
    password: ${{secrets.MY_AZURE_DEVOPS_TOKEN}}

これらの手順に従ってください: ステップ1:「提案された改善点」と言ってから、必要な改善点をブレインストーミングし、設計して、ja-JPの翻訳をより忠実で流暢なものにします。 ステップ2:改善点がある場合は、「修正された翻訳」と言い、翻訳の忠実性と流暢さを向上させる提案された改善を反映したja-JPの翻訳を出力します。「修正された翻訳」の後の内容は翻訳として解釈されるので、一度だけ言って、その後に余分なテキストや記号を追加しないでください。

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、組織、および「フィード」またはリポジトリが含まれている必要があります。

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 クラシックの場合) にチェックインする必要があります。
  • yarn 構成ファイルには環境変数を含めてはなりません。
  •         `dependabot.yml` を使用して、`https`ファイルに一覧表示されているプライベート レジストリを構成する必要があります。
    

Yarn Classic

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

          `dependabot.yml` ファイルのプライベート レジストリの構成を定義できます。 詳細については、「[最上位レベルの `registries` キー](/code-security/dependabot/working-with-dependabot/dependabot-options-reference#top-level-registries-key)」を参照してください。

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

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 ファイルのプライベート レジストリの構成を定義します。

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

    • キー レジストリを使用してプロジェクト ルート内の .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/dependabot/working-with-dependabot/dependabot-options-reference#top-level-registries-key)」を参照してください。

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

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 ファイルのプライベート レジストリの構成を定義します。

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

    • キー .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 レジストリについて詳しくは、「GitHub Packagesレジストリの利用」をご覧ください。 この記事では、次のレジストリを構成する方法を説明するページにアクセスできます。

  • Bundler (rubygems)
  • 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 のプロキシ」と「パブリック レジストリへの Dependabot アクセスの削除」を参照してください。

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 ログを確認します。