Skip to main content

Dependabot のプライベート レジストリへのアクセスの構成

プライベート レジストリに格納されている依存関係にアクセスするように Dependabot を構成できます。 パスワードやアクセス トークンなどの認証情報を暗号化されたシークレットとして格納し、これらを Dependabot 構成ファイルで参照できます。

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

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

プライベート レジストリについて

Dependabot version updates を使うと依存関係を最新の状態に保ち、Dependabot security updates を使うと脆弱な依存関係を更新することができます。 Dependabot からパブリック リポジトリにアクセスできます。 さらに、プライベート パッケージ レジストリとプライベート GitHub リポジトリへのアクセス権を Dependabotに付与して、プライベートと内部ソースの依存関係をパブリック依存関係として最新の状態に保つことができます。

ほとんどのエコシステムでは、プライベート依存関係は通常、プライベート パッケージ レジストリに発行されます。 これらのプライベート レジストリはパブリックに相当するものに似ていますが、認証が必要です。

特定のエコシステムでは、パブリック レジストリへの呼び出しを削除することで、プライベート レジストリ_にのみ_アクセスするように Dependabot を構成することができます。 詳しくは、「パブリック レジストリへの Dependabot アクセスの削除」をご覧ください。

プライベート レジストリの構成

これらの手順に従ってください:

Organization レベルでプライベート レジストリにアクセスするように Dependabot のアクセスを構成できます。 それを構成する方法について詳しくは、「セキュリティ機能にプライベート レジストリへのアクセスを許可する」をご覧ください。

          `dependabot.yml` ファイルでプライベート レジストリへの Dependabot のアクセスを構成することもできます。

最上位の 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"

以下のオプションを使用して、アクセス設定を指定します。 レジストリの設定には、typeurl、そして通常は usernamepassword の組み合わせまたは token を含める必要があります。

パラメーターパーパス
REGISTRY_NAME必須: レジストリの識別子を定義します。
type必須: レジストリの種類を特定します。
認証の詳細必須: 認証の詳細を指定するためにサポートされるパラメーターは、レジストリの種類によって異なります。
url必須: このレジストリ内の依存関係にアクセスするために使う URL。 プロトコルはオプションです。 指定しないと、https:// が想定されます。 Dependabot が必要に応じて末尾のスラッシュを追加または無視します。
replaces-baseブール値が true、Dependabot により、そのエコシステムのベース URL ではなく、指定した url を使って依存関係が解決されます。

使用可能な構成オプション、サポートされている種類について詳しくは、「Dependabot オプション リファレンス」を参照してください。

Dependabot で使用する資格情報の格納

GitHub でサポートされているプライベート レジストリへのアクセス権を Dependabot に付与するには、レジストリのアクセス トークンまたはシークレットをリポジトリまたは Organization のシークレット ストアに格納します。

Dependabot に対する暗号化されたシークレットについて

Dependabot シークレットとは、Organization レベルまたはリポジトリレベルで作成する、暗号化された資格情報のことです。 シークレットを Organization レベルで追加した場合、そのシークレットにどのリポジトリがアクセスできるかを指定できます。 シークレットを使用して、プライベートパッケージレジストリにある依存関係を Dependabot が更新できるようにすることができます。 シークレットを追加すると、それが GitHub に届く前に暗号化され、それを Dependabot によりプライベート パッケージ レジストリにアクセスするために使用されるまで暗号化されたままとなります。

Dependabot シークレットには、Dependabot pull request によってトリガーされる GitHub Actions ワークフローで使用されるシークレットも含まれます。 Dependabot 自体では、これらのシークレットが使用されない場合がありますが、ワークフローでは必要です。 詳しくは、「GitHub Actions の Dependabot のトラブルシューティング」をご覧ください。

Dependabot シークレットを追加後は、dependabot.yml 構成ファイルで次のように参照できます: ${{secrets.NAME}} (「NAME」は、シークレットに付けた名前です)。 例えば次が挙げられます。

YAML
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}

シークレットに名前を付ける

