Skip to main content
설명서에 자주 업데이트를 게시하며 이 페이지의 번역이 계속 진행 중일 수 있습니다. 최신 정보는 영어 설명서를 참조하세요.

dependabot.yml 파일에 대한 구성 옵션

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

이 기능을 사용할 수 있는 사용자

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

dependabot.yml 파일 정보

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

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

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

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

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

dependabot.yml 파일에 대한 구성 옵션

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

옵션필수보안 업데이트버전 업데이트설명
package-ecosystemXX사용할 패키지 관리자입니다.
directoryXX패키지 매니페스트의 위치입니다.
schedule.intervalXX업데이트를 확인하는 빈도입니다.
allowXX허용되는 업데이트를 사용자 지정합니다.
assigneesXX끌어오기 요청에 설정할 담당자입니다.
commit-messageXX커밋 메시지 기본 설정입니다.
enable-beta-ecosystemsX베타 수준 지원이 있는 에코시스템을 사용하도록 설정합니다.
ignoreXX특정 종속성 또는 버전을 무시합니다.
insecure-external-code-executionX매니페스트 파일의 코드 실행을 허용하거나 거부합니다.
labelsXX끌어오기 요청에 설정할 레이블입니다.
milestoneXX끌어오기 요청에 설정할 마일스톤입니다.
open-pull-requests-limitXX버전 업데이트를 위해 열린 끌어오기 요청 수를 제한합니다.
pull-request-branch-name.separatorXX끌어오기 요청 분기 이름의 구분 기호를 변경합니다.
rebase-strategyXX자동 다시 지정을 사용하지 않도록 설정합니다.
registriesXDependabot이 액세스할 수 있는 프라이빗 레지스트리입니다.
reviewersXX끌어오기 요청에 설정할 검토자입니다.
schedule.dayX업데이트를 확인하는 요일입니다.
schedule.timeX업데이트를 확인하는 하루 중 시간(hh:mm)입니다.
schedule.timezoneX하루 중 시간의 표준 시간대(영역 식별자)입니다.
target-branchX끌어오기 요청을 만들 분기입니다.
vendorX벤더링된 종속성 또는 캐시된 종속성을 업데이트합니다.
versioning-strategyXX매니페스트 버전 요구 사항을 업데이트하는 방법입니다.

옵션은 광범위하게 다음 범주로 분류됩니다.

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

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

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

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

package-ecosystem

필수. Dependabot에서 새 버전을 모니터링할 각 패키지 관리자에 대해 package-ecosystem 요소를 하나씩 추가합니다. 리포지토리에 각 패키지 관리자의 종속성 매니페스트 또는 잠금 파일도 포함되어야 합니다. 벤더링을 지원하는 패키지 관리자에서 벤더링을 사용하도록 설정하려는 경우 벤더링된 종속성이 필수 디렉터리에 있어야 합니다. 자세한 내용은 아래의 vendor를 참조하세요.

다음 표에서는 각 패키지 관리자에 대해 다음을 보여줍니다.

  • dependabot.yml 파일에 사용할 YAML 값
  • 패키지 관리자의 지원되는 버전
  • 프라이빗 GitHub 리포지토리 또는 레지스트리의 종속성이 지원되는지 여부
  • 벤더링된 종속성이 지원되는지 여부
패키지 관리자YAML 값지원되는 버전프라이빗 리포지토리프라이빗 레지스트리벤더링
번들러bundlerv1, v2
Cargocargov1
작성기composerv1, v2
Docker [1]dockerv1
Hexmixv1
elm-packageelmv0.19
git 하위모듈gitsubmodule해당 없음(버전 없음)
GitHub Actions [2]github-actions해당 없음(버전 없음)
Go 모듈gomodv1
그라들 [3]gradle해당 없음(버전 없음)
Maven [4]maven해당 없음(버전 없음)
npmnpmv6, v7, v8
NuGetnuget<= 4.8[5]
pip[6]pipv21.1.2
pipenvpip<= 2021-05-29
pip-compile[6]pip6.1.0
poetrypipv1
pub [7]pubv2
Terraformterraform>= 0.13, <= 1.3.x
yarnnpmv1, v2, v3[8]

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

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

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

[2] Dependabot는 actions/checkout@v3과 같은 GitHub 리포지토리 구문을 사용하여 GitHub Actions에 대한 업데이트만 지원합니다. Docker Hub 및 GitHub Packages Container registry URL은 현재 지원되지 않습니다.

