Skip to main content

이 버전의 GitHub Enterprise는 다음 날짜에 중단되었습니다. 2024-09-25. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 더 뛰어난 성능, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise Server로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

dependentabot.yml 파일 구성 옵션

Dependabot이(가) 리포지토리를 유지 관리하는 방법을 사용자 지정하는 데 사용할 수 있는 모든 옵션에 대한 자세한 정보입니다.

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

People with write permissions to a repository can configure Dependabot for the repository.

참고: 사이트 관리자가 먼저 GitHub Enterprise Server 인스턴스의 Dependabot updates을(를) 설정해야 이 기능을 사용할 수 있습니다. 자세한 내용은 "엔터프라이즈에 Dependabot 사용"을(를) 참조하세요.

엔터프라이즈 소유자가 엔터프라이즈 수준에서 정책을 설정한 경우 Dependabot updates을(를) 사용하거나 사용하지 않도록 설정할 수 없습니다. 자세한 내용은 "엔터프라이즈에 대한 코드 보안 및 분석을 위한 정책 적용"을(를) 참조하세요.

dependabot.yml 파일 정보

Dependabot 구성 파일인 dependabot.yml은 YAML 구문을 사용합니다. YAML을 처음 사용하며 자세히 알아보려는 경우 “5분 안에 YAML 알아보기”를 참조하세요.

해당 파일을 리포지토리의 .github 디렉터리에 기본 분기로 저장해야 합니다. dependabot.yml 파일을 추가하거나 업데이트하면 버전 업데이트 즉시 확인이 트리거됩니다. 자세한 내용과 예제는 "Dependabot 버전 업데이트 구성"을(를) 참조하세요.

보안 업데이트에도 영향을 주는 옵션은 다음에 보안 경고로 보안 업데이트 끌어오기 요청이 트리거될 때 사용됩니다. 자세한 정보는 "Dependabot 보안 업데이트 구성." 항목을 참조하세요.

참고: Dependabot alerts을(를) dependabot.yml 파일로 구성할 수 없습니다.

dependabot.yml 파일에는 두 개의 필수 최상위 키인 versionupdates가 있습니다. 필요에 따라 최상위 registries 키를 포함할 수 있습니다. 파일은 version: 2로 시작해야 합니다.

dependabot.yml 파일의 실제 예제는 Dependabot의 자체 구성 파일을 참조하세요.

dependabot.yml 파일의 구성 옵션

최상위 updates 키는 필수입니다. 이 키를 사용하여 Dependabot이(가) 버전 또는 프로젝트 종속성을 업데이트하는 방법을 구성합니다. 각 항목은 특정 패키지 관리자에 대한 업데이트 설정을 구성합니다. 사용할 수 있는 옵션은 다음과 같습니다.

옵션필수보안 업데이트버전 업데이트설명
package-ecosystem사용할 패키지 관리자
directory패키지 매니페스트 위치
schedule.interval업데이트 확인 빈도
allow허용되는 업데이트를 사용자 지정합니다.
assignees끌어오기 요청에 설정할 담당자입니다.
commit-message커밋 메시지 기본 설정입니다.
enable-beta-ecosystems베타 수준 지원이 있는 에코시스템 활성화
ignoreignore를 참조하세요.ignore를 참조하세요.특정 종속성 또는 버전을 무시합니다.
insecure-external-code-execution매니페스트 파일의 코드 실행을 허용하거나 거부합니다.
labels끌어오기 요청에 설정할 레이블입니다.
milestone끌어오기 요청에 설정할 마일스톤입니다.
open-pull-requests-limit버전 업데이트를 위해 열린 끌어오기 요청 수를 제한합니다.
pull-request-branch-name.separator끌어오기 요청 분기 이름의 구분 기호를 변경합니다.
rebase-strategy자동 다시 지정을 사용하지 않도록 설정합니다.
registriesDependabot이 액세스할 수 있는 프라이빗 레지스트리입니다.
reviewers끌어오기 요청에 설정할 검토자입니다.
schedule.day업데이트를 확인하는 요일입니다.
schedule.time업데이트를 확인하는 하루 중 시간(hh:mm)입니다.
schedule.timezone하루 중 시간의 표준 시간대(영역 식별자)입니다.
target-branch끌어오기 요청을 만들 분기입니다.
vendor벤더링된 종속성 또는 캐시된 종속성을 업데이트합니다.
versioning-strategy매니페스트 버전 요구 사항을 업데이트하는 방법입니다.
옵션은 광범위하게 다음 범주로 분류됩니다.

또한 open-pull-requests-limit 옵션은 Dependabot이(가) 버전 업데이트를 위해 열 수 있는 최대 끌어오기 요청 수를 변경합니다.

참고: 일부 구성 옵션은 취약한 패키지 매니페스트의 보안 업데이트에 대해 발생한 끌어오기 요청에도 영향을 줄 수 있습니다.

보안 업데이트는 기본 분기의 취약한 패키지 매니페스트에 대해서만 발생합니다. 구성 옵션이 동일한 분기에 대해 설정되고(target-branch를 사용하지 않는 한 true) 취약한 매니페스트의 package-ecosystemdirectory를 지정하면 보안 업데이트를 위한 끌어오기 요청이 관련 옵션을 사용합니다.

일반적으로 보안 업데이트는 끌어오기 요청에 영향을 주는 구성 옵션(예: 메타데이터 추가 또는 끌어오기 요청의 동작 변경)을 사용합니다. 보안 업데이트에 대한 자세한 내용은 "Dependabot 보안 업데이트 구성."을 참조하세요.

package-ecosystem

필수입니다. Dependabot에서 새 버전을 모니터링할 각 패키지 관리자에 대해 package-ecosystem 요소를 하나씩 추가합니다. 리포지토리에 각 패키지 관리자의 종속성 매니페스트 또는 잠금 파일도 포함되어야 합니다.

벤더링을 지원하는 패키지 관리자에서 벤더링을 사용하도록 설정하려는 경우 벤더링된 종속성이 필수 디렉터리에 있어야 합니다. 자세한 내용은 아래의 vendor을 참조하십시오.

버전 업데이트를 수행할 때 Dependabot이(가) 프라이빗 패킷 레지스트리에 액세스하도록 허용하려면 구성 파일에 registries 설정을 포함하면 됩니다. 자세한 내용은 아래 registries를 참조하세요.

참고: 엔터프라이즈 소유자는 Dependabot 작업의 최신 버전을 다운로드하여 최상의 에코시스템 범위를 얻을 수 있습니다. 작업에 대한 자세한 내용과 최신 버전을 다운로드하는 방법에 대한 지침은 "최신 버전의 공식 번들 작업 사용"을 참조하세요.

