dependabot.yml
파일에 옵션을 추가하여 Dependabot 구성을 필요에 맞게 사용자 지정할 수 있습니다. 예를 들어, Dependabot이 올바른 패키지 매니페스트 파일을 사용하고 유지 관리하려는 종속성만 업데이트하는지 확인할 수 있습니다.
이 문서에서는 유용할 수 있는 사용자 지정 옵션을 정리합니다.
매니페스트 파일에 대한 여러 위치 정의
둘 이상의 위치에 저장된 매니페스트 파일에 Dependabot version updates를 사용하도록 설정하려면 directory
대신 directories
을(를) 사용할 수 있습니다. 예를 들어 이 구성은 서로 다른 디렉터리에 저장된 매니페스트 파일에 대해 두 가지 다른 업데이트 일정을 설정합니다.
# Specify the locations of the manifest files to update for each package manager # using both `directories` and `directory` version: 2 updates: - package-ecosystem: "bundler" # Update manifest files stored in these directories weekly directories: - "/frontend" - "/backend" - "/admin" schedule: interval: "weekly" - package-ecosystem: "bundler" # Update manifest files stored in the root directory daily directory: "/" schedule: interval: "daily"
# Specify the locations of the manifest files to update for each package manager
# using both `directories` and `directory`
version: 2
updates:
- package-ecosystem: "bundler"
# Update manifest files stored in these directories weekly
directories:
- "/frontend"
- "/backend"
- "/admin"
schedule:
interval: "weekly"
- package-ecosystem: "bundler"
# Update manifest files stored in the root directory daily
directory: "/"
schedule:
interval: "daily"
-
패턴을 사용하여 디렉터리 범위를 지정하려면
YAML # Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"
# Specify the root directory and directories that start with "lib-", # using globbing, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "/" - "/lib-*" schedule: interval: "weekly"
-
현재 디렉터리 및 재귀 하위 디렉터리에서 매니페스트를 지정하려면
YAML # Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
# Specify all directories from the current layer and below recursively, # using globstar, for locations of manifest files version: 2 updates: - package-ecosystem: "composer" directories: - "**/*" schedule: interval: "weekly"
특정 종속성 무시
프로젝트의 특정 종속성 변경 내용을 채택할 준비가 되지 않은 경우, 버전 업데이트 및 보안 업데이트에 대한 끌어오기 요청을 열 때 해당 종속성을 무시하도록 Dependabot을 구성할 수 있습니다. 다음 방법 중 하나를 사용하여 이 작업을 수행할 수 있습니다.
dependabot.yml
파일의 종속성에 대한ignore
옵션을 구성합니다.- 이를 사용하여 특정 종속성, 버전과 업데이트 유형에 대한 업데이트를 무시할 수 있습니다.
- 자세한 내용은 Dependabot 옵션 참조.의
ignore
를 참조하세요.
- 버전 업데이트 및 보안 업데이트에 대한 Dependabot 끌어오기 요청에
@dependabot ignore
주석 명령을 사용하세요.- 주석 명령을 사용하여 특정 종속성과 버전에 대한 업데이트를 무시할 수 있습니다.
- 자세한 내용은 종속성 업데이트에 대한 끌어오기 요청 관리을(를) 참조하세요.
다음 예제는 ignore
을(를) 사용하여 업데이트되는 종속성을 사용자 지정하는 방법을 보여줍니다.
-
특정 버전 이외의 업데이트 무시
YAML ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
ignore: - dependency-name: "lodash:*" # Ignore versions of Lodash that are equal to or greater than 1.0.0 versions: [ ">=1.0.0" ]
YAML ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
ignore: - dependency-name: "sphinx" versions: [ "[1.1,)" ]
-
패치 업데이트 무시
YAML ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
ignore: - dependency-name: "@types/node" # Ignore patch updates for Node update-types: ["version-update:semver-patch"]
-
특정 버전이나 버전 범위를 무시하려면 특정 버전이나 버전 범위 무시를 참조하세요.
종속성이나 무시 조건 무시하기를 취소하려면 dependabot.yml
파일에서 무시 조건을 삭제하거나 끌어오기 요청을 다시 열 수 있습니다.
그룹화된 업데이트에 대한 끌어오기 요청의 경우 @dependabot unignore
주석 명령을 사용할 수도 있습니다. @dependabot unignore
주석 명령을 사용하면 Dependabot 끌어오기 요청에 주석을 달아 다음을 수행할 수 있습니다.
- 특정 무시 조건 무시하기 취소
- 특정 종속성 무시하기 취소
- Dependabot 끌어오기 요청의 모든 종속성에 대한 모든 무시 조건 무시하기 취소
자세한 내용은 종속성 업데이트에 대한 끌어오기 요청 관리을(를) 참조하세요.
특정 종속성을 업데이트할 수 있도록 허용
allow
을(를) 사용하면 유지 관리하려는 종속성에 대해 Dependabot에 알릴 수 있습니다. allow
은(는) 일반적으로 ignore
과(와) 함께 사용됩니다.
자세한 내용은 Dependabot 옵션 참조.의 allow
를 참조하세요.
기본적으로 Dependabot은 매니페스트에 명시적으로 정의된 종속성(direct
dependencies)에 대해서만 버전 업데이트 끌어오기 요청을 만듭니다. 이 구성에서는 allow
을(를) 사용하여 Dependabot에 all
유형의 종속성을 유지하도록 요청합니다. 즉, direct
종속성 및 해당 종속성(간접 종속성, 하위 종속성 또는 일시적인 종속성이라고도 함)입니다. 또한, 구성에서는 Dependabot이 패턴 org.xwiki.*
과(와) 일치하는 이름을 가진 모든 종속성을 무시하도록 지시합니다. 이는 종속성을 유지 관리하는 다른 프로세스가 있기 때문입니다.
Tip
Dependabot는 허용된 모든 종속성을 확인한 후 무시된 종속성을 필터링합니다. 종속성이 allow 및 ignore 문으로 일치하면 해당 종속성은 무시됩니다.
version: 2 registries: # Helps find updates for non Maven Central dependencies maven-xwiki-public: type: maven-repository url: https://nexus.xwiki.org/nexus/content/groups/public/ username: "" password: "" # Required to resolve xwiki-common SNAPSHOT parent pom maven-xwiki-snapshots: type: maven-repository url: https://maven.xwiki.org/snapshots username: "" password: "" updates: - package-ecosystem: "maven" directory: "/" registries: - maven-xwiki-public - maven-xwiki-snapshots schedule: interval: "weekly" allow: # Allow both direct and indirect updates for all packages. - dependency-type: "all" ignore: # Ignore XWiki dependencies. We have a separate process for updating them - dependency-name: "org.xwiki.*" open-pull-requests-limit: 15
version: 2
registries:
# Helps find updates for non Maven Central dependencies
maven-xwiki-public:
type: maven-repository
url: https://nexus.xwiki.org/nexus/content/groups/public/
username: ""
password: ""
# Required to resolve xwiki-common SNAPSHOT parent pom
maven-xwiki-snapshots:
type: maven-repository
url: https://maven.xwiki.org/snapshots
username: ""
password: ""
updates:
- package-ecosystem: "maven"
directory: "/"
registries:
- maven-xwiki-public
- maven-xwiki-snapshots
schedule:
interval: "weekly"
allow:
# Allow both direct and indirect updates for all packages.
- dependency-type: "all"
ignore:
# Ignore XWiki dependencies. We have a separate process for updating them
- dependency-name: "org.xwiki.*"
open-pull-requests-limit: 15
특정 버전 또는 버전 범위 무시
versions
을(를) ignore
과(와) 함께 사용하면 특정 버전이나 버전 범위를 무시할 수 있습니다.
자세한 내용은 Dependabot 옵션 참조.의 versions
를 참조하세요.
-
특정 버전을 무시하려면
YAML ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
ignore: - dependency-name: "django*" # Ignore version 11 versions: [ "11" ]
-
버전 범위를 무시하려면
YAML ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
ignore: - dependency-name: "@types/node" versions: ["15.x", "14.x", "13.x"] - dependency-name: "xdg-basedir" # 5.0.0 has breaking changes as they switch to named exports # and convert the module to ESM # We can't use it until we switch to ESM across the project versions: ["5.x"] - dependency-name: "limiter" # 2.0.0 has breaking changes # so we want to delay updating. versions: ["2.x"]
무시할 유의적 버전 수준 지정
update-types
을(를) 사용하여 무시할 하나 이상의 유의적 버전(SemVer) 수준을 지정할 수 있습니다.
자세한 내용은 Dependabot 옵션 참조.의 update-types
를 참조하세요.
이 예제에서 Dependabot은 노드의 패치 버전을 무시합니다.
version: 2 updates: - package-ecosystem: "npm" directory: "/" schedule: interval: "daily" 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" - dependency-name: "@types/node" # For Node types, ignore any patch versions update-types: ["version-update:semver-patch"]
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
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"
- dependency-name: "@types/node"
# For Node types, ignore any patch versions
update-types: ["version-update:semver-patch"]
버전 관리 전략 정의
기본적으로 Dependabot은 앱으로 식별한 종속성에 대한 최소 버전 요구 사항을 늘리고 라이브러리로 식별한 종속성에 대한 새 버전과 이전 버전을 모두 포함하도록 허용 버전 요구 사항을 확대합니다.
이 기본 전략을 변경할 수 있습니다. 자세한 내용은 Dependabot 옵션 참조.의 versioning-strategy
를 참조하세요.
이 예제에서 Dependabot은 앱과 라이브러리 모두에 대한 새 버전과 일치하도록 최소 버전 요구 사항을 늘립니다.
version: 2 updates: - package-ecosystem: npm directory: "/" schedule: interval: daily # Increase the minimum version for all npm dependencies versioning-strategy: increase
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
# Increase the minimum version for all npm dependencies
versioning-strategy: increase
이 예제에서 Dependabot은 원래 제약 조건이 새 버전을 허용하지 않는 경우에만 최소 버전 요구 사항을 늘립니다.
version: 2 updates: - package-ecosystem: pip directory: "/" schedule: interval: daily open-pull-requests-limit: 20 rebase-strategy: "disabled" # Increase the version requirements for npm # only when required versioning-strategy: increase-if-necessary
version: 2
updates:
- package-ecosystem: pip
directory: "/"
schedule:
interval: daily
open-pull-requests-limit: 20
rebase-strategy: "disabled"
# Increase the version requirements for npm
# only when required
versioning-strategy: increase-if-necessary
공급업체 종속성 업데이트
Dependabot을 업데이트할 때 공급업체별 종속성을 지시할 수 있습니다.
Dependabot은 Go 모듈에 대한 공급업체 종속성을 자동으로 유지 관리하며, 번들러를 구성하여 공급업체 종속성도 업데이트할 수 있습니다.
자세한 내용은 Dependabot 옵션 참조.의 vendor
를 참조하세요.
이 예제에서 vendor
은 번들러에 대해 true
로 설정되며, 이는 Dependabot도 리포지토리의 공급업체/캐시 디렉터리에 저장된 번들러에 대한 종속성을 유지한다는 것을 의미합니다.
version: 2 updates: - package-ecosystem: bundler directory: "/" # Vendoring Bundler vendor: true schedule: interval: weekly day: saturday open-pull-requests-limit: 10
version: 2
updates:
- package-ecosystem: bundler
directory: "/"
# Vendoring Bundler
vendor: true
schedule:
interval: weekly
day: saturday
open-pull-requests-limit: 10