[3] Dependabot은(는) Gradle을 실행하지 않지만 파일 이름에 있는 dependencies 선언을 통해 apply 포함된 파일build.gradle, ( build.gradle.kts Kotlin 프로젝트의 경우) 파일에 대한 업데이트를 지원합니다. applyapply to, 재귀 또는 고급 구문(예: 속성에 의해 정의된 파일 이름인 mapOf와 함께 Kotlin의 apply)을 지원하지 않습니다.

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

[5] Dependabot는 NuGet CLI를 실행하지 않지만 버전 4.8까지 대부분의 기능을 지원합니다.

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

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

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

# Basic set up for three package managers

version: 2
updates:

  # Maintain dependencies for GitHub Actions
  - package-ecosystem: "github-actions"
    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에서 워크플로 파일을 확인하도록 /의 상대 디렉터리를 설정합니다.

# 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`
    directory: "/"
    schedule:
      interval: "weekly"

schedule.interval

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

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

version: 2
updates:

  - package-ecosystem: "github-actions"
    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 security updates 정보”를 참조하세요.

allow

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

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

  • dependency-name - 이름이 일치하는 종속성 업데이트를 허용하려면 사용합니다. 필요에 따라 0자 이상의 문자와 일치하도록 *를 사용합니다. Java 종속성의 경우 dependency-name 특성의 형식은 groupId:artifactId입니다(예: org.kohsuke:github-api).

  • dependency-type - 특정 형식의 종속성 업데이트를 허용하려면 사용합니다.

    종속성 유형지원하는 패키지 관리자업데이트 허용
    direct모두명시적으로 정의된 모든 종속성.
    indirectbundler, pip, composer, cargo, gomod직접 종속성의 종속성(하위 종속성 또는 일시적인 종속성이라고도 함)
    all모두명시적으로 정의된 모든 종속성. , , , , gomod,의 경우 bundler직접 종속성의 종속성도 있습니다. cargo``composer``pip
    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는 모든 커밋 메시지의 접두사를 지정합니다. 커밋 메시지에 접두사를 지정하면 GitHub은 정의된 접두사를 문자, 숫자, 닫는 괄호 또는 닫는 대괄호로 끝나는 경우 정의된 접두사와 커밋 메시지 사이에 콜론을 자동으로 추가합니다. 즉, 예를 들어 공백으로 접두사를 종료하면 접두사와 커밋 메시지 사이에 콜론이 추가되지 않습니다. 아래 코드 조각은 동일한 구성 파일에 있는 두 가지의 예제를 제공합니다.

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

  • include: "scope"는 접두사 뒤에 커밋에서 업데이트되는 종속성 목록이 오도록 지정합니다.

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 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"
      include: "scope"

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

pip dev: bump requests from 1.0.0 to 1.0.1

ignore

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

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

@dependabot ignoreignore 조건 만들기

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

리포지토리에서 "@dependabot ignore" in:comments를 검색하여 리포지토리에 저장된 ignore 기본 설정이 있는지 확인할 수 있습니다. 이런 방식으로 무시된 종속성의 무시를 해제하려는 경우 끌어오기 요청을 다시 엽니다.

@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, Bundler의 경우 ~> 2.0).
  • 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뿐입니다. 보안 업데이트는 이 설정의 영향을 받지 않습니다.

versionsupdate-types를 함께 사용할 경우 Dependabot은 두 집합의 모든 업데이트를 무시합니다.

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

# 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 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
      - dependency-name: "aws-sdk"
        update-types: ["version-update:semver-patch"]

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

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

insecure-external-code-execution

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

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

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

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를 사용합니다.

사용 가능한 다시 지정 전략

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

이 로 auto설정되면 rebase-strategy Dependabot는 다음 경우에 끌어오기 요청을 다시 지정하려고 시도합니다.

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

참고: Dependabot는 끌어오기 요청이 닫히거나 병합되거나 Dependabot updates을(를) 사용하지 않도록 설정할 때까지 끌어오기 요청을 무기한으로 다시 지정합니다.

이 로 disabled설정되면 rebase-strategy Dependabot에서 끌어오기 요청의 재지정을 중지합니다.

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

기본이 아닌 분기에서 버전 업데이트를 확인하는 데 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 설정을 포함해야 합니다. registries"*"로 설정하면 정의된 모든 레지스트리가 사용되도록 허용할 수 있습니다. 또는 업데이트에서 사용할 수 있는 레지스트리를 나열할 수 있습니다. 이렇게 하려면 dependabot.yml 파일의 최상위 registries 섹션에 정의된 레지스트리 이름을 사용합니다. 자세한 내용은 아래의 “프라이빗 레지스트리에 대한 구성 옵션”을 참조하세요.

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은 버전 업데이트를 위해 매니페스트 파일을 편집할 때 다음과 같은 전반적인 전략을 사용합니다.

  • 앱의 경우 버전 요구 사항이 증가합니다(예: npm, pip, Composer).
  • 라이브러리의 경우 버전 범위가 확장됩니다(예: Bundler, Cargo).

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

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

