Skip to main content

Dependabot 버전 업데이트 구성

Dependabot이 사용하는 패키지를 자동으로 업데이트할 수 있도록 리포지토리를 구성할 수 있습니다.

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

People with write permissions to a repository can enable or disable Dependabot version updates for the repository.

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

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

종속성에 대한 버전 업데이트 정보

dependabot.yml 구성 파일을 리포지토리의 .github 디렉터리에 체크 인하여 Dependabot version updates를 사용하도록 설정합니다. 그러면 Dependabot에서 끌어오기 요청을 생성하여 구성한 종속성을 최신 상태로 유지합니다. 업데이트하려는 각 패키지 관리자의 종속성에 대해 패키지 매니페스트 파일의 위치와 해당 파일에 나열된 종속성의 업데이트를 확인하는 빈도를 지정해야 합니다. 보안 업데이트를 사용하도록 설정하는 방법에 대한 자세한 내용은 "Dependabot 보안 업데이트 구성."을(를) 참조하세요.

버전 업데이트를 처음 사용하면 오래된 종속성이 많을 수 있으며 일부 종속성은 최신 버전보다 많이 이전 버전일 수 있습니다. 사용하면 Dependabot은 즉시 오래된 종속성을 확인합니다. 업데이트를 구성하는 매니페스트 파일의 수에 따라 구성 파일을 추가한 후 몇 분 내에 버전 업데이트에 대한 새 끌어오기 요청이 표시될 수 있습니다. Dependabot은 구성 파일의 후속 변경 내용에 대한 업데이트도 실행합니다.

끌어오기 요청을 관리하기 쉽고 검토하기 쉽도록 Dependabot은 최대 5개의 끌어오기 요청을 발생시키고 종속성을 최신 버전으로 가져오기 시작합니다. 다음으로 예약된 업데이트 전에 첫 번째 끌어오기 요청 중 일부를 병합하는 경우 다음 업데이트에서 나머지 끌어오기 요청이 최대치까지 열립니다. open-pull-requests-limit 구성 옵션을 설정하여 열려 있는 끌어오기 요청의 최대 수를 변경할 수 있습니다.

표시되는 끌어오기 요청 수를 더 줄이기 위해 groups 구성 옵션을 사용하여 종속성 집합을 함께 그룹화할 수 있습니다(패키지 에코시스템당). 그런 다음 Dependabot은(는) 그룹에서 가능한 한 많은 종속성을 동시에 최신 버전으로 업데이트하는 단일 끌어오기 요청을 발생합니다. 자세한 내용은 “종속성 업데이트 사용자 지정”을(를) 참조하세요.

구성이 잘못되었거나 호환되지 않는 버전으로 인해 Dependabot 실행이 실패한 경우가 있습니다. 15 번의 실행이 실패한 후 Dependabot version updates은(는) 종속성 그래프 업데이트에 대한 검사를 수동으로 트리거하거나 후속 예약 실행을 건너뜁니다. Dependabot security updates은(는) 평소와 같이 실행됩니다.

기본적으로 매니페스트에 명시적으로 정의된 직접 종속성만이 Dependabot version updates를 통해 최신 상태로 유지됩니다. 잠금 파일에 정의된 간접 종속성에 대한 업데이트를 수신하도록 선택할 수 있습니다. 자세한 내용은 "dependentabot.yml 파일 구성 옵션"을(를) 참조하세요.

보안 또는 버전 업데이트를 실행할 때 일부 에코시스템은 원본의 모든 종속성을 확인하여 업데이트에 성공했는지 확인할 수 있어야 합니다. 매니페스트 또는 잠금 파일에 프라이빗 종속성이 포함된 경우 Dependabot은 해당 종속성이 호스트된 위치에 액세스할 수 있어야 합니다. 조직 소유자는 동일한 조직 내 프로젝트의 종속성이 포함된 프라이빗 리포지토리에 대한 액세스 권한을 Dependabot에 부여할 수 있습니다. 자세한 내용은 "조직의 보안 및 분석 설정 관리"을(를) 참조하세요. 리포지토리의 dependabot.yml 구성 파일에서 프라이빗 레지스트리에 대한 액세스를 구성할 수 있습니다. 자세한 내용은 "dependentabot.yml 파일 구성 옵션"을(를) 참조하세요. 또한 Dependabot은 모든 패키지 관리자에 대한 프라이빗 GitHub 종속성을 지원하지 않습니다. 자세한 내용은 "Dependabot 지원 에코시스템 및 리포지토리" 및 "GitHub 언어 지원" 항목을 참조하세요.

