Skip to main content

Dependabot에 대한 개인 레지스트리 액세스 구성

프라이빗 레지스트리에 저장된 종속성에 액세스하도록 구성할 Dependabot 수 있습니다. 암호 및 액세스 토큰과 같은 인증 정보를 암호화된 비밀로 저장한 다음 구성 파일에서 참조할 Dependabot 수 있습니다. 프라이빗 네트워크에 레지스트리가 있는 경우, 자체 호스팅된 실행기에서 실행 중인 Dependabot에 대한 액세스를 구성할 수도 있습니다.

누가 이 기능을 사용할 수 있나요?

쓰기 권한이 있는 사용자

프라이빗 레지스트리에 대해

          Dependabot version updates 는 종속성을 최신 상태로 유지하며 Dependabot security updates 취약한 종속성을 업데이트합니다. 
          Dependabot 는 공용 레지스트리에 액세스할 수 있습니다. 또한 Dependabot에 프라이빗 패키지 레지스트리와 프라이빗 리포지토리에 대한 액세스 권한을 부여하여, 프라이빗 및 내부 소스 종속성을 공용 종속성만큼 최신 상태로 유지하고 안전하게 보호할 수 있습니다.

대부분의 생태계에서 개인 의존성은 일반적으로 개인 패키지 레지스트리에 게시됩니다. 이러한 개인 레지스트리는 공용 레지스트리와 유사하지만, 인증 절차를 거쳐야 합니다.

특정 에코시스템의 경우 공용 레지스트리에 대한 호출을 제거하여 프라이빗 레지스트리Dependabot 액세스하도록 구성할 __ 수 있습니다. 자세한 내용은 공용 레지스트리에 대한 Dependabot 액세스 제거을(를) 참조하세요.

          비공개로 호스트되거나 내부 네트워크로 제한된 레지스트리에 대한 액세스를 허용 Dependabot 하려면 자체 호스팅 실행기에서 Dependabot 실행되도록 구성 GitHub Actions 합니다. 자세한 내용은 [AUTOTITLE](/code-security/dependabot/maintain-dependencies/managing-dependabot-on-self-hosted-runners)을 참조하세요.

프라이빗 레지스트리 구성

조직 수준에서 Dependabot의 프라이빗 레지스트리에 대한 액세스를 구성할 수 있습니다.

조직 수준 레지스트리는 토큰, 사용자 이름 및 암호 및****OIDC 인증을 지원합니다.

