Skip to main content

Dependabot의 개인 레지스트리 구성에 대한 지침

이 문서에서는 개인 레지스트리 구성에 대한 자세한 정보와 더불어, 명령줄에서 패키지 관리자를 로컬로 구성하는 데 사용할 수 있는 명령어를 제공합니다.

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

쓰기 권한이 있는 사용자

이 문서에는 다음과 함께 프라이빗 레지스트리에 액세스하도록 구성하는 Dependabot 데 도움이 되는 권장 사항 및 조언이 포함되어 있습니다.

  • 각 패키지 관리자별 dependabot.yml 구성 파일의 자세한 스니펫
  • 중요한 제한 사항 또는 주의 사항
  • 구성이 작동하는지 테스트하는 방법을 설명하는 단계
  • 적절한 경우 추가 구성 옵션(예: npm에 설정해야 하는 구성 파일이 있는 경우)
  • 레지스트리 호스트 구성에 대한 조언

다음 패키지 관리자 설정에 대한 자세한 안내는 다음에서 확인할 수 있습니다.

다음 레지스트리 호스트 설정에 대한 권장 사항도 확인해 보시기 바랍니다.

개인 레지스트리 및 내부 네트워크 리소스에 대한 Dependabot의 액세스를 보다 효과적으로 제어하려면 Dependabot이(가) GitHub Actions 자체 호스트형 실행기에서 실행되도록 구성할 수 있습니다. 자세한 내용은 GitHub Actions 실행기에서 Dependabot자체 호스팅 러너에서 Dependabot 구성을(를) 참조하세요.

패키지 관리자 구성

Bun

Bun은 npm과 동일한 구성 지침을 따릅니다. .npmrc 필수 파일은 아니지만, 사용자 정의 설정을 위해 제공할 수 있습니다. 자세한 단계는 npm을 참조하세요.

Bundler (번들러)

Artifactory, Artifacts, Cloudsmith, Registry, GitHub Packages Nexus 및 ProGet에서 지원됩니다.

사용자 이름과 비밀번호, 또는 토큰을 사용하여 인증할 수 있습니다. 자세한 내용은 rubygems-server에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

사용자 이름 및 암호를 사용하는 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}}

Notes

GitHub 리포지토리에서 직접 제공된 종속성은 Dependabot UI를 통해 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. Dependabot이 프라이빗 GitHub 종속성에 액세스하도록 허용하는 방법에 대한 자세한 내용은 Dependabot에서 프라이빗 종속성에 액세스하도록 허용을 참조하세요.

화물

Cargo는 사용자 이름, 비밀번호는 물론 토큰 기반 인증까지 지원합니다. 자세한 내용은 cargo-registry에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

아래 코드 조각은 토큰을 사용하는 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-registry에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

사용자 이름 및 암호를 사용하는 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}}

Notes

Dependabot 는 OCI(Open Container Initiative) 배포 사양을 구현하는 모든 컨테이너 레지스트리에서 작동합니다. 자세한 내용은 https://github.com/opencontainers/distribution-spec/blob/main/spec.md를 참조하세요.

Dependabot 는 중앙 토큰 서비스 또는 HTTP 기본 인증을 통해 프라이빗 레지스트리에 대한 인증을 지원합니다. 자세한 내용은 Docker 설명서의 토큰 인증 사양 및 Wikipedia 의 기본 액세스 인증 을 참조하세요.

제한 사항 및 해결 방법

  • 이미지 이름이 컨테이너 파일, 조타 장치 파일 또는 YAML 파일에서 항상 감지되지 않을 수 있습니다.
  • 도커 파일에서는 첫 번째 FROM 지시문의 버전만 업데이트할 수 있습니다.
  • 도커 파일은 ARG 지시문으로 지정된 이미지의 업데이트 사항을 반영하지 않습니다. COPY 지시문에서 활용 가능한 해결책이 있습니다. 자세한 내용은 dependabot/dependabot-core 리포지토리의 DependabotCOPY Dockerfile 문에서 이미지 참조를 무시함을 참조하세요.
  • Dependabot 는 다단계 Docker 빌드를 지원하지 않습니다. 자세한 내용은 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}}

Notes

이 형식은 helm-registry HTTP 기본 인증만 지원하며 OCI 규격 레지스트리를 지원하지 않습니다. Helm 차트에 대한 OCI 규격 레지스트리에 액세스해야 하는 경우 docker-registry를 대신 구성하십시오. 기본 인증에 대한 자세한 내용은 Wikipedia의 기본 액세스 인증 을 참조하세요.

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에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

이 형식은 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"