Dependabot version updates 사용

dependabot.yml 구성 파일을 리포지토리에 커밋하여 Dependabot version updates을(를) 사용하도록 설정하세요.

  1. 리포지토리의 .github 디렉터리에 dependabot.yml 구성 파일을 만드세요. 아래의 코드 조각을 시작점으로 사용하면 됩니다. For information about the options you can use to customize how Dependabot maintains your repositories, see "dependentabot.yml 파일 구성 옵션."

    YAML
    # To get started with Dependabot version updates, you'll need to specify which
    # package ecosystems to update and where the package manifests are located.
    
    version: 2
    updates:
    - package-ecosystem: "" # See documentation for possible values
      directory: "/" # Location of package manifests
      schedule:
        interval: "weekly"
    
  2. version을 추가합니다. 이 키는 필수입니다. 파일은 version: 2로 시작해야 합니다.

  3. 필요에 따라 개인 레지스트리에 종속성이 있는 경우 인증 세부 정보가 포함된 registries 섹션을 추가합니다. 자세한 내용은 "dependabot.yml 파일의 구성 옵션"의 registries를 참조하세요.

  4. Dependabot에서 모니터링할 각 패키지 관리자에 대한 항목이 포함된 updates 섹션을 추가합니다. 이 키는 필수입니다. 이 키를 사용하여 Dependabot이(가) 버전 또는 프로젝트 종속성을 업데이트하는 방법을 구성합니다. 각 항목은 특정 패키지 관리자에 대한 업데이트 설정을 구성합니다.

  5. 각 패키지 관리자에 대해 다음을 사용합니다.

    • package-ecosystem - 패키지 관리자를 지정합니다. 지원되는 패키지 관리자에 관한 자세한 내용은 "dependabot.yml 파일의 구성 옵션"의 package-ecosystem을 참조하세요.
    • directory - 매니페스트 또는 기타 정의 파일의 위치를 지정합니다. 자세한 내용은 "dependabot.yml 파일의 구성 옵션"의 directory를 참조하세요.
    • directories는 여러 매니페스트 또는 다른 정의 파일의 위치를 지정합니다. 자세한 내용은 "dependabot.yml 파일 구성 옵션"의 directories를 참조하세요.
    • schedule.interval - 새 버전을 확인하는 빈도를 지정합니다. 자세한 내용은 "dependabot.yml 파일의 구성 옵션"의 schedule.interval를 참조하세요.
  6. 리포지토리의 .github 디렉터리에 있는 dependabot.yml 구성 파일을 확인합니다.

예제 dependabot.yml 파일

아래의 예제 dependabot.yml 파일은 두 패키지 관리자(npm 및 Docker)에 대한 버전 업데이트를 구성합니다. 이 파일을 체크 인하면 Dependabot은 기본 분기의 매니페스트 파일에서 오래된 종속성을 확인합니다. 오래된 종속성이 발견되면 기본 분기에 대한 끌어오기 요청이 발생하여 종속성을 업데이트합니다.

# Basic `dependabot.yml` file with
# minimum configuration for two package managers

version: 2
updates:
  # Enable version updates for npm
  - package-ecosystem: "npm"
    # Look for `package.json` and `lock` files in the `root` directory
    directory: "/"
    # Check the npm registry for updates every day (weekdays)
    schedule:
      interval: "daily"

  # Enable version updates for Docker
  - package-ecosystem: "docker"
    # Look for a `Dockerfile` in the `root` directory
    directory: "/"
    # Check for updates once a week
    schedule:
      interval: "weekly"

위의 예제에서 Docker 종속성이 매우 오래된 경우 종속성이 최신 상태가 될 때까지 daily 일정으로 시작한 다음, 주별 일정으로 다시 줄일 수 있습니다.

포크에서 버전 업데이트 사용