패키지 관리자YAML 값지원되는 버전버전 업데이트보안 업데이트프라이빗 리포지토리프라이빗 레지스트리벤더링
Bundlerbundlerv1, v2
Cargocargov1 (Git only)
작성기composerv1, v2
Dockerdockerv1해당 없음
16진수mixv1
elm-packageelmv0.19
git 하위모듈gitsubmodule해당 없음해당 없음
GitHub Actionsgithub-actions해당 없음해당 없음
Go 모듈gomodv1
Gradlegradle해당 없음
Mavenmaven해당 없음
npmnpmv6, v7, v8, v9
NuGetnuget<= 4.8
pippipv21.1.2
pipenvpip<= 2021-05-29
pip-compilepip6.1.0
pnpmnpmv7, v8, v9 (v7 and v8 only)
poetrypipv1
pubpubv2
Terraformterraform>= 0.13, <= 1.8.x해당 없음
yarnnpmv1, v2, v3

팁: pipenvpoetry 같은 패키지 관리자의 경우 pip YAML 값을 사용해야 합니다. 예를 들어 poetry를 사용하여 Python 종속성을 관리하고 Dependabot에서 새 버전의 종속성 매니페스트 파일을 모니터링하기를 원하는 경우 dependabot.yml 파일의 package-ecosystem: "pip"를 사용합니다.

Dependabot security updates에 대한 에코시스템 지원에 대한 자세한 내용은 "종속성 그래프에서 지원되는 패키지 에코시스템" 섹션을 참조하세요.

Cargo

프라이빗 레지스트리 지원은 Git 레지스트리에 적용되며 Cargo 레지스트리를 포함하지 않습니다.

Docker

Dependabot은(는) Docker 이미지의 메타데이터를 추가하여 버전 업데이트 요청을 끌어올 수 있습니다. 메타데이터에는 릴리스 정보, 변경 로그 및 커밋 기록이 포함됩니다. 리포지토리 관리자는 메타데이터를 사용하여 종속성 업데이트의 안정성 위험을 신속하게 평가할 수 있습니다.

Dependabot이(가) Docker 메타데이터를 가져오려면 Docker 이미지의 유지 관리자는 Dockerfile에 org.opencontainers.image.source 레이블을 추가하고 원본 리포지토리의 URL을 포함해야 합니다. 또한 유지 관리자는 게시된 Docker 이미지와 동일한 태그를 사용하여 리포지토리에 태그를 지정해야 합니다. 예제는 dependabot-fixtures/docker-with-source 리포지토리를 참조하세요. Docker 레이블에 대한 자세한 내용은 Docker 설명서의 확장 이미지 레이블BUILDX_GIT_LABELS를 참조하세요.

Dependabot은(는) Kubernetes 매니페스트에서 Docker 이미지 태그를 업데이트할 수 있습니다. Docker 이미지 태그를 참조하는 Kubernetes 매니페스트를 포함하는 각 디렉터리에 대한 dependabot.yml 파일의 Docker package-ecosystem 요소에 항목을 추가합니다. Kubernetes 매니페스트는 Kubernetes 배포 YAML 파일 또는 Helm 차트일 수 있습니다. docker에 대한 dependabot.yml 파일을 구성하는 방법에 대한 자세한 내용은 "dependentabot.yml 파일 구성 옵션"의 "package-ecosystem"을 참조하세요.

Dependabot은(는) 퍼블릭 및 프라이빗 Docker 레지스트리를 모두 지원합니다. 이러한 레지스트리의 목록은 "dependentabot.yml 파일 구성 옵션"의 “docker-registry”를 참조하세요.

Dependabot은(는) 유의적 버전(SemVer)에 대한 Docker 이미지 태그를 구문 분석합니다. If Dependabot이(가) 시험판에서 태그를 검색한 경우 일치하는 시험판을 포함하는 최신 버전으로의 업데이트만 제안하며 다른 시험판 레이블을 사용하는 최신 버전은 제안하지 않습니다. 자세한 내용은 dependabot/dependabot-core 리포지토리에서 dependabot-docker README.md 파일을 참조하세요.

GitHub Actions

Dependabot은 다음과 같은 주의 사항과 함께 GitHub Actions의 버전 업데이트를 지원합니다.

  • Dependabot은(는) % data variables.product.prodname_dotcom %} 리포지토리 구문(예: actions/checkout@v4)을 사용하여 GitHub Actions에 대한 업데이트만 지원합니다. Dependabot은(는) 로컬에서 참조되는 작업 또는 재사용 가능한 워크플로(예: ./.github/actions/foo.yml)를 무시합니다.
  • Docker 허브 및 GitHub Packages Container registry URL은 현재 지원되지 않습니다. 예를 들어 docker:// 구문을 사용하는 Docker 컨테이너 작업에 대한 참조는 지원되지 않습니다.
  • Dependabot은(는) GitHub Actions에 대한 퍼블릭 및 프라이빗 리포지토리를 모두 지원합니다. 프라이빗 레지스트리 구성 옵션은 "dependentabot.yml 파일 구성 옵션"의 "git"를 참조하세요.

GitHub Actions과 함께 Dependabot version updates을 사용하는 방법에 대한 자세한 내용은 "GitHub의 보안 기능을 사용하여 안전하게 GitHub Actions 사용"을(를) 참조하세요.

Gradle

Gradle은 Dependabot version updates에만 지원됩니다.

Dependabot은(는) Gradle을 실행하지 않지만 다음 파일에 대한 업데이트를 지원합니다.

  • build.gradle, build.gradle.kts(Kotlin 프로젝트의 경우)
  • gradle/libs.versions.toml(표준 Gradle 버전 카탈로그를 사용하는 프로젝트의 경우)
  • 파일 이름에 dependencies이 있는 apply 선언을 통해 포함된 파일입니다. applyapply to, 재귀 또는 고급 구문(예: 속성에 의해 정의된 파일 이름인 mapOf와 함께 Kotlin의 apply)을 지원하지 않습니다.

Dependabot은 pom.xml 종속성 파일의 정보를 사용하여 업데이트 끌어오기 요청의 릴리스 정보에 대한 링크를 추가합니다. pom.xml 파일에서 정보를 생략하면 Dependabot 끌어오기 요청에 포함할 수 없습니다. "Dependabot 업데이트에 Java 패키지 최적화"을(를) 참조하세요.

Maven