Dependabot シークレットの名前には、以下の制限があります。

  • 英数字 ([A-Z][0-9]) またはアンダースコア (_) のみを含めることができます。 スペースは使用できません。 小文字を入力すると、大文字に変換されます。
  •         `GITHUB_` プレフィックスで始めることはできません。
    
  • 最初を数字にすることはできません。

Dependabot にリポジトリシークレットを追加する

データ 再利用可能なリポジトリの権限ステートメント-シークレットリポジトリ %}

  1. GitHub で、リポジトリのメイン ページに移動します。1. リポジトリ名の下にある [Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。
    1. サイドバーの [Security] セクションで、 [Secrets and variables] を選んでから、[Dependabot] をクリックします。

  2.        **[新しいリポジトリ シークレット]** をクリックします。
    
  3.        **[名前]** 入力ボックスにシークレットの名前を入力します。
    
  4. シークレットの値を入力します。

  5.        **[シークレットの追加]** をクリックします。
    

    シークレットの名前が、Dependabot シークレットのページに一覧表示されます。 [更新] をクリックしてシークレットの値を変更できます。 [削除] をクリックしてシークレットを削除できます。

Dependabot に Organization シークレットを追加する

Organizationでシークレットを作成する場合、ポリシーを使用して、そのシークレットにアクセスできるリポジトリを制限できます。 たとえば、すべてのリポジトリにアクセスを許可したり、プライベート リポジトリまたは指定したリポジトリ のリストのみにアクセスを制限したりできます。

組織レベルでシークレットを作成するには、admin アクセス権が必要です。

  1. GitHub で、organization のメイン ページに移動します。

  2. Organization 名の下で、[ Settings] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの [Security] セクションで、 [Secrets and variables] を選んでから、[Dependabot] をクリックします。 [Private Registries] オプションは無視します。これは、code scanning の既定の設定でのみ使われます。

  4.        **[新しい組織シークレット]** をクリックします。
    
  5.        **[名前]** 入力ボックスにシークレットの名前を入力します。
    
  6. シークレットの [値] を入力します。

  7.        **[リポジトリアクセス]** ドロップダウンリストから、アクセスポリシーを選びます。
    
  8.        **[選択したリポジトリ]** を選択した場合は、次のようにします。
    
    • をクリックします。
    • ダイアログ ボックスで、このシークレットにアクセスできるリポジトリを選びます。
    •      **[選択の更新]** をクリックします。
      
  9.        **[シークレットの追加]** をクリックします。
    

    シークレットの名前が、Dependabotシークレットのページに一覧表示されます。 [更新] をクリックしてシークレット値またはそのアクセスポリシーを変更できます。 [削除] をクリックしてシークレットを削除できます。

認証に OIDC を使用する

Dependabot では、OpenID Connect (OIDC) を使用してプライベート レジストリで認証できるため、有効期間の長い資格情報をリポジトリ シークレットとして格納する必要がなくなります。

OIDC ベースの認証では、Dependabot 更新ジョブは、OIDC フェデレーションを使用する GitHub Actions ワークフローと同様に、クラウド ID プロバイダーから有効期間の短い資格情報を動的に取得できます。

Dependabot では、レジストリが次のいずれかのクラウド プロバイダーでホストされている場合、 username および password 認証を使用するレジストリの種類に対する OIDC 認証がサポートされます。

  • AWS CodeArtifact
  • Azure DevOps Artifacts
  • JFrog Artifactory

OIDC 認証を構成するには、レジストリ構成で usernamepassword ではなく、異なる値を指定する必要があります。

AWS CodeArtifact

AWS CodeArtifact には、 aws-regionaccount-idrole-namedomaindomain-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 Artifacts

Azure DevOps Artifacts には、 tenant-idclient-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 には、 urljfrog-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」を参照してください。

外部コードの実行を許可する

Dependabot に 1 つ以上のレジストリへのアクセスを許可すると、侵害されたパッケージからコードを保護するために、外部コードの実行は自動的に無効になります。 ただし、一部のバージョン更新プログラムに失敗する場合があります。

Dependabot にプライベート パッケージ レジストリへのアクセスを許可し、外部コードの実行を制限する必要がある場合は、insecure-external-code-executionallow に設定できます。 更新中に Dependabot にマニフェスト内の外部コードを実行できるようにすることは、それほど恐ろしいことではありません。

  • 外部コードの実行は、それを囲む updates 設定に関連付けられたレジストリ内のパッケージ マネージャーにのみアクセスできます。

  • 最上位の registries 構成で定義されているレジストリへのアクセスは許可されません。

            `bundler`、`mix`、`pip`、`swift` などのツールでは、既定で外部コードの実行が許可されているのが一般的です。
    

この例では、構成ファイルで、Dependabot が ruby-github プライベート パッケージ レジストリにアクセスするのを許可します。 同じ updates 設定で、insecure-external-code-executionallow に設定されています。これは、依存関係によって実行されるコードは ruby-github レジストリにのみアクセスし、dockerhub レジストリにはアクセスしないことを意味します。

YAML
# 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-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 からパスを省略することをお勧めします。

YAML
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」を参照してください。 Dependabot では、中央トークン サービスまたは HTTP 基本認証を介したプライベート レジストリへの認証がサポートされています。詳しくは、Docker ドキュメントのトークン認証仕様と Wikipedia の基本アクセス認証に関するページを参照してください。

          `docker-registry` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。

このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。

YAML
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 からプルするためにも使用できます。
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}}
    replaces-base: true