포크에서 버전 업데이트를 사용하도록 설정하려는 경우 추가 단계가 있습니다. dependabot.yml 구성 파일이 있으면 포크에서 버전 업데이트가 자동으로 사용되지 않습니다. 이렇게 하면 포크 소유자가 원래 리포지토리에서 dependabot.yml 구성 파일을 포함한 변경 내용을 가져올 때 의도치 않게 버전 업데이트를 사용하도록 설정하지 않습니다.

또한 포크에서 Dependabot을 사용하도록 명시적으로 설정해야 합니다.

  1. GitHub에서 리포지토리의 기본 페이지로 이동합니다.

  2. 리포지토리 이름 아래에서 Settings(설정)를 클릭합니다. "설정" 탭이 표시되지 않으면 드롭다운 메뉴를 선택한 다음 설정을 클릭합니다.

    탭을 보여 주는 리포지토리 헤더의 스크린샷. "설정" 탭이 진한 주황색 윤곽선으로 강조 표시됩니다.

  3. 사이드바의 "보안" 섹션에서 코드 보안 및 분석을 클릭합니다.

  4. “Dependabot version updates” 오른쪽의 "보안 및 분석 코드"에서 사용을 클릭하여 Dependabot이(가) 버전 업데이트를 시작하도록 허용합니다.

버전 업데이트 상태 확인

버전 업데이트를 사용하도록 설정하면 리포지토리에 대한 종속성 그래프의 Dependabot 탭이 채워집니다. 이 탭에는 Dependabot이 모니터링하도록 구성된 패키지 관리자와 Dependabot이 새 버전을 마지막으로 확인한 시기가 표시됩니다.

종속성 그래프 페이지의 스크린샷. Dependabot 탭이 주황색 윤곽선으로 강조 표시됩니다.

자세한 내용은 "버전 업데이트에 구성된 종속성 나열" 항목을 참조하세요.

Dependabot version updates 사용 안 함

리포지토리에서 dependabot.yml 파일을 삭제하면 버전 업데이트를 완전히 사용하지 않도록 설정할 수 있습니다. 하나 이상의 종속성 또는 패키지 관리자에 대해 업데이트를 일시적으로 사용하지 않도록 설정하는 것이 더 일반적입니다.

  • 패키지 관리자: open-pull-requests-limit: 0을 설정하거나 구성 파일에서 관련 package-ecosystem을 주석으로 처리하여 사용하지 않도록 설정합니다.
  • 특정 종속성: 업데이트에서 제외하려는 패키지 또는 애플리케이션에 대해 ignore 특성을 추가하여 사용하지 않도록 설정합니다.

종속성을 사용하지 않도록 설정할 때 와일드카드를 사용하여 관련 라이브러리 집합을 찾을 수 있습니다. 제외할 버전을 지정할 수도 있습니다. 이 기능은 라이브러리 업데이트를 차단하여 API에 대한 호환성이 손상되는 변경을 지원하는 작업을 보류해야 하지만 사용하는 버전에 대한 보안 수정을 가져오려는 경우에 특히 유용합니다.

일부 종속성에 대해 버전 업데이트를 사용하지 않도록 설정하는 예제

아래의 예제 dependabot.yml 파일에는 다른 업데이트는 계속 허용하면서 일부 종속성에 대한 업데이트를 사용하지 않도록 설정하는 다양한 방법의 예제가 포함되어 있습니다.

# `dependabot.yml` file with updates
# disabled for Docker and limited for npm

version: 2
updates:
  # Configuration for Dockerfile
  - package-ecosystem: "docker"
    directory: "/"
    schedule:
      interval: "weekly"
      # Disable all pull requests for Docker dependencies
    open-pull-requests-limit: 0

  # Configuration for npm
  - package-ecosystem: "npm"
    directory: "/"
    schedule:
      interval: "weekly"
    ignore:
      # Ignore updates to packages that start with 'aws'
      # Wildcards match zero or more arbitrary characters
      - dependency-name: "aws*"
      # Ignore some updates to the 'express' package
      - dependency-name: "express"
        # Ignore only new versions for 4.x and 5.x
        versions: ["4.x", "5.x"]
      # For all packages, ignore all patch updates
      - dependency-name: "*"
        update-types: ["version-update:semver-patch"]

기존 무시 기본 설정 확인에 대한 자세한 내용은 "dependentabot.yml 파일 구성 옵션"을(를) 참조하세요.