Dependabot은(는) Maven을 실행하지 않지만 pom.xml 파일에 대한 업데이트를 지원합니다.

Dependabot은 pom.xml 종속성 파일의 정보를 사용하여 업데이트 끌어오기 요청의 릴리스 정보에 대한 링크를 추가합니다. pom.xml 파일에서 정보를 생략하면 Dependabot 끌어오기 요청에 포함할 수 없습니다. "Dependabot 업데이트에 Java 패키지 최적화"을(를) 참조하세요.

NuGet CLI

Dependabot은(는) NuGet CLI를 실행하지 않지만, 4.8 버전까지 대부분의 기능을 지원합니다.

pip 및 pip-compile

Dependabot은(는) requirements.txt 파일 업데이트 지원하는 외에도 PEP 621 표준을 따르는 경우 pyproject.toml 파일에 대한 업데이트를 지원합니다.

pnpm

pnpm은 Dependabot version updates(v7, v8 및 v9에만 해당) 및 Dependabot security updates(v7 및 v8에만 해당)에 대해 지원됩니다.

pub

Dependabot은(는) pub를 업데이트하려는 버전이 무시될 경우 이전 버전을 사용할 수 있더라도 업데이트를 수행하지 않습니다.

Terraform

Terraform 지원에는 다음이 포함됩니다.

  • Terraform 레지스트리 또는 공개적으로 연결할 수 있는 Git 리포지토리에서 호스트되는 모듈
  • Terraform 공급자.
  • 비공개 Terraform 레지스트리. dependabot.yml 파일에 git 레지스트리를 지정하여 비공개 git 리포지토리에 대한 액세스를 구성할 수 있습니다. 자세한 내용은 git를 참조하세요.

yarn

Dependabot은 v2 이상에 대한 공급업체 종속성을 지원합니다.

3가지 패키지 관리자 기본 설정의 예시

# Basic set up for three package managers

version: 2
updates:

  # Maintain dependencies for GitHub Actions
  - package-ecosystem: "github-actions"
    # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.)
    directory: "/"
    schedule:
      interval: "weekly"

  # Maintain dependencies for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"

  # Maintain dependencies for Composer
  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "weekly"

directory

필수입니다. 각 패키지 관리자의 패키지 매니페스트(예: package.json 또는 Gemfile) 위치를 정의해야 합니다. GitHub Actions을(를) 제외한 모든 에코시스템에 대해 리포지토리 루트의 상대 디렉터리를 정의합니다.

GitHub Actions의 경우 디렉터리를 /.github/workflows(으)로 설정할 필요가 없습니다. 키를 /(으)로 구성하면 Dependabot에 /.github/workflows 디렉터리뿐 아니라 루트 디렉터리의 action.yml / action.yaml 파일도 검색하도록 자동으로 지시합니다.

# Specify location of manifest files for each package manager

version: 2
updates:
  - package-ecosystem: "composer"
    # Files stored in repository root
    directory: "/"
    schedule:
      interval: "weekly"

  - package-ecosystem: "npm"
    # Files stored in `app` directory
    directory: "/app"
    schedule:
      interval: "weekly"

  - package-ecosystem: "github-actions"
    # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.)
    directory: "/"
    schedule:
      interval: "weekly"

schedule.interval

필수입니다. 각 패키지 관리자에서 새 버전을 확인하는 빈도를 정의해야 합니다. 기본적으로 Dependabot은 구성 파일에서 모든 업데이트를 적용하는 시간을 임의로 할당합니다. 특정 시간을 설정하기 위해 schedule.timeschedule.timezone을 사용할 수 있습니다.

참고: schedule.time 옵션이 최선이며, Dependabot이 끌어오기 요청을 열어 최신 종속성 버전으로 업데이트하기까지 다소 시간이 걸릴 수 있습니다.

간격 유형빈도
daily평일(월요일~금요일)에 매일 실행됩니다.
weekly매주 한 번 실행됩니다. 기본적으로 월요일에 실행됩니다. 이 설정을 수정하려면 schedule.day를 사용합니다.
monthly매월 한 번 실행됩니다. 매월 1일에 실행됩니다.
# Set update schedule for each package manager

version: 2
updates:

  - package-ecosystem: "github-actions"
    # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.)
    directory: "/"
    schedule:
      # Check for updates to GitHub Actions every weekday
      interval: "daily"

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      # Check for updates managed by Composer once a week
      interval: "weekly"

참고: schedule은 Dependabot이 새 업데이트를 시도하는 시기를 정의합니다. 그러나 이때만 끌어오기 요청을 받을 수 있는 것은 아닙니다. dependabot.yml 파일 변경 내용, 업데이트 실패 후 매니페스트 파일 변경 내용 또는 Dependabot security updates에 따라 업데이트가 트리거될 수 있습니다. 자세한 내용은 "Dependabot 버전 업데이트 정보" 및 "Dependabot 보안 업데이트 정보" 항목을 참조하세요.

allow

기본적으로 매니페스트에 명시적으로 정의된 모든 종속성은 보안 업데이트는 잠긴 파일에 정의된 취약한 종속성도 업데이트합니다. 유지 관리할 종속성이 있는 allowignore을(를) 사용자 지정할 수 있습니다. Dependabot은 허용되는 모든 종속성을 확인한 다음, 무시된 종속성 또는 버전을 필터링합니다. 따라서 allowignore 둘 다와 일치하는 종속성이 무시됩니다.

allow 옵션을 사용하여 업데이트되는 종속성을 사용자 지정할 수 있습니다. 버전 및 보안 업데이트에 모두 적용됩니다. 사용할 수 있는 옵션은 다음과 같습니다.

  • dependency-name - 이름이 일치하는 종속성 업데이트를 허용하려면 사용합니다. 필요에 따라 0자 이상의 문자와 일치하도록 *를 사용합니다.

    • Java 종속성의 경우 dependency-name 특성의 형식은 groupId:artifactId입니다(예: org.kohsuke:github-api).
    • Docker 이미지 태그의 형식은 리포지토리의 전체 이름입니다. 예를 들어 <account ID>.dkr.ecr.us-west-2.amazonaws.com/base/foo/bar/ruby:3.1.0-focal-jemalloc의 이미지 태그는 base/foo/bar/ruby를 사용합니다.
  • dependency-type - 특정 형식의 종속성 업데이트를 허용하려면 사용합니다.

    종속성 유형지원하는 패키지 관리자업데이트 허용
    direct모두명시적으로 정의된 모든 종속성.
    indirectbundler, pip, composer, cargo, gomod직접 종속성의 종속성(하위 종속성 또는 일시적인 종속성이라고도 함)
    all모두명시적으로 정의된 모든 종속성. bundler, pip, composer, cargo, gomod의 경우 직접 종속성의 종속성 업데이트도 허용됩니다.
    productionbundler, composer, mix, maven, npm, pip(모든 관리자가 아님)“프로덕션 종속성 그룹”의 종속성만
    developmentbundler, composer, mix, maven, npm, pip(모든 관리자가 아님)“개발 종속성 그룹”의 종속성만