Notes

특히 일부 종속성이 빌드 시간 종속성인 경우 종속성 그래프 표시되는 모든 종속성이 표시되지 않을 수 있습니다. 종속성 제출 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 툴체인이 프록시 서버에 액세스하는 방식을 선택적으로 구성할 수도 있습니다. 이 파일을 사용하면 GOPROXY, GOPRIVATE, GONOSUMDB, GOSUMDB와 같은 환경 변수를 설정하여 Go 모듈이 확인되는 방식을 제어할 수 있습니다.

Text
GOPROXY=https://acme.jfrog.io/artifactory/api/go/my-repo
GOPRIVATE=my-company.com/*
GONOSUMDB=my-company.com/*

Notes

이 기능을 사용하면 단일 Dependabot 워크플로 내에서 퍼블릭 및 프라이빗 Go 모듈 모두에 대한 통합 종속성 관리를 사용할 수 있으므로 JFrog Artifactory 또는 Nexus와 같은 회사 아티팩트 관리 시스템을 사용하는 조직에 적합합니다.

모든 모듈을 제공하는 프라이빗 프록시: 모든 모듈 요청은 프록시를 통해 먼저 처리됩니다. 퍼블릭 모듈 가져오기에 실패하면 프록시가 404/410을 반환하며 Go는 VCS(버전 제어 시스템)에 직접 액세스합니다. JFrog Artifactory와 같은 프라이빗 리포지토리에만 게시된 프라이빗 모듈의 경우, 프록시를 통해서만 액세스할 수 있으므로 VCS 대체가 작동하지 않습니다.

프라이빗 모듈을 제공하는 프라이빗 프록시: 리포지토리 루트에 go.env 파일을 추가하고, 프라이빗 모듈 패턴에 맞춰 GONOSUMDB를 설정하세요.(예: my-company.com/으로 시작하는 모든 프라이빗 모듈의 경우 GONOSUMDB=my-company.com/*). 이렇게 하면 퍼블릭 체크섬 데이터베이스에 해당 프라이빗 모듈이 없으므로 프라이빗 모듈의 퍼블릭 체크섬 유효성 검사가 비활성화됩니다.

프라이빗 모듈에 직접 액세스: 프록시를 거치지 않고 VCS에서 바로 가져오려면 GOPRIVATE=my-company.com/* 을 설정하세요. 이 설정은 프라이빗 모듈이 소스 제어에서 의미 체계 버전 태그와 함께 올바르게 게시된 경우에만 작동합니다.

GitHub 리포지토리에서 직접 제공된 종속성은 Dependabot UI를 통해 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. Dependabot이 프라이빗 GitHub 종속성에 액세스하도록 허용하는 방법에 대한 자세한 내용은 Dependabot에서 프라이빗 종속성에 액세스하도록 허용을 참조하세요.

Maven

Maven은 사용자 이름, 암호 및 replaces-base를 지원합니다. 자세한 내용은 maven-repository에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

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"

Notes

특히 일부 종속성이 빌드 시간 종속성인 경우 종속성 그래프 표시되는 모든 종속성이 표시되지 않을 수 있습니다. 종속성 제출 API을(를) 사용하여 GitHub에 다른 종속성에 대해 알리고 해당 종속성에 대한 보안 업데이트를 받을 수 있습니다. 자세한 내용은 종속성 제출 API 사용을(를) 참조하세요.

npm

dependabot.yml 파일에서 npm-registry 유형을 사용하여 구성을 정의하거나, Dependabot를 구성하여 모든 레지스트리 요청을 지정된 기본 URL을 통해 보내도록 할 수 있습니다.

구성 파일에서 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>

대신, 다음 명령어를 사용하여 개인 레지스트리 URL을 기존 .npmrc 파일에 추가할 수 있습니다.

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을 사용하는 경우 개인 레지스트리 URL을 사용하기 위해 잠금 파일을 다시 생성하려면 npm install 를 로컬에서 실행해야 합니다. Dependabot 는 업데이트를 제공할 때 동일한 URL을 사용합니다.

레지스트리가 구성되었다면, npm login 을 실행해서 구성이 올바르고 유효한지 확인하는 방법도 있습니다. 다시 npm install을 실행해서 새로운 프라이빗 레지스트리를 사용하도록 잠금 파일을 재생성할 수도 있습니다.

프로젝트 .npmrc 과 동일한 디렉터리에 package.json 파일을 체크인할 때, 파일 내에 환경 변수나 비밀 정보가 없는지 확인하는 과정이 필요합니다. 모노레포 환경에서는 .npmrc 파일이 프로젝트의 루트 디렉터리에 있어야 합니다.

지정된 기본 URL을 통해 레지스트리 요청을 보내도록 구성 Dependabot

지정된 기본 URL을 통해 모든 레지스트리 요청을 보내도록 구성할 Dependabot 수 있습니다. 공용 종속성에 액세스하려면 Dependabot 레지스트리에 요청된 버전으로 종속성의 복제된 복사본이 있거나 종속성을 사용할 수 없는 경우 공용 레지스트리에서 트래픽을 페치하도록 허용해야 합니다.

.npmrc 파일에 정의된 글로벌 레지스트리가 없는 경우 replaces-base 파일에서 true과 같이 dependabot.yml를 설정할 수 있습니다. 자세한 내용은 replaces-base의 "registries"을 참조하세요.

Notes

GitHub 리포지토리에서 직접 제공된 종속성은 Dependabot UI를 통해 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. Dependabot이 프라이빗 GitHub 종속성에 액세스하도록 허용하는 방법에 대한 자세한 내용은 Dependabot에서 프라이빗 종속성에 액세스하도록 허용을 참조하세요.

스코프가 지정된 종속성(@my-org/my-dep)의 경우, Dependabot에서는 프라이빗 레지스트리가 프로젝트의 .npmrc 파일에 정의되어 있어야 합니다. 개별 범위에 대한 개인 레지스트리를 정의하려면, @myscope:registry=https://private_registry_url을 사용하세요.

레지스트리 구성 시에는 https 프로토콜을 사용해야 합니다.

누겟

Artifactory, Artifacts, Cloudsmith, Registry, GitHub Packages Nexus 및 ProGet에서 지원됩니다.

nuget-feed 유형은 사용자 이름 및 암호 또는 토큰을 지원합니다. 자세한 내용은 nuget-feed에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

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

Notes

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

술집

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

Notes

GitHub 리포지토리에서 직접 제공된 종속성은 Dependabot UI를 통해 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. Dependabot이 프라이빗 GitHub 종속성에 액세스하도록 허용하는 방법에 대한 자세한 내용은 Dependabot에서 프라이빗 종속성에 액세스하도록 허용을 참조하세요.

Pub은 URL과 토큰 인증을 모두 지원합니다. 레지스트리에 사용되는 URL은 반드시 pub 호스팅 URL과 같아야 합니다. 자세한 내용은 Hosted Pub 리포지토리 버전 2 리포지토리의 github/dart-lang/pub를 참조하세요.

Dependabot 는 기본 패키지 레지스트리에 대한 재정의를 지원하지 않습니다. 재정의와 일부 사용자가 재정의를 구현할 수 있는 이유에 대해 더 자세히 알아보려면 다트 설명서의 기본 패키지 리포지토리 재정의 섹션을 참조하세요.

파이썬

Artifactory, Azure Artifacts, Cloudsmith, Nexus 및 ProGet에서 지원됩니다. 레지스트리는 GitHub Packages 지원되지 않습니다.

python-index 유형은 사용자 이름 및 암호 또는 토큰을 지원합니다. 자세한 내용은 python-index에서 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

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

Notes

GitHub 리포지토리에서 직접 제공된 종속성은 Dependabot UI를 통해 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. Dependabot이 프라이빗 GitHub 종속성에 액세스하도록 허용하는 방법에 대한 자세한 내용은 Dependabot에서 프라이빗 종속성에 액세스하도록 허용을 참조하세요.

url에는 URL, 조직, ‘피드’ 또는 리포지토리를 포함해야 합니다.

uv

uv 레지스트리는 python 인덱스의 구성과 유사한 구성을 사용합니다. 자세한 내용은 "python-index" 의 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

Yarn 레지스트리는 npm 레지스트리와 구성이 거의 같습니다. 자세한 내용은 "npm-registry" 의 Dependabot에 대한 개인 레지스트리 액세스 구성를 참조하세요.

YAML
registries:
  yarn-github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
  • 프라이빗 레지스트리의 경우, Yarn 3에서는 .yarnrc.yml 파일, Yarn 클래식에서는 .yarnrc 파일에 체크인합니다.
  • yarn 구성 파일에는 환경 변수를 포함하지 않아야 합니다.
  • dependabot.yml를 사용하여 https 파일에 명시된 개인 레지스트리를 구성해야 합니다.

Yarn 클래식

dependabot.yml 프라이빗 레지스트리 구성을 파일에 지정하거나, 표준 패키지 관리자 지침에 따라 Yarn Classic을 설정할 수 있습니다.

dependabot.yml 파일에서 프라이빗 레지스트리 구성 정의

dependabot.yml 파일에서 프라이빗 레지스트리 구성을 정의할 수 있습니다. 자세한 내용은 상위 레벨registries를 참조하세요.

프라이빗 레지스트리가 프로젝트 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 파일에서 프라이빗 레지스트리 구성을 정의합니다.

  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를 참조하세요.

프로젝트의 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 설명서의 "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를 참조하세요.

Notes

GitHub 리포지토리에서 직접 제공된 종속성은 Dependabot UI를 통해 GitHub 리포지토리에 대한 액세스 권한을 부여합니다. Dependabot이 프라이빗 GitHub 종속성에 액세스하도록 허용하는 방법에 대한 자세한 내용은 Dependabot에서 프라이빗 종속성에 액세스하도록 허용을 참조하세요.

범위가 지정된 종속성(@my-org/my-dep) Dependabot 의 경우 프라이빗 레지스트리가 프로젝트의 .yarnrc file.에 정의되어 있어야 합니다. 개별 범위에 대한 개인 레지스트리를 정의하려면, @myscope:registry" "https://private_registry_url"을 사용하세요.

프라이빗 레지스트리 호스트 구성

Artifactory

아티팩토리의 구성에 대한 더 자세한 내용은 JFrog Artifactory 설명서에서 아티팩토리 구성 섹션을 참조하세요.

원격 리포지토리

원격 리포지토리는 빌드 아티팩트와 종속성을 캐시하는 역할을 합니다. 빌드 도구는 아티팩트 캐시를 사용하여 글로벌 종속성 리포지토리에 연결할 필요가 없으므로 빌드 시간을 단축할 수 있습니다. 자세한 내용은 JFrog Artifactory 설명서의 원격 리포지토리를 참조하세요.

replace-base 설정을 사용하는 경우, 프라이빗 레지스트리에서 종속성을 찾을 수 없을 때마다 Dependabot이(가) 다른 레지스트리에 액세스하도록 하려면 Artifactory용 원격 리포지토리도 구성해야 합니다.

가상 레지스트리

가상 레지스트리를 통해 단일 도메인에서 개인 종속성 및 공용 종속성을 모두 그룹화하는 것이 가능합니다. 자세한 내용은 JFrog Artifactory 설명서의 npm 레지스트리를 참조하세요.

Azure Artifacts

Azure Artifacts에 대한 정보와 Dependabot를 Azure Artifacts와 함께 작동하도록 구성하는 방법은 각각 Azure Artifacts 설명서의 Azure DevOpsUse Dependabot in GitHub with Azure Artifacts를 참조하세요.

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에 대한 정보 및 Cloudsmith를 사용하도록 구성하는 Dependabot 방법에 대한 지침은 Cloudsmith 시작 및 Cloudsmith 설명서의 Cloudsmith와 통합 GitHubDependabot 을 참조하세요.

GitHub Packages 레지스트리

레지스트리에 대한 GitHub Packages 자세한 내용은 GitHub 패키지 레지스트리 작업을 참조하세요. 다음 레지스트리 구성 방법에 대한 설명 페이지는 이 문서를 통해 액세스할 수 있습니다.

  • 번들러 (rubygems)
  • Docker (컨테이너)
  • GitHub Actions
  • Gradle
  • Maven
  • Npm
  • 누겟
YAML
registries:
  github:
    type: npm-registry
    url: https://npm.pkg.github.com
    token: ${{ secrets.<token> }}

Notes

Python 컨테이너 레지스트리가 존재하지 않습니다.

특정 조직으로 범위가 지정된 프라이빗 레지스트리의 경우, Dependabot에서는 URL에 dependabot.yml 파일의 조직 이름이 포함되기를 기대합니다.

Nexus

Nexus의 구성에 대한 자세한 내용은 Sonatype 설명서의 리포지토리 관리자 3을 참조하세요.

Notes

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를 허용 목록에 추가해야 합니다.

  • 메타 API 엔드포인트의 dependabot 키 아래에서 Dependabot가 레지스트리에 액세스하는 데 사용하는 IP 주소를 찾을 수 있습니다. 자세한 내용은 메타 데이터에 대한 REST API 엔드포인트을(를) 참조하세요.
  • 현재 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}}

Notes

token 는 패키지를 볼 수 있는 액세스 권한이 있는 API 키여야 합니다. 자세한 내용은 ProGet 설명서의 API 액세스 및 API 키 를 참조하세요.

로그를 확인 Dependabot 하여 프라이빗 레지스트리에 성공적으로 액세스했는지 확인할 수 있습니다.