git

          `git` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。
YAML
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 からパスを省略することをお勧めします。

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}}

helm-registry

          `helm-registry`の種類では、HTTP 基本認証のみがサポートされ、OCI 準拠のレジストリはサポートされません。 Helm チャートの OCI 準拠レジストリにアクセスする必要がある場合は、代わりに [`docker-registry`](#docker-registry) を構成します。

          `helm-registry` タイプは、ユーザー名とパスワードをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。

このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。

YAML
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 からパスを省略することをお勧めします。

YAML
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 シークレットとして格納することもできます。
YAML
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 からパスを省略することをお勧めします。

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

OIDC 認証を使用して JFrog Artifactory にアクセスすることもできます。 OIDC を使用すると、Dependabot は、静的な資格情報を使用するのではなく、有効期間の短い資格情報を動的に取得します。

YAML
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 を使用してください。
YAML
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
YAML
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` パラメーターをサポートしていません。
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}}

OIDC 認証を使用して Azure DevOps Artifacts にアクセスすることもできます。 OIDC を使用すると、Dependabot は、静的な資格情報を使用するのではなく、有効期間の短い資格情報を動的に取得します。

YAML
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 とトークンをサポートします。
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

python-index

          `python-index` タイプは、ユーザー名とパスワード、またはトークンをサポートします。 アカウントが GitHub アカウントの場合は、パスワードの代わりに GitHub personal access token を使用できます。

このレジストリの種類は、url オプションで指定されたパスのプレフィックスと一致します。 つまり、同じホストに複数の資格情報を指定でき、これを使用して異なるパスにアクセスできます。 ただし、同じホストに複数のレジストリがない場合は、レジストリへのすべてのパスが資格情報を受け取るように、url からパスを省略することをお勧めします。

YAML
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
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}}
    replaces-base: true

OIDC 認証を使用して Azure DevOps Artifacts にアクセスすることもできます。 OIDC を使用すると、Dependabot は、静的な資格情報を使用するのではなく、有効期間の短い資格情報を動的に取得します。

YAML
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 からパスを省略することをお勧めします。

YAML
registries:
  ruby-example:
    type: rubygems-server
    url: https://rubygems.example.com
    username: octocat@example.com
    password: ${{secrets.MY_RUBYGEMS_PASSWORD}}
    replaces-base: true
YAML
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` タイプは、トークンをサポートします。
YAML
registries:
  terraform-example:
    type: terraform-registry
    url: https://terraform.example.com
    token: ${{secrets.MY_TERRAFORM_API_TOKEN}}