구성에 대한 자세한 내용은 프라이빗 레지스트리에 대한 보안 기능 액세스 부여을 참조하세요.

          `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에 대한 레지스트리의 액세스 토큰 또는 시크릿을 리포지토리 또는 조직의 비밀 저장소에 저장합니다.

          Dependabot에 대한 암호화된 비밀 정보

          Dependabot 비밀은 조직 수준 또는 리포지토리 수준에서 만드는 암호화된 자격 증명입니다.

조직 수준에서 비밀을 추가하는 경우 비밀에 액세스할 수 있는 리포지토리를 지정할 수 있습니다. 비밀을 사용하여 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"은 비밀에 대해 선택한 이름입니다. 다음은 그 예입니다.

YAML
password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}

비밀 이름 지정

비밀의 이름:Dependabot

  • 영숫자 문자([A-Z], [0-9]) 또는 밑줄(_)만 포함할 수 있습니다. 공백은 허용되지 않습니다. 소문자를 입력하면 대문자로 변경됩니다.
  • GITHUB_ 접두사로 시작하지 않아야 합니다.
  • 숫자로 시작할 수 없습니다.

          Dependabot에 대한 리포지토리 비밀을 추가하기

개인용 계정 리포지토리에 대한 비밀을 만들려면 리포지토리 소유자여야 합니다. 조직 리포지토리에 대한 비밀을 만들려면 admin 액세스 권한이 있어야 합니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 Settings를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "설정" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 사이드바의 "Security" 섹션에서 Secrets and variables를 선택하고 Dependabot 을 클릭합니다.

  4.        **새 리포지토리 비밀**을 선택합니다.
    
  5.        **이름** 입력 상자에 비밀의 이름을 입력합니다.
    
  6. 비밀 값을 입력합니다.

  7.        **비밀 추가**를 클릭합니다.
    

    비밀의 이름은 Dependabot 비밀 페이지에 나열됩니다. 업데이트를 클릭하여 비밀 값을 변경할 수 있습니다. 제거를 클릭하여 비밀을 삭제할 수 있습니다.

          Dependabot에 대한 조직의 비밀 추가

조직에서 비밀을 만들 때 정책을 사용하여 해당 비밀에 액세스할 수 있는 리포지토리를 제한할 수 있습니다. 예를 들어 모든 리포지토리에 대한 액세스 권한을 부여하거나 프라이빗 리포지토리 또는 지정된 리포지토리 목록에 대해서만 액세스를 제한할 수 있습니다.

조직 수준에서 비밀을 만들려면 admin 액세스 권한이 있어야 합니다.

  1. GitHub에서 조직의 기본 페이지로 이동합니다.

  2. 조직 이름에서 설정을 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    조직 프로필에 있는 여러 탭의 스크린샷. "설정" 탭이 진한 주황색으로 표시됩니다.

           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 만 사용됩니다.
    
  3.        **새 조직 비밀**을 클릭합니다.
    
  4.        **이름** 입력 상자에 비밀의 이름을 입력합니다.
    
  5.        **값** 필드에 비밀 값을 입력합니다.
    
  6.        **리포지토리 액세스** 드롭다운 목록에서 액세스 정책을 선택합니다.
    
  7.        **선택한 리포지토리**를 선택한 경우:
    
    • 을 클릭합니다.
    • 대화 상자에서 이 비밀 정보에 액세스할 수 있는 리포지토리를 선택하세요.
    • 선택 항목 업데이트를 클릭합니다.
  8.        **비밀 추가**를 클릭합니다.
    

    비밀의 이름이 비밀 페이지에 나열됩니다 Dependabot . 업데이트를 클릭하여 비밀 값 또는 해당 액세스 정책을 변경할 수 있습니다. 제거를 클릭하여 비밀을 삭제할 수 있습니다.

방화벽 IP 규칙 구성

레지스트리의 IP 허용 목록에 Dependabot와 관련된 IP 주소를 추가할 수 있습니다.

개인 레지스트리가 IP 허용 목록으로 구성된 경우 Dependabot 키 아래의 메타 API 엔드포인트에서 레지스트리에 액세스하는 데 사용하는 IP 주소를 찾을 수 있습니다. 자세한 내용은 메타 데이터에 대한 REST API 엔드포인트GitHub Actions 실행기의 Dependabot 정보을(를) 참조하세요.

인증에 OIDC 사용

          Dependabot 는 OIDC(OpenID Connect)를 사용하여 개인 레지스트리로 인증할 수 있으므로 수명이 긴 자격 증명을 리포지토리 비밀로 저장할 필요가 없습니다.

OIDC 기반 인증 Dependabot 을 사용하면 업데이트 작업은 OIDC 페더레이션을 사용하는 워크플로와 마찬가지로 GitHub Actions 클라우드 ID 공급자로부터 수명이 짧은 자격 증명을 동적으로 가져올 수 있습니다.

OIDC 인증은 조직 수준 프라이빗 레지스트리에도 사용할 수 있으며 조직 설정 UI 또는 REST API를 통해 구성할 수 있습니다. 자세한 내용은 프라이빗 레지스트리에 대한 보안 기능 액세스 부여을(를) 참조하세요.

          Dependabot는 레지스트리가 다음 클라우드 공급자 중 하나에서 호스팅되는 경우, `password` 및 `username` 인증을 사용하는 모든 레지스트리 유형에 대해 OIDC 인증을 지원합니다.
  • AWS CodeArtifact
  • Azure DevOps 아티팩트
  • JFrog 아티팩토리

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 아티팩트 값에는 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 아티팩토리

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 하면 손상된 패키지로부터 코드를 보호하기 위해 외부 코드 실행이 자동으로 비활성화됩니다. 하지만 모든 버전 업데이트가 항상 성공하는 것은 아닙니다.

프라이빗 패키지 레지스트리에 액세스할 수 있고 제한된 외부 코드 실행을 사용할 수 있도록 허용하려면, insecure-external-code-executionallow로 설정하면 Dependabot을(를) 사용할 수 있습니다. 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](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에서 경로를 생략하는 것이 좋습니다.

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를 대신 구성하십시오.

          `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` 유형은 조직 및 키를 지원합니다.

이 레지스트리 유형은 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`는 선택 사항인 이 필드는 저장소 공개 키의 16진수 지문을 나타냅니다. 
          `public-key-fingerprint`는 16진수 형식으로 프라이빗 리포지토리와의 신뢰 관계를 설정하는 데 사용됩니다. 
          `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를 포함할 수 있습니다. 하지만 구성 파일에서 참조된 암호는 원래 형태인(인코딩되지 않은) 암호여야 합니다.

참고

          `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 아티팩트에도 액세스할 수 있습니다. 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 아티팩트에도 액세스할 수 있습니다. 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}}