# Use `allow` to specify which dependencies to maintain

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    allow:
      # Allow updates for Lodash
      - dependency-name: "lodash"
      # Allow updates for React and any packages starting "react"
      - dependency-name: "react*"

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "weekly"
    allow:
      # Allow both direct and indirect updates for all packages
      - dependency-type: "all"

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    allow:
      # Allow only direct updates for
      # Django and any packages starting "django"
      - dependency-name: "django*"
        dependency-type: "direct"
      # Allow only production updates for Sphinx
      - dependency-name: "sphinx"
        dependency-type: "production"

assignees

assignees를 사용하여 패키지 관리자에 대해 발생한 모든 끌어오기 요청의 개별 담당자를 지정할 수 있습니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Specify assignees for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Add assignees
    assignees:
      - "octocat"

commit-message

기본적으로 Dependabot은 커밋 메시지 기본 설정을 검색하고 유사한 패턴을 사용하려고 합니다. commit-message 옵션을 사용하여 기본 설정을 명시적으로 지정할 수 있습니다. 이 설정은 끌어오기 요청의 제목에도 영향을 줍니다.

명시적으로 설정하든 리포지토리 기록에서 자동으로 검색되든 관계없이 커밋 메시지를 기반으로 끌어오기 요청의 제목을 채웁니다.

지원되는 옵션

참고: prefixprefix-development 옵션은 50자로 제한됩니다.

  • prefix는 모든 커밋 메시지 대한 접두사를 지정하며 PR 제목의 시작 부분에도 추가됩니다. 커밋 메시지에 접두사를 지정할 때 정의된 접두사가 글자, 숫자, 닫는 괄호 또는 닫는 대괄호로 끝나는 경우 GitHub가 정의된 접두사와 커밋 메시지 사이에 콜론을 자동으로 추가합니다. 예를 들어 접두사를 공백으로 끝내면 접두사와 커밋 메시지 사이에 콜론이 추가되지 않습니다. 아래의 코드 조각은 동일한 구성 파일에 있는 두 가지 예제를 제공합니다.

  • prefix-development는 개발 종속성 그룹의 종속성을 업데이트하는 모든 커밋 메시지에 대해 별도의 접두사를 지정합니다. 이 옵션의 값을 지정한 경우 prefix는 프로덕션 종속성 그룹의 종속성 업데이트에만 사용됩니다. bundler, composer, mix, maven, npm, pip에서 지원됩니다.

  • include: "scope"는 커밋에서 업데이트되는 종속성 유형(deps 또는 deps-dev)이 접두사 뒤에 오도록 지정합니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Customize commit messages

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      # Prefix all commit messages with "npm: "
      prefix: "npm"

  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
    commit-message:
      # Prefix all commit messages with "[docker] " (no colon, but a trailing whitespace)
      prefix: "[docker] "

  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "weekly"
    # Prefix all commit messages with "Composer" plus its scope, that is, a
    # list of updated dependencies
    commit-message:
      prefix: "Composer"
      include: "scope"

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Include a list of updated dependencies
    # with a prefix determined by the dependency group
    commit-message:
      prefix: "pip prod"
      prefix-development: "pip dev"

위 예제와 동일한 구성을 사용하는 경우 pip 개발 종속성 그룹에서 requests 라이브러리를 업그레이드하면 다음 커밋 메시지가 생성됩니다.

pip dev: bump requests from 1.0.0 to 1.0.1

ignore

기본적으로 매니페스트에 명시적으로 정의된 모든 종속성은 보안 업데이트는 잠긴 파일에 정의된 취약한 종속성도 업데이트합니다. 유지 관리할 종속성이 있는 allowignore을(를) 사용자 지정할 수 있습니다. Dependabot은 허용되는 모든 종속성을 확인한 다음, 무시된 종속성 또는 버전을 필터링합니다. 따라서 allowignore 둘 다와 일치하는 종속성이 무시됩니다.

ignore에 종속성을 추가하거나 Dependabot에서 열린 끌어오기 요청에 @dependabot ignore 명령을 사용하여 종속성을 무시할 수 있습니다.

경고:

  • Dependabot의 비공개 레지스트리 액세스를 방지하는 데 ignore을(를) 사용하지 않는 것이 좋습니다. 이 방식은 일부 에코시스템에서는 작동할 수 있지만 패키지 관리자가 업데이트를 성공적으로 수행하기 위해 모든 종속성에 대한 액세스가 필요한지 여부를 알 수 없으므로 해당 방식을 신뢰할 수 없습니다. 비공개 종속성 처리를 지원하는 방법은 비공개 레지스트리 또는 프라이빗 리포지토리에 대해 Dependabot 액세스 권한을 부여하는 것입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.

  • GitHub Actions 및 Docker의 경우 ignore을(를) 사용하여 Dependabot이(가) 비공개 레지스트리에 액세스하지 못하도록 방지할 수 있습니다.

@dependabot ignoreignore 조건 만들기

@dependabot ignore 명령을 사용하여 무시된 종속성은 패키지 관리자별로 중앙에서 저장됩니다. dependabot.yml 파일에서 종속성을 무시하기 시작하면 구성의 ignore 종속성과 함께 기존 기본 설정이 고려됩니다.

리포지토리에서 "@dependabot ignore" in:comments를 검색하거나 @dependabot show DEPENDENCY_NAME ignore conditions 주석 명령을 사용하여 리포지토리에 저장된 ignore 기본 설정이 있는지 확인할 수 있습니다. 이런 방법으로 무시된 종속성의 업데이트를 차단 해제하려면 끌어오기 요청을 다시 엽니다. 그러면 끌어오기 요청이 닫힐 때 설정된 ignore 조건이 지워지고 해당 종속성에 대한 Dependabot 업데이트가 다시 시작됩니다. 종속성을 최신 버전으로 업데이트하려면 끌어오기 요청을 병합합니다.

@dependabot ignore 명령에 대한 자세한 내용은 "종속성 업데이트에 대한 끌어오기 요청 관리"를 참조하세요.

