プライベート レジストリについて
Dependabot version updates は依存関係を常に最新に保ち、脆弱な依存関係を Dependabot security updates 更新します。
Dependabot はパブリック レジストリにアクセスできます。 さらに、プライベート パッケージ レジストリとプライベート Dependabot リポジトリへのGitHubアクセス権を付与して、プライベートおよび内部ソースの依存関係を up-to-date として保持し、パブリック依存関係としてセキュリティで保護することができます。
ほとんどのエコシステムでは、プライベート依存関係は通常、プライベート パッケージ レジストリに発行されます。 これらのプライベート レジストリはパブリックに相当するものに似ていますが、認証が必要です。
特定のエコシステムでは、パブリック レジストリの呼び出しを削除することで、プライベート レジストリDependabotアクセスするように__ を構成できます。 詳しくは、「パブリック レジストリへの Dependabot アクセスの削除」をご覧ください。
プライベートにホストされているレジストリまたは内部ネットワークに制限されているレジストリへのDependabotアクセスを許可するには、Dependabotセルフホステッド ランナーで実行するようにGitHub Actionsを構成します。 詳細については、 [AUTOTITLE を](/code-security/dependabot/maintain-dependencies/managing-dependabot-on-self-hosted-runners)参照してください。
プライベート レジストリの構成
Dependabotのプライベート レジストリへのアクセスは、組織レベルで構成できます。
組織レベルのレジストリでは、 トークン、 ユーザー名とパスワード、 OIDC 認証がサポートされます。
構成の詳細については、 AUTOTITLE を参照してください。
Dependabot ファイル内のプライベート レジストリへの`dependabot.yml`のアクセスを構成することもできます。
最上位の registries キーは省略可能であり、認証の詳細を指定します。
dependabot.yml ファイルには、registries キーを使用できる場所が 2 つあります。
- 必要に応じて、最上位レベルでレジストリとアクセス情報を定義します。
updatesブロック内では、registries: "*"を使って最上位レベルで定義したレジストリの一部またはすべてを使用するように Dependabot に指示できます。
# registries: gradle-artifactory - provides access details for the gradle-artifactory registry
# registries: "*" - allows Dependabot to use all the defined registries specified at the top level
version: 2
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: "*"
schedule:
interval: "monthly"
以下のオプションを使用して、アクセス設定を指定します。 レジストリの設定には、type と url、そして通常は username と password の組み合わせまたは token を含める必要があります。
| パラメーター | パーパス |
|---|---|
REGISTRY_NAME | 必須: レジストリの識別子を定義します。 |
type | 必須: レジストリの種類を特定します。 |
| 認証の詳細 | 必須: 認証の詳細を指定するためにサポートされるパラメーターは、レジストリの種類によって異なります。 |
url | 必須: このレジストリ内の依存関係にアクセスするために使う URL。 プロトコルはオプションです。 指定しないと、https:// が想定されます。 Dependabot が必要に応じて末尾のスラッシュを追加または無視します。 |
replaces-base | ブール値が true、Dependabot により、そのエコシステムのベース URL ではなく、指定した url を使って依存関係が解決されます。 |
使用可能な構成オプション、サポートされている種類について詳しくは、「Dependabot オプション リファレンス」を参照してください。
Dependabot で使用する資格情報の格納
Dependabotでサポートされているプライベート レジストリにGitHubアクセスできるようにするには、レジストリのアクセス トークンまたはシークレットをリポジトリまたは組織のシークレット ストアに格納します。
暗号化されたシークレットについて Dependabot
Dependabot シークレットは、組織レベルまたはリポジトリ レベルで作成する暗号化された資格情報です。
シークレットを Organization レベルで追加した場合、そのシークレットにどのリポジトリがアクセスできるかを指定できます。 シークレットを使用して、 Dependabot がプライベート パッケージ レジストリにある依存関係を更新できるようにします。 シークレットを追加すると、シークレットは GitHub に到達する前に暗号化され、プライベート パッケージ レジストリにアクセスするために Dependabot によって使用されるまで暗号化されたままになります。
Dependabot シークレットには、Dependabot プル要求によってトリガーされる GitHub Actions ワークフローで使用されるシークレットも含まれます。
Dependabot それ自体はこれらのシークレットを使用することはできませんが、ワークフローにはシークレットが必要です。 詳しくは、「[AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-on-github-actions#accessing-secrets)」をご覧ください。
Dependabotシークレットを追加した後、`dependabot.yml`構成ファイルで参照できます。`${{secrets.NAME}}`。ここで、"NAME" はシークレットに対して選択した名前です。 例えば次が挙げられます。
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
シークレットに名前を付ける
Dependabot シークレットの名前:
- 英数字 (
[A-Z]、[0-9]) またはアンダースコア (_) のみを含めることができます。 スペースは使用できません。 小文字を入力すると、大文字に変換されます。 GITHUB_プレフィックスで始めることはできません。- 最初を数字にすることはできません。
リポジトリ シークレットを追加 Dependabot
個人アカウントのリポジトリにシークレットを作成するには、そのリポジトリのオーナーでなければなりません。 組織リポジトリのシークレットを作成するには、admin アクセス権が必要です。
-
GitHub で、リポジトリのメイン ページに移動します。
-
リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。](/assets/cb-28260/images/help/repository/repo-actions-settings.png)
-
サイドバーの [Security] セクションで、 [Secrets and variables] を選んでから、[Dependabot] をクリックします。
-
**[新しいリポジトリ シークレット]** をクリックします。 -
**[名前]** 入力ボックスにシークレットの名前を入力します。 -
シークレットの値を入力します。
-
**[シークレットの追加]** をクリックします。シークレットの名前が、Dependabot シークレットのページに一覧表示されます。 [更新] をクリックしてシークレットの値を変更できます。 [削除] をクリックしてシークレットを削除できます。
の組織シークレットを追加する Dependabot
Organizationでシークレットを作成する場合、ポリシーを使用して、そのシークレットにアクセスできるリポジトリを制限できます。 たとえば、すべてのリポジトリにアクセスを許可したり、プライベート リポジトリまたは指定したリポジトリ のリストのみにアクセスを制限したりできます。
組織レベルでシークレットを作成するには、admin アクセス権が必要です。
-
GitHub で、organization のメイン ページに移動します。
-
Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。
![組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。](/assets/cb-49309/images/help/discussions/org-settings-global-nav-update.png)
1. サイドバーの [Security] セクションで、**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-key-asterisk" aria-label="key-asterisk" role="img"><path d="M0 2.75A2.75 2.75 0 0 1 2.75 0h10.5A2.75 2.75 0 0 1 16 2.75v10.5A2.75 2.75 0 0 1 13.25 16H2.75A2.75 2.75 0 0 1 0 13.25ZM2.75 1.5c-.69 0-1.25.56-1.25 1.25v10.5c0 .69.56 1.25 1.25 1.25h10.5c.69 0 1.25-.56 1.25-1.25V2.75c0-.69-.56-1.25-1.25-1.25Z"></path><path d="M8 4a.75.75 0 0 1 .75.75V6.7l1.69-.975a.75.75 0 0 1 .75 1.3L9.5 8l1.69.976a.75.75 0 0 1-.75 1.298L8.75 9.3v1.951a.75.75 0 0 1-1.5 0V9.299l-1.69.976a.75.75 0 0 1-.75-1.3L6.5 8l-1.69-.975a.75.75 0 0 1 .75-1.3l1.69.976V4.75A.75.75 0 0 1 8 4Z"></path></svg> [Secrets and variables]** を選んでから、**[Dependabot]** をクリックします。 [プライベート レジストリ] オプションは無視します。これは既定のセットアップでのみ使用 code scanning 。 -
**[新しい組織シークレット]** をクリックします。 -
**[名前]** 入力ボックスにシークレットの名前を入力します。 -
シークレットの [値] を入力します。
-
**[リポジトリアクセス]** ドロップダウンリストから、アクセスポリシーを選びます。 -
**[選択したリポジトリ]** を選択した場合は、次のようにします。- をクリックします。
- ダイアログ ボックスで、このシークレットにアクセスできるリポジトリを選びます。
- [選択の更新] をクリックします。
-
**[シークレットの追加]** をクリックします。シークレットの名前は、 Dependabot シークレット ページに一覧表示されます。 [更新] をクリックしてシークレット値またはそのアクセスポリシーを変更できます。 [削除] をクリックしてシークレットを削除できます。
ファイアウォール IP 規則の構成
Dependabot関連の IP アドレスをレジストリ IP 許可リストに追加できます。
プライベート レジストリが IP 許可リストを使用して構成されている場合、メタ API エンドポイントのレジストリへのアクセスに使用 Dependabot IP アドレスは、 actions キーの下にあります。 詳細については、「メタデータ用 REST API エンドポイント」および「GitHub Actions ランナーの Dependabot について」を参照してください。
認証に OIDC を使用する
Dependabot では、OpenID Connect (OIDC) を使用してプライベート レジストリで認証できるため、有効期間の長い資格情報をリポジトリ シークレットとして格納する必要がなくなります。
OIDC ベースの認証では、更新ジョブは、OIDC フェデレーションを使用するワークフローと同様に、クラウド ID プロバイダーから有効期間の短い資格情報動的に取得できます。
ヒント
OIDC 認証は、 組織レベルの プライベート レジストリでも使用できます。このレジストリは、組織の設定 UI または REST API を使用して構成できます。 詳しくは、「セキュリティ機能にプライベート レジストリへのアクセスを許可する」をご覧ください。
Dependabot は、レジストリが次のいずれかのクラウド プロバイダーでホストされている場合に、 `username` および `password` 認証を使用するレジストリの種類に対して OIDC 認証をサポートします。
- AWS CodeArtifact
- Azure DevOpsアーティファクト
- JFrog Artifactory
OIDC 認証を構成するには、レジストリ構成で username と password ではなく、異なる値を指定する必要があります。
AWS CodeArtifact
AWS CodeArtifact には、 aws-region、 account-id、 role-name、 domain、 domain-ownerの値が必要です。
audience フィールドは省略可能です。
registries:
my-aws-codeartifact-feed:
type: npm-registry
url: https://MY_DOMAIN-MY-ACCOUNT_ID.d.codeartifact.REGION.amazonaws.com/npm/MY_REPOSITORY/
aws-region: REGION
account-id: '123456789012'
role-name: MY_ROLE_NAME
domain: MY_DOMAIN
domain-owner: '987654321098'
audience: MY_AUDIENCE # if required by your feed
Azure DevOpsアーティファクト
Azure DevOps Artifacts には、tenant-id と client-id の値が必要です。
registries:
my-azure-devops-artifacts-feed:
type: npm-registry
url: https://pkgs.dev.azure.com/MY-ORGANIZATION/MY-PROJECT/_packaging/MY-FEED/npm/registry/
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
client-id: ${{ secrets.AZURE_CLIENT_ID }}
JFrog Artifactory
JFrog Artifactory には、 url と jfrog-oidc-provider-nameの値が必要です。
audience値とidentity-mapping-nameは省略可能です。
registries:
my-jfrog-artifactory-feed:
type: npm-registry
url: https://JFROG-PLATFORM-URL/artifactory/api/npm/MY-REPOSITORY
jfrog-oidc-provider-name: MY-PROVIDER
audience: MY-AUDIENCE # if required by your feed
identity-mapping-name: MY-IDENTITY-MAPPING # if required by your feed
OIDC のしくみの詳細については、「 OpenID Connect」を参照してください。
外部コードの実行を許可する
1 つ以上のレジストリ Dependabot アクセス権を付与すると、侵害されたパッケージからコードを保護するために外部コードの実行が自動的に無効になります。 ただし、一部のバージョン更新プログラムに失敗する場合があります。
Dependabotにプライベート パッケージ レジストリへのアクセスを許可し、制限付きの外部コード実行を有効にする必要がある場合は、`insecure-external-code-execution`を `allow` に設定できます。 更新中に Dependabot がマニフェストで外部コードを実行することを許可することは、次のように怖いものではありません。
-
外部コードの実行は、それを囲む
updates設定に関連付けられたレジストリ内のパッケージ マネージャーにのみアクセスできます。 -
最上位の
registries構成で定義されているレジストリへのアクセスは許可されません。`bundler`、`mix`、`pip`、`swift` などのツールでは、既定で外部コードの実行が許可されているのが一般的です。
この例では、構成ファイルを使用して、Dependabotプライベート パッケージ レジストリにruby-githubアクセスできます。 同じ updates 設定で、insecure-external-code-execution が allow に設定されています。これは、依存関係によって実行されるコードは ruby-github レジストリにのみアクセスし、dockerhub レジストリにはアクセスしないことを意味します。
# Allow external code execution when updating dependencies from private registries
version: 2
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
updates:
- package-ecosystem: "bundler"
directory: "/rubygems-server"
insecure-external-code-execution: allow
registries: "*"
schedule:
interval: "monthly"
# Allow external code execution when updating dependencies from private registries
version: 2
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
updates:
- package-ecosystem: "bundler"
directory: "/rubygems-server"
insecure-external-code-execution: allow
registries: "*"
schedule:
interval: "monthly"
サポートされているプライベート レジストリ
Dependabotでサポートされているプライベート レジストリへのアクセスを構成する方法の例。
cargo-registrycomposer-repositorydocker-registrygitgoproxy-serverhex-organizationhex-repositorymaven-repositorynpm-registrynuget-feedpub-repositorypython-indexrubygems-serverterraform-registry
cargo-registry
`cargo-registry` タイプは、トークンをサポートします。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
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 プライベート レジストリに対してこの構成をテストしました。
composer-repository
`composer-repository` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
registries:
composer:
type: composer-repository
url: https://repo.packagist.com/example-company/
username: octocat
password: ${{secrets.MY_PACKAGIST_PASSWORD}}
registries:
composer:
type: composer-repository
url: https://repo.packagist.com/example-company/
username: octocat
password: ${{secrets.MY_PACKAGIST_PASSWORD}}
docker-registry
Dependabot は、OCI コンテナー レジストリ 仕様を実装する任意のコンテナー レジストリで動作します。詳細については、「 [https://github.com/opencontainers/distribution-spec/blob/main/spec.md](https://github.com/opencontainers/distribution-spec/blob/main/spec.md)」を参照してください。
Dependabot では、中央トークン サービスまたは HTTP 基本認証を介したプライベート レジストリへの認証がサポートされます。詳細については、Docker ドキュメントの [トークン認証仕様](https://docs.docker.com/registry/spec/auth/token/) と Wikipedia の [基本アクセス認証](https://en.wikipedia.org/wiki/Basic_access_authentication) を参照してください。
`docker-registry` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
registries:
dockerhub:
type: docker-registry
url: https://registry.hub.docker.com
username: octocat
password: ${{secrets.MY_DOCKERHUB_PASSWORD}}
replaces-base: true
registries:
dockerhub:
type: docker-registry
url: https://registry.hub.docker.com
username: octocat
password: ${{secrets.MY_DOCKERHUB_PASSWORD}}
replaces-base: true
`docker-registry` タイプは、静的な AWS 資格情報を使ってプライベート Amazon ECR からプルするためにも使用できます。
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}}
replaces-base: true
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}}
replaces-base: true
git
`git` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
registries:
github-octocat:
type: git
url: https://github.com
username: x-access-token
password: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
registries:
github-octocat:
type: git
url: https://github.com
username: x-access-token
password: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
goproxy-server
`goproxy-server` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
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}}
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}}
helm-registry
`helm-registry`の種類では、HTTP 基本認証のみがサポートされ、OCI 準拠のレジストリはサポートされません。 Helm チャートの OCI 準拠レジストリにアクセスする必要がある場合は、代わりに [`docker-registry`](#docker-registry) を構成します。
`helm-registry` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
registries:
helm_registry:
type: helm-registry
url: https://registry.example.com
username: octocat
password: ${{secrets.MY_REGISTRY_PASSWORD}}
registries:
helm_registry:
type: helm-registry
url: https://registry.example.com
username: octocat
password: ${{secrets.MY_REGISTRY_PASSWORD}}
hex-organization
`hex-organization` タイプは、Organization とキーをサポートします。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
registries:
github-hex-org:
type: hex-organization
organization: github
key: ${{secrets.MY_HEX_ORGANIZATION_KEY}}
registries:
github-hex-org:
type: hex-organization
organization: github
key: ${{secrets.MY_HEX_ORGANIZATION_KEY}}
hex-repository
`hex-repository` タイプでは認証キーがサポートされています。
`repo` は必須フィールドです。これは、依存関係宣言で使用されるリポジトリの名前と一致する必要があります。
`public-key-fingerprint` は省略可能な構成フィールドで、Hex リポジトリの公開キーのフィンガー プリントを表します。
`public-key-fingerprint` は、プライベート リポジトリとの信頼を確立するために Hex で使用されます。
`public-key-fingerprint` フィールドはプレーンテキストで一覧表示することも、Dependabot シークレットとして格納することもできます。
registries:
github-hex-repository:
type: hex-repository
repo: private-repo
url: https://private-repo.example.com
auth-key: ${{secrets.MY_AUTH_KEY}}
public-key-fingerprint: ${{secrets.MY_PUBLIC_KEY_FINGERPRINT}}
registries:
github-hex-repository:
type: hex-repository
repo: private-repo
url: https://private-repo.example.com
auth-key: ${{secrets.MY_AUTH_KEY}}
public-key-fingerprint: ${{secrets.MY_PUBLIC_KEY_FINGERPRINT}}
maven-repository
`maven-repository`の種類では、ユーザー名、パスワード、および replaces-base がサポートされます。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
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
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
OIDC 認証を使用して JFrog Artifactory にアクセスすることもできます。 OIDC を使用すると、Dependabot は、静的な資格情報を使用するのではなく、有効期間の短い資格情報を動的に取得します。
registries:
maven-artifactory-oidc:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-maven-registry
tenant-id: ${{secrets.ARTIFACTORY_TENANT_ID}}
client-id: ${{secrets.ARTIFACTORY_CLIENT_ID}}
replaces-base: true
registries:
maven-artifactory-oidc:
type: maven-repository
url: https://acme.jfrog.io/artifactory/my-maven-registry
tenant-id: ${{secrets.ARTIFACTORY_TENANT_ID}}
client-id: ${{secrets.ARTIFACTORY_CLIENT_ID}}
replaces-base: true
npm-registry
`npm-registry` タイプは、ユーザー名とパスワード、またはトークンをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
ユーザー名とパスワードを使用する場合、 .npmrcの認証トークンに base64 エンコードされた _passwordが含まれている場合があります。ただし、 Dependabot 構成ファイルで参照されるパスワードは、元の (エンコードされていない) パスワードである必要があります。
メモ
`npm.pkg.github.com` を使うときは、パスを含めないでください。 代わりに、パスのない `https://npm.pkg.github.com` URL を使用してください。
registries:
npm-npmjs:
type: npm-registry
url: https://registry.npmjs.org
username: octocat
password: ${{secrets.MY_NPM_PASSWORD}} # Must be an unencoded password
replaces-base: true
registries:
npm-npmjs:
type: npm-registry
url: https://registry.npmjs.org
username: octocat
password: ${{secrets.MY_NPM_PASSWORD}} # Must be an unencoded password
replaces-base: true
registries:
npm-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
replaces-base: true
registries:
npm-github:
type: npm-registry
url: https://npm.pkg.github.com
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
replaces-base: true
セキュリティ上の理由から、 Dependabot は環境変数を設定しません。 Yarn (v2 以降) では、アクセスされた環境変数が設定されている必要があります。
.yarnrc.yml ファイル内の環境変数にアクセスするときは、${ENV_VAR-fallback}や${ENV_VAR:-fallback}などのフォールバック値を指定する必要があります。 詳しくは、Yarn ドキュメントの Yarnrc ファイルを参照してください。
nuget-feed
`nuget-feed` タイプは、ユーザー名とパスワード、またはトークンをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
`nuget-feed`は、`replaces-base` パラメーターをサポートしていません。
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_NUGET_PASSWORD}}
registries:
nuget-example:
type: nuget-feed
url: https://nuget.example.com/v3/index.json
username: octocat@example.com
password: ${{secrets.MY_NUGET_PASSWORD}}
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}}
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}}
OIDC 認証を使用して、Azure DevOps Artifacts にアクセスすることもできます。 OIDC を使用すると、Dependabot は、静的な資格情報を使用するのではなく、有効期間の短い資格情報を動的に取得します。
registries:
nuget-azure-devops-oidc:
type: nuget-feed
url: https://pkgs.dev.azure.com/MyOrganization/MyProject/_packaging/MyArtifactFeedName/nuget/v3/index.json
tenant-id: ${{secrets.AZURE_TENANT_ID}}
client-id: ${{secrets.AZURE_CLIENT_ID}}
registries:
nuget-azure-devops-oidc:
type: nuget-feed
url: https://pkgs.dev.azure.com/MyOrganization/MyProject/_packaging/MyArtifactFeedName/nuget/v3/index.json
tenant-id: ${{secrets.AZURE_TENANT_ID}}
client-id: ${{secrets.AZURE_CLIENT_ID}}
`AZURE_TENANT_ID` と `AZURE_CLIENT_ID` の値は、Entra ID アプリの登録の概要ページから取得できます。
pub-repository
`pub-repository` タイプは、URL とトークンをサポートします。
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
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
python-index
`python-index` タイプは、ユーザー名とパスワード、またはトークンをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
registries:
python-example:
type: python-index
url: https://example.com/_packaging/my-feed/pypi/example
username: octocat
password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
replaces-base: true
registries:
python-example:
type: python-index
url: https://example.com/_packaging/my-feed/pypi/example
username: octocat
password: ${{secrets.MY_BASIC_AUTH_PASSWORD}}
replaces-base: true
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}}
replaces-base: true
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}}
replaces-base: true
OIDC 認証を使用して、Azure DevOps Artifacts にアクセスすることもできます。 OIDC を使用すると、Dependabot は、静的な資格情報を使用するのではなく、有効期間の短い資格情報を動的に取得します。
registries:
python-azure-oidc:
type: python-index
url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
tenant-id: ${{secrets.AZURE_TENANT_ID}}
client-id: ${{secrets.AZURE_CLIENT_ID}}
replaces-base: true
registries:
python-azure-oidc:
type: python-index
url: https://pkgs.dev.azure.com/octocat/_packaging/my-feed/pypi/example
tenant-id: ${{secrets.AZURE_TENANT_ID}}
client-id: ${{secrets.AZURE_CLIENT_ID}}
replaces-base: true
rubygems-server
`rubygems-server` タイプは、ユーザー名とパスワード、またはトークンをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。
registries:
ruby-example:
type: rubygems-server
url: https://rubygems.example.com
username: octocat@example.com
password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
replaces-base: true
registries:
ruby-example:
type: rubygems-server
url: https://rubygems.example.com
username: octocat@example.com
password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
replaces-base: true
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
replaces-base: true
registries:
ruby-github:
type: rubygems-server
url: https://rubygems.pkg.github.com/octocat/github_api
token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
replaces-base: true
terraform-registry
`terraform-registry` タイプは、トークンをサポートします。
registries:
terraform-example:
type: terraform-registry
url: https://terraform.example.com
token: ${{secrets.MY_TERRAFORM_API_TOKEN}}
registries:
terraform-example:
type: terraform-registry
url: https://terraform.example.com
token: ${{secrets.MY_TERRAFORM_API_TOKEN}}