사용 가능한 업데이트 전략

옵션지원 요소작업
lockfile-onlybundler, cargo, composer, mix, npm, pip잠금 파일을 업데이트하기 위한 끌어오기 요청만 만듭니다. 패키지 매니페스트 변경이 필요한 새 버전은 무시합니다.
autobundler, cargo, composer, mix, npm, pip위에서 설명한 기본 전략을 따릅니다.
widencomposer, npm가능하면 새 버전과 이전 버전을 모두 포함하도록 버전 요구 사항을 완화합니다.
increasebundler, composer, npm, pip항상 새 버전과 일치하도록 버전 요구 사항을 높입니다.
increase-if-necessarybundler, composer, npm, pip새 버전에 필요한 경우에만 버전 요구 사항을 높입니다.
# Customize the manifest version strategy

version: 2
updates:
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    # Update the npm manifest file to relax
    # the version requirements
    versioning-strategy: widen

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

  - package-ecosystem: "pip"
    directory: "/"
    schedule:
      interval: "weekly"
    # Only allow updates to the lockfile for pip and
    # ignore any version updates that affect the manifest
    versioning-strategy: lockfile-only

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

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

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

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레지스트리의 형식을 식별합니다. 아래의 전체 형식 목록을 참조하세요.
url이 레지스트리의 종속성에 액세스하는 데 사용할 URL입니다. 프로토콜은 선택 사항입니다. 지정되지 않으면 https://가 가정됩니다. Dependabot은 필요에 따라 후행 슬래시를 추가하거나 무시합니다.
usernameDependabot이 레지스트리에 액세스하는 데 사용하는 사용자 이름입니다.
password지정된 사용자의 암호를 포함하는 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 “Dependabot에 대한 암호화된 비밀 관리”를 참조하세요.
key이 레지스트리의 액세스 키가 포함된 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 “Dependabot에 대한 암호화된 비밀 관리”를 참조하세요.
token이 레지스트리의 액세스 토큰이 포함된 Dependabot 비밀에 대한 참조입니다. 자세한 내용은 “Dependabot에 대한 암호화된 비밀 관리”를 참조하세요.
replaces-base레지스트리의 경우 부울 값이 true이면 Dependabot은 특정 에코시스템의 기본 URL이 아닌 지정된 URL을 사용하여 종속성을 해결합니다. 예를 들어 , 가 있는 레지스트리 type: python-index의 경우 부울 값이 이면 pip는 truePython 패키지 인덱스의 기본 URL 대신 지정된 URL을 사용하여 종속성을 확인합니다(기본적으로 https://pypi.org/simple).

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

composer-repository

composer-repository 유형은 사용자 이름 및 암호를 지원합니다.

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

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

registries:
  github-octocat:
    type: git
    url: https://github.com
    username: x-access-token
    password: ${{secrets.MY_GITHUB_PERSONAL_TOKEN}}

hex-organization

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

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 는 Hex에서 프라이빗 리포지토리와의 신뢰를 설정하는 데 사용됩니다. 필드를 public-key-fingerprint 일반 텍스트로 나열하거나 Dependabot 비밀로 저장할 수 있습니다.

registries:
   github-hex-repository:
     type: hex-repository
     repo: private-repo
     url: https://private-repo.example.com
     auth-key: ${{secrets.MY_AUTH_KEY}}
     public-key-fingerprint: ${{secrets.MY_PUBLIC_KEY_FINGERPRINT}}

maven-repository

maven-repository 유형은 사용자 이름 및 암호를 지원합니다.

registries:
  maven-artifactory:
    type: maven-repository
    url: https://artifactory.example.com
    username: octocat
    password: ${{secrets.MY_ARTIFACTORY_PASSWORD}}
    replaces-base: true

npm-registry

npm-registry 유형은 사용자 이름 및 암호 또는 토큰을 지원합니다.

사용자 이름 및 암호를 사용하는 경우 .npmrc의 인증 토큰에 base64로 인코드된 _password가 포함될 수 있습니다. 그러나 Dependabot 구성 파일에서 참조된 암호는 원래(인코드되지 않은) 암호여야 합니다.

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 유형은 사용자 이름 및 암호 또는 토큰을 지원합니다.

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 유형은 사용자 이름 및 암호 또는 토큰을 지원합니다.

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 유형은 사용자 이름 및 암호 또는 토큰을 지원합니다.

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

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