Skip to main content

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

Dependabot에서 업데이트되는 종속성 제어

지정한 패키지를 정의한 방식대로 Dependabot에서 자동으로 업데이트하도록 dependabot.yml 파일을 구성하는 방법을 알아봅니다.

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

Users with write access

dependabot.yml 파일에 옵션을 추가하여 Dependabot 구성을 필요에 맞게 사용자 지정할 수 있습니다. 예를 들어, Dependabot이 올바른 패키지 매니페스트 파일을 사용하고 유지 관리하려는 종속성만 업데이트하는지 확인할 수 있습니다.

이 문서에서는 유용할 수 있는 사용자 지정 옵션을 정리합니다.

특정 종속성 무시

프로젝트의 특정 종속성 변경 내용을 채택할 준비가 되지 않은 경우, 버전 업데이트에 대한 끌어오기 요청을 열 때 해당 종속성을 무시하도록 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" ]
    
    YAML
    ignore:
      - dependency-name: "sphinx"
        versions: [ "[1.1,)" ]
    
  • 패치 업데이트 무시

    YAML
    ignore:
      - dependency-name: "@types/node"
        # Ignore patch updates for Node
        update-types: ["version-update:semver-patch"]
    
  • 특정 버전이나 버전 범위를 무시하려면 특정 버전이나 버전 범위 무시를 참조하세요.

종속성이나 무시 조건 무시하기를 취소하려면 dependabot.yml 파일에서 무시 조건을 삭제하거나 끌어오기 요청을 다시 열 수 있습니다.

특정 종속성을 업데이트할 수 있도록 허용

allow을(를) 사용하면 유지 관리하려는 종속성에 대해 Dependabot에 알릴 수 있습니다. allow은(는) 일반적으로 ignore과(와) 함께 사용됩니다.

자세한 내용은 Dependabot 옵션 참조.의 allow를 참조하세요.

기본적으로 Dependabot은 매니페스트에 명시적으로 정의된 종속성(direct dependencies)에 대해서만 버전 업데이트 끌어오기 요청을 만듭니다. 이 구성에서는 allow을(를) 사용하여 Dependabot에 all 유형의 종속성을 유지하도록 요청합니다. 즉, direct 종속성 및 해당 종속성(간접 종속성, 하위 종속성 또는 일시적인 종속성이라고도 함)입니다. 또한, 구성에서는 Dependabot이 패턴 org.xwiki.*과(와) 일치하는 이름을 가진 모든 종속성을 무시하도록 지시합니다. 이는 종속성을 유지 관리하는 다른 프로세스가 있기 때문입니다.

Tip

Dependabot는 허용된 모든 종속성을 확인한 후 무시된 종속성을 필터링합니다. 종속성이 allowignore 문으로 일치하면 해당 종속성은 무시됩니다.

YAML
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" ]
    
  • 버전 범위를 무시하려면

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

무시할 유의적 버전 수준 지정

update-types을(를) 사용하여 무시할 하나 이상의 유의적 버전(SemVer) 수준을 지정할 수 있습니다.

자세한 내용은 Dependabot 옵션 참조.의 update-types를 참조하세요.

이 예제에서 Dependabot은 노드의 패치 버전을 무시합니다.

YAML
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은 앱과 라이브러리 모두에 대한 새 버전과 일치하도록 최소 버전 요구 사항을 늘립니다.

YAML
version: 2
updates:
  - package-ecosystem: npm
    directory: "/"
    schedule:
      interval: daily
    # Increase the minimum version for all npm dependencies
    versioning-strategy: increase

이 예제에서 Dependabot은 원래 제약 조건이 새 버전을 허용하지 않는 경우에만 최소 버전 요구 사항을 늘립니다.

YAML
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도 리포지토리의 공급업체/캐시 디렉터리에 저장된 번들러에 대한 종속성을 유지한다는 것을 의미합니다.

YAML
version: 2
updates:
- package-ecosystem: bundler
  directory: "/"
  # Vendoring Bundler
  vendor: true
  schedule:
    interval: weekly
    day: saturday
  open-pull-requests-limit: 10