무시할 종속성 및 버전 지정

ignore 옵션을 사용하여 업데이트되는 종속성을 사용자 지정할 수 있습니다. ignore 옵션에서 지원하는 옵션은 다음과 같습니다.

옵션설명
dependency-name이름이 일치하는 종속성에 대한 업데이트를 무시하는 데 사용하며, 필요에 따라 0자 이상의 문자와 일치하도록 *를 사용합니다.
Java 종속성의 경우 dependency-name 특성의 형식은 groupId:artifactId입니다(예: org.kohsuke:github-api).
Dependabot이(가) DefinitelyTyped에서 TypeScript 유형 정의를 자동으로 업데이트하는 것을 방지하려면 @types/*를 사용합니다.
versions특정 버전 또는 버전 범위를 무시하는 데 사용합니다. 범위를 정의하려는 경우 패키지 관리자의 표준 패턴을 사용합니다.
예를 들어 npm에는 ^1.0.0, 번들러에는 ~> 2.0, Docker에는 Ruby 버전 구문, NuGet에는 7.*을 사용합니다.
update-types버전 업데이트에서 semver major, minor 또는 patch 업데이트와 같은 유형의 업데이트를 무시하는 데 사용합니다(예: version-update:semver-patch는 패치 업데이트를 무시함). dependency-name: "*"와 결합하여 모든 종속성에서 특정 update-types를 무시할 수 있습니다.
현재 지원되는 옵션은 version-update:semver-major, version-update:semver-minor, version-update:semver-patch뿐입니다.

단독으로 사용하는 경우 ignore.versions 키는 Dependabot 업데이트 모두에 영향을 주지만 ignore.update-types 키는 Dependabot version updates에만 영향을 줍니다.

그러나 versionsupdate-types를 동일한 ignore 규칙에서 사용하는 경우, 기본 분기가 아닌 분기에서 버전 업데이트를 확인하기 위해 구성이 target-branch를 사용하지 않는 한 Dependabot 업데이트 모두에 영향을 줍니다.

# Use `ignore` to specify dependencies that should not be updated

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      - dependency-name: "express"
        # For Express, ignore all Dependabot updates for version 4 and 5
        versions: ["4.x", "5.x"]
        # For Lodash, ignore all updates
      - dependency-name: "lodash"
        # For AWS SDK, ignore all patch updates for version updates only
      - dependency-name: "aws-sdk"
        update-types: ["version-update:semver-patch"]
  - package-ecosystem: 'github-actions'
    directory: '/'
    schedule:
      interval: 'weekly'
    ignore:
      - dependency-name: 'actions/checkout'
        # For GitHub Actions, ignore all updates greater than or equal to version 3
        versions: '>= 3'

참고: Dependabot은 구성 파일의 ignore 옵션에 액세스할 수 없는 종속성을 추가하더라도 파일의 모든 종속성에 액세스할 수 있는 경우에만 매니페스트 또는 잠금 파일에서 버전 업데이트를 실행할 수 있습니다. 자세한 내용은 "조직의 보안 및 분석 설정 관리" 및 "Dependabot 오류 문제 해결"을(를) 참조하세요.

참고: pub 에코시스템의 경우 이전 버전을 사용할 수 있더라도 Dependabot은 업데이트를 시도하는 버전이 무시될 때 업데이트를 수행하지 않습니다.

다음 예는 ignore을 사용하여 업데이트되는 종속성을 사용자 지정하는 방법을 보여줍니다.

특정 버전 이외의 업데이트 무시
ignore:
  - dependency-name: "lodash:*"
    versions: [ ">=1.0.0" ]
특정 버전 이외의 업데이트 무시
ignore:
  - dependency-name: "sphinx"
    versions: [ "[1.1,)" ]
패치 업데이트 무시
ignore:
  - dependency-name: "@types/node"
    update-types: ["version-update:semver-patch"]
특정 버전의 업데이트 무시
ignore:
  - dependency-name: "django*"
    versions: [ "11" ]

insecure-external-code-execution

package-ecosystem 값이 bundler, mix, pip인 패키지 관리자는 버전 업데이트 프로세스의 일부로 매니페스트의 외부 코드를 실행할 수 있습니다. 이로 인해 손상된 패키지가 자격 증명을 도용하거나 구성된 레지스트리에 대한 액세스 권한을 얻을 수 있습니다. updates 구성 내에 registries 설정을 추가하면 Dependabot이 자동으로 외부 코드 실행을 방지합니다. 이 경우 버전 업데이트에 실패할 수 있습니다. insecure-external-code-executionallow로 설정하면 이 동작을 재정의하고 bundler, mix, pip 패키지 관리자의 외부 코드 실행을 허용할 수 있습니다.

# 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이 프라이빗 패키지 레지스트리에 액세스할 수 있도록 registries 설정을 정의하고 동일한 updates 구성에서 insecure-external-code-executionallow로 설정한 경우 발생하는 외부 코드 실행은 해당 updates 설정과 연결된 레지스트리의 패키지 관리자에만 액세스할 수 있습니다. 최상위 registries 구성에 정의된 레지스트리에는 액세스가 허용되지 않습니다.

이 예제에서 구성 파일을 사용하면 Dependabot에서 ruby-github 프라이빗 패키지 레지스트리에 액세스할 수 있습니다. 동일한 updates 설정에서 insecure-external-code-executionallow로 설정되어 있으므로 종속성으로 실행되는 코드는 dockerhub 레지스트리가 아닌 ruby-github 레지스트리에만 액세스하게 됩니다.

# Using `registries` in conjunction with `insecure-external-code-execution:allow`
# in the same `updates` setting

version: 2
registries:
  ruby-github:
    type: rubygems-server
    url: https://rubygems.pkg.github.com/octocat/github_api
    token: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}
  dockerhub:
    type: docker-registry
    url: registry.hub.docker.com
    username: octocat
    password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
  - package-ecosystem: "bundler"
    directory: "/rubygems-server"
    insecure-external-code-execution: allow
    registries:
      - ruby-github # only access to registries associated with this ecosystem/directory
    schedule:
      interval: "monthly"

insecure-external-code-executiondeny로 설정하면 이 업데이트 구성에 대한 registries 설정이 있는지 여부에 관계없이 외부 코드 실행을 명시적으로 거부할 수 있습니다.

labels

기본적으로 Dependabot은 dependencies 레이블을 사용하여 모든 끌어오기 요청을 발생시킵니다. 둘 이상의 패키지 관리자가 정의된 경우 Dependabot은 각 끌어오기 요청에 추가 레이블을 포함합니다. 이는 끌어오기 요청이 업데이트할 언어 또는 에코시스템을 나타냅니다(예: Gradle 업데이트의 경우 java, git 하위 모듈 업데이트의 경우 submodules). Dependabot은 리포지토리에서 필요에 따라 기본 레이블을 자동으로 만듭니다.

기본 레이블을 재정의하고 패키지 관리자에 대해 발생한 모든 끌어오기 요청의 대체 레이블을 지정하려면 labels를 사용합니다. 레이블이 리포지토리에 정의되어 있지 않으면 무시됩니다. 기본 레이블을 포함하여 모든 레이블을 사용하지 않도록 설정하려면 labels: [ ]를 사용합니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Specify labels for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Specify labels for npm pull requests
    labels:
      - "npm"
      - "dependencies"

milestone

패키지 관리자에 대해 발생한 모든 끌어오기 요청을 마일스톤과 연결하려면 milestone을 사용합니다. 해당 레이블이 아닌 마일스톤의 숫자 식별자를 지정해야 합니다. 마일스톤을 볼 때 milestone 뒤에 있는 페이지 URL의 최종 부분이 식별자입니다. 예: https://github.com/<org>/<repo>/milestone/3

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Specify a milestone for pull requests

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Associate pull requests with milestone "4"
    milestone: 4

open-pull-requests-limit

기본적으로 Dependabot은 버전 업데이트에 대해 최대 5개의 끌어오기 요청을 엽니다. Dependabot에서 열린 끌어오기 요청이 5개 있으면 Dependabot은 열려 있는 요청 중 일부가 병합되거나 닫혀질 때까지 새 요청을 열지 않습니다. 이 한도를 변경하려면 open-pull-requests-limit를 사용합니다. 이 옵션은 패키지 관리자에 대한 버전 업데이트를 일시적으로 사용하지 않도록 설정하는 간단한 방법도 제공합니다.

열린 끌어오기 요청 10개인 별도의 내부 한도가 있는 보안 업데이트에는 영향을 주지 않습니다.

# Specify the number of open pull requests allowed

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Disable version updates for npm dependencies
    open-pull-requests-limit: 0

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Allow up to 10 open pull requests for pip dependencies
    open-pull-requests-limit: 10

pull-request-branch-name.separator

Dependabot은 각 끌어오기 요청에 대한 분기를 생성합니다. 각 분기 이름에는 dependabot과 업데이트되는 패키지 관리자 및 종속성이 포함됩니다. 기본적으로 각 부분은 / 기호로 구분됩니다(예: dependabot/npm_and_yarn/next_js/acorn-6.4.1).

다른 구분 기호를 지정하려면 pull-request-branch-name.separator를 사용합니다. "-", _ 또는 / 중 하나일 수 있습니다. 하이픈 기호는 따옴표로 묶어야 합니다. 그러지 않으면 빈 YAML 목록을 시작하는 것으로 해석됩니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Specify a different separator for branch names

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    pull-request-branch-name:
      # Separate sections of the branch name with a hyphen
      # for example, `dependabot-npm_and_yarn-next_js-acorn-6.4.1`
      separator: "-"

rebase-strategy

기본적으로 Dependabot은 끌어오기 요청의 변경 내용을 검색할 경우 열린 끌어오기 요청을 자동으로 다시 지정합니다. 이 동작을 사용하지 않도록 설정하려면 rebase-strategy를 사용합니다.

참고: 끌어오기 요청이 30일 동안 병합되지 않은 경우 Dependabot은(는) 끌어오기 요청의 재지정을 중지합니다. 끌어오기 요청을 수동으로 재지정하고 병합할 수 있습니다.

사용 가능한 다시 지정 전략

  • auto - 기본 동작을 사용하고 변경 내용이 검색될 경우 열린 끌어오기 요청을 다시 지정합니다.
  • disabled - 자동 다시 지정을 사용하지 않도록 설정합니다.

rebase-strategyauto로 설정하면 Dependabot은 다음과 같은 경우에 끌어오기 요청을 다시 지정하려고 시도합니다.

  • 일정이 실행될 때 열려 있는 모든 Dependabot 끌어오기 요청에 대해 Dependabot version updates를 사용하는 경우.
  • 닫힌 Dependabot 끌어오기 요청을 다시 여는 경우.
  • Dependabot 구성 파일의 target-branch 값을 변경하는 경우. 이 필드에 대한 자세한 내용은 "target-branch"를 참조하세요.
  • 대상 분기에 최근 푸시한 후 Dependabot 끌어오기 요청이 충돌하는 것을 Dependabot에서 감지한 경우.

rebase-strategydisabled로 설정하면 Dependabot이 끌어오기 요청의 재지정을 중지합니다.

참고: 이 동작은 대상 분기와 충돌하는 끌어오기 요청에만 적용됩니다. Dependabot은 rebase-strategy 설정이 변경되기 전에 열린 끌어오기 요청과 예약된 실행의 일부인 끌어오기 요청을 계속해서 재지정합니다(열린 후 30일까지).

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Disable automatic rebasing

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Disable rebasing for npm pull requests
    rebase-strategy: "disabled"

registries

Dependabot이 버전 업데이트를 수행할 때 프라이빗 패키지 레지스트리에 액세스할 수 있도록 하려면 관련 updates 구성 내에 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"

자세한 내용은 아래의 “프라이빗 레지스트리에 대한 구성 옵션”을 참조하세요.

비공개 레지스트리를 구성할 때 참고할 권장 사항과 조언, 사용 가능한 옵션에 대한 심층적인 내용은 "Dependabot의 개인 레지스트리 구성에 대한 지침"을(를) 참조하세요.

Dependabot이 bundler, mix, pip 패키지 관리자를 사용하여 프라이빗 레지스트리의 종속성을 업데이트할 수 있도록 하려면 외부 코드 실행을 허용할 수 있습니다. 자세한 내용은 위의 insecure-external-code-execution을 참조하세요.

# Allow Dependabot to use one of the two defined private registries
# when updating dependency versions for this ecosystem

version: 2
registries:
  maven-github:
    type: maven-repository
    url: https://maven.pkg.github.com/octocat
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
  npm-npmjs:
    type: npm-registry
    url: https://registry.npmjs.org
    username: octocat
    password: ${{secrets.MY_NPM_PASSWORD}}
updates:
  - package-ecosystem: "gitsubmodule"
    directory: "/"
    registries:
      - maven-github
    schedule:
      interval: "monthly"

reviewers

패키지 관리자에 대해 발생한 모든 끌어오기 요청의 개별 검토자 또는 검토자 팀을 지정하려면 reviewers를 사용합니다. 팀을 @mentioning하는 것처럼 조직을 포함한 전체 팀 이름을 사용해야 합니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

# Specify reviewers for pull requests

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Add reviewers
    reviewers:
      - "octocat"
      - "my-username"
      - "my-org/python-team"

schedule.day

weekly 업데이트 일정을 설정하는 경우 기본적으로 Dependabot은 월요일, 임의로 설정된 시간에 리포지토리에서 새 버전을 확인합니다. 업데이트를 확인할 대체 요일을 지정하려면 schedule.day를 사용합니다.

지원되는 값

  • monday
  • tuesday
  • wednesday
  • thursday
  • friday
  • saturday
  • sunday
# Specify the day for weekly checks

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates on Sundays
      day: "sunday"

schedule.time

기본적으로 Dependabot은 임의로 설정된 시간에 리포지토리에서 새 버전을 확인합니다. 업데이트를 확인할 대체 시간을 지정하려면 schedule.time을 사용합니다(형식: hh:mm).

# Set a time for checks
version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates at 9am UTC
      time: "09:00"

schedule.timezone

기본적으로 Dependabot은 임의로 설정된 시간에 리포지토리에서 새 버전을 확인합니다. 대체 표준 시간대를 지정하려면 schedule.timezone을 사용합니다. 표준 시간대 식별자는 iana에서 유지 관리하는 표준 시간대 데이터베이스에서 가져온 것이어야 합니다. 자세한 내용은 tz 데이터베이스 표준 시간대 목록을 참조하세요.

# Specify the timezone for checks

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      time: "09:00"
      # Use Japan Standard Time (UTC +09:00)
      timezone: "Asia/Tokyo"

target-branch

기본적으로 Dependabot은 기본 분기의 매니페스트 파일을 확인하고 이 분기에 대해 버전 업데이트 끌어오기 요청을 생성합니다. 매니페스트 파일 및 끌어오기 요청에 대해 다른 분기를 지정하려면 target-branch를 사용합니다. 이 옵션을 사용하면 패키지 관리자 설정이 보안 업데이트에 대해 발생한 끌어오기 요청에 더 이상 영향을 주지 않습니다.

# Specify a non-default branch for pull requests for pip

version: 2
updates:
  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Raise pull requests for version updates
    # to pip against the `develop` branch
    target-branch: "develop"
    # Labels on pull requests for version updates only
    labels:
      - "pip dependencies"

  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
      # Check for npm updates on Sundays
      day: "sunday"
    # Labels on pull requests for security and version updates
    labels:
      - "npm dependencies"

vendor

업데이트할 때 종속성을 벤더링하도록 Dependabot에 지시하려면 vendor 옵션을 사용합니다. gomod를 사용하는 경우에는 이 옵션을 사용하지 마세요. Dependabot에서 이 도구의 벤더링을 자동으로 검색합니다.

# Configure version updates for both dependencies defined in manifests and vendored dependencies

version: 2
updates:
  - package-ecosystem: "bundler"
    # Raise pull requests to update vendored dependencies that are checked in to the repository
    vendor: true
    directory: "/"
    schedule:
      interval: "weekly"

Dependabot은 리포지토리의 특정 디렉터리에 있는 벤더링된 종속성만 업데이트합니다.

패키지 관리자벤더링된 종속성에 필요한 파일 경로자세한 정보
bundler종속성이 vendor/cache 디렉터리에 있어야 합니다.
다른 파일 경로는 지원되지 않습니다.
bundle cache 설명서
gomod경로 요구 사항 없음(종속성은 일반적으로 vendor 디렉터리에 있음)go mod vendor 설명서

versioning-strategy

Dependabot은 버전 업데이트를 위해 매니페스트 파일을 편집할 때 다음과 같이 여러 가지 잠재적인 버전 관리 전략을 사용합니다.

옵션작업
auto앱과 라이브러리를 구분하려고 합니다. 앱에는 increase, 라이브러리에는 widen을 사용합니다.
increase항상 새 버전과 일치하도록 최소 버전 요구 사항을 증가시킵니다. 범위가 이미 존재하는 경우 일반적으로 하한만 증가시킵니다.
increase-if-necessary원래 제약 조건이 새 버전을 허용하는 경우 제약 조건을 그대로 두고, 그렇지 않으면 제약 조건을 범프합니다.
lockfile-only잠금 파일을 업데이트하기 위한 끌어오기 요청만 만듭니다. 패키지 매니페스트 변경이 필요한 새 버전은 무시합니다.
widen가능하면 새 버전과 이전 버전을 모두 포함하도록 버전 요구 사항을 확장합니다. 이렇게 하면 일반적으로 허용되는 최대 버전 요구 사항만 증가합니다.
해당 없음일부 패키지 관리자는 아직 versioning-strategy 매개 변수 구성을 지원하지 않습니다.

다음 표는 versioning-strategy를 사용하는 방법의 예시를 보여 줍니다.

현재 제약 조건현재 버전새 버전전략새 제약 조건
^1.0.01.0.01.2.0widen^1.0.0
^1.0.01.0.01.2.0increase^1.2.0
^1.0.01.0.01.2.0increase-if-necessary^1.0.0
^1.0.01.0.02.0.0widen>=1.0.0 <3.0.0
^1.0.01.0.02.0.0increase^2.0.0
^1.0.01.0.02.0.0increase-if-necessary^2.0.0

지원되는 패키지 관리자에 대해 이 동작을 변경하려면 versioning-strategy 옵션을 사용합니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 target-branch를 사용하지 않는 한 이 옵션을 설정하면 이 패키지 관리자의 매니페스트 파일에 대한 보안 업데이트 끌어오기 요청에도 영향을 줍니다.

사용 가능한 업데이트 전략:

에코시스템지원되는 버전 관리 전략기본 전략
bundlerauto, increase, increase-if-necessary, lockfile-onlyauto
cargoauto, lockfile-onlyauto
composerauto, increase, increase-if-necessary, lockfile-only, widenauto
docker해당 없음해당 없음
github-actions해당 없음해당 없음
gitsubmodule해당 없음해당 없음
gomod해당 없음해당 없음
gradle해당 없음해당 없음
maven해당 없음해당 없음
mixauto, lockfile-onlyauto
npmauto, increase, increase-if-necessary, lockfile-only, widenauto
nuget해당 없음해당 없음
pipauto, increase, increase-if-necessary, lockfile-onlyauto
pubauto, increase, increase-if-necessary, widenauto
terraform해당 없음해당 없음

참고: N/A는 패키지 관리자가 아직 versioning-strategy 매개 변수 구성을 지원하지 않음을 나타냅니다. 전략 코드는 오픈 소스이므로 특정 에코시스템이 새 전략을 지원하도록 하려면 언제든지 https://github.com/dependabot/dependabot-core/에 끌어오기 요청을 제출할 수 있습니다.

# Example configuration for customizing the manifest version strategy

version: 2
updates:
  - package-ecosystem: "composer"
    directory: "/"
    schedule:
      interval: "weekly"
    # Increase the version requirements for Composer only when required
    versioning-strategy: increase-if-necessary

프라이빗 레지스트리에 대한 구성 옵션

최상위 registries 키는 선택 사항입니다. 따라서 Dependabot이 프라이빗 패키지 레지스트리에 액세스하는 데 사용할 수 있는 인증 세부 정보를 지정할 수 있습니다.

Dependabot에 GitLab 또는 Bitbucket이 호스스팅하는 프라이빗 패키지 레지스트리에 대한 액세스를 부여하려면 type/git을(를) 지정하면 됩니다. 자세한 내용은 git를 참조하세요.

참고: 프라이빗 네트워크의 방화벽 뒤에 있는 프라이빗 레지스트리는 지원되지 않습니다.

  • Bundler
  • Docker
  • Gradle
  • Maven
  • Npm
  • Nuget
  • Python
  • Yarn

registries 키의 값은 결합형 배열이며, 각 요소는 특정 레지스트리를 식별하는 키와 해당 레지스트리에 액세스하는 데 필요한 설정을 지정하는 결합형 배열 값으로 구성됩니다. 다음 dependabot.yml 파일은 파일의 registries 섹션에 dockerhub로 식별된 레지스트리를 구성한 다음, 파일의 updates 섹션에서 이를 참조합니다.

# Minimal settings to update dependencies in one private registry

version: 2
registries:
  dockerhub: # Define access for a private registry
    type: docker-registry
    url: registry.hub.docker.com
    username: octocat
    password: ${{secrets.DOCKERHUB_PASSWORD}}
updates:
  - package-ecosystem: "docker"
    directory: "/docker-registry/dockerhub"
    registries:
      - dockerhub # Allow version updates for dependencies in this registry
    schedule:
      interval: "monthly"

다음 옵션을 사용하여 액세스 설정을 지정합니다. 레지스트리 설정은 typeurl을 포함해야 하며, 일반적으로 usernamepassword 조합이나 token을 포함해야 합니다.

옵션                설명
type레지스트리의 형식을 식별합니다. 사용 가능한 레지스트리 유형에 대한 자세한 내용은 "registries"에서 확인할 수 있습니다. 비공개 레지스트리의 구성에 대한 자세한 내용은 "비공개 레지스트리의 구성 옵션"을 참조하세요.
url이 레지스트리의 종속성에 액세스하는 데 사용할 URL입니다. 프로토콜은 선택 사항입니다. 지정하지 않으면 https://가 가정됩니다. Dependabot은 필요에 따라 후행 슬래시를 추가하거나 무시합니다.
usernameDependabot이 레지스트리에 액세스하는 데 사용하는 사용자 이름입니다.
username은 계정의 사용자 이름 또는 이메일 주소입니다.
password지정된 사용자의 암호를 포함하는 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.
password는 사용자 이름별로 지정된 계정에 대한 암호입니다. 계정이 GitHub 계정인 경우 암호 대신 GitHub personal access token을(를) 사용할 수 있습니다.
key이 레지스트리의 액세스 키가 포함된 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.
token이 레지스트리의 액세스 토큰이 포함된 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 "Dependabot에 대한 개인 레지스트리 액세스 구성"을(를) 참조하세요.
token은 외부 시스템에 대한 액세스 토큰을 제공하는 데 사용되며 GitHub personal access token을(를) 제공하는 데 사용하면 안 됩니다. GitHub personal access token을(를) 사용하려면 암호로 제공해야 합니다.
replaces-base레지스트리의 경우 부울 값이true인 경우 Dependabot은(는) 특정 에코시스템의 기본 URL이 아닌 지정된 URL을 사용하여 종속성을 해결합니다. 예를 들어, type: python-index인 레지스트리의 경우 부울 값이 true이면 pip는 Python 패키지 인덱스의 기준 URL(기본적으로 https://pypi.org/simple)이 아닌 지정된 URL을 사용하여 종속성을 확인합니다.

지정하는 각 구성 type 에 필요한 설정을 제공해야 합니다. 일부 유형은 두 가지 이상의 연결 방법을 허용합니다. 다음 섹션에서는 각 type에 사용해야 하는 설정의 세부 정보를 제공합니다.

비공개 레지스트리를 구성할 때 참고할 권장 사항과 조언, 사용 가능한 옵션에 대한 심층적인 내용은 "Dependabot의 개인 레지스트리 구성에 대한 지침"을(를) 참조하세요.

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

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에서 경로를 생략하는 것이 좋습니다.

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

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

hex-organization

hex-organization 유형은 조직 및 키를 지원합니다.

이 레지스트리 유형은 url 옵션에 제공된 경로와 접두사가 일치합니다. 즉, 동일한 호스트에 여러 자격 증명을 제공할 수 있으며, 이 자격 증명은 고유 경로에 액세스하는 데 사용할 수 있습니다. 그러나 동일한 호스트에 여러 레지스트리가 없는 경우 레지스트리의 모든 경로가 자격 증명을 받도록 url에서 경로를 생략하는 것이 좋습니다.

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 비밀로 저장할 수 있습니다.

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 유형은 사용자 이름 및 암호를 지원합니다. 계정이 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}}

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-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을(를) 사용할 수 있습니다.

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

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

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

베타 수준 에코시스템에 대한 지원 활성화

enable-beta-ecosystems

기본적으로 Dependabot은 완전히 지원되는 에코시스템에 대해서만 종속성 매니페스트 및 잠금 파일을 업데이트합니다. 아직 일반 공급되지 않은 에코시스템의 업데이트를 옵트인하려면 enable-beta-ecosystems 플래그를 사용합니다.

현재 베타에 에코시스템이 없습니다.

# Configure 베타 ecosystem

version: 2
enable-beta-ecosystems: true
updates:
  - package-ecosystem: "beta-ecosystem"
    directory: "/"
    schedule:
      interval: "weekly"