Dependabot version updates 정보
Dependabot은 종속성을 유지 관리하지 않습니다. Dependabot을 사용하여 리포지토리가 종속된 패키지 및 애플리케이션의 최신 릴리스로 최신 상태를 자동으로 유지하도록 할 수 있습니다.
dependabot.yml
구성 파일을 리포지토리로 체크 인하여 Dependabot version updates를 사용하도록 설정합니다. 구성 파일은 리포지토리에 저장된 매니페스트 또는 다른 패키지 정의 파일의 위치를 지정합니다. Dependabot은 이 정보를 사용하여 오래된 패키지와 애플리케이션을 확인합니다. Dependabot은 종속성의 의미 체계 버전 관리(semver)를 보고 새 버전의 종속성이 있는지 확인하여 해당 버전으로 업데이트할지 여부를 결정합니다. 특정 패키지 관리자의 경우 Dependabot version updates에서 벤더링도 지원합니다. 벤더링된(또는 캐시된) 종속성은 매니페스트에서 참조되는 대신 리포지토리의 특정 디렉터리에 체크 인된 종속성입니다. 벤더링된 종속성은 패키지 서버를 사용할 수 없는 경우에도 빌드 타임에 사용할 수 있습니다. 벤더링된 종속성의 새 버전을 확인하고 필요한 경우 업데이트하도록 Dependabot version updates를 구성할 수 있습니다.
오래된 종속성이 확인되면 Dependabot은 매니페스트를 최신 버전의 종속성으로 업데이트하기 위한 끌어오기 요청을 수행합니다. 벤더링된 종속성의 경우 Dependabot은 오래된 종속성을 새 버전으로 직접 바꾸기 위한 끌어오기 요청을 수행합니다. 테스트를 통과했는지 확인하고 끌어오기 요청 요약에 포함된 변경 로그 및 릴리스 정보를 검토한 다음, 병합합니다. 자세한 내용은 "Dependabot 버전 업데이트 구성"을(를) 참조하세요.
_보안 업데이트_를 사용하도록 설정하면 Dependabot에서 취약한 종속성을 업데이트하기 위한 끌어오기 요청도 수행합니다. 자세한 내용은 "Dependabot 보안 업데이트 정보"을(를) 참조하세요.
Dependabot에서 끌어오기 요청이 발생하면 이러한 끌어오기 요청은 보안 또는 버전 업데이트를 위한 것일 수 있습니다.
- Dependabot security updates 은(는) 알려진 취약성으로 종속성을 업데이트하는 데 도움이 되는 자동화된 끌어오기 요청입니다.
- Dependabot version updates 은(는) 취약성이 없더라도 종속성을 업데이트된 상태로 유지하는 자동화된 끌어오기 요청입니다. 버전 업데이트 상태를 확인하려면 리포지토리의 인사이트 탭으로 이동한 다음 종속성 그래프 및 Dependabot(으)로 이동합니다.
GitHub Actions은(는) Dependabot version updates 및 Dependabot security updates이(가) GitHub에서 실행하기 위해 필요하지 않습니다. 그러나 Dependabot에서 연 끌어오기 요청은 작업을 실행하는 워크플로를 트리거할 수 있습니다. 자세한 내용은 "GitHub Actions를 통한 Dependabot 자동화"을 참조하세요.
Dependabot 및 모든 관련 기능에는 GitHub의 서비스 약관이 적용됩니다.
Dependabot 끌어오기 요청 빈도
구성 파일을 통해 각 에코시스템에서 새 버전을 확인하는 빈도를 지정합니다(매일, 매주 또는 매월).
버전 업데이트를 처음 사용하면 오래된 종속성이 많을 수 있으며 일부 종속성은 최신 버전보다 많이 이전 버전일 수 있습니다. 사용하면 Dependabot은 즉시 오래된 종속성을 확인합니다. 업데이트를 구성하는 매니페스트 파일의 수에 따라 구성 파일을 추가한 후 몇 분 내에 버전 업데이트에 대한 새 끌어오기 요청이 표시될 수 있습니다. Dependabot은 구성 파일의 후속 변경 내용에 대한 업데이트도 실행합니다.
끌어오기 요청을 관리하기 쉽고 검토하기 쉽도록 Dependabot은 최대 5개의 끌어오기 요청을 발생시키고 종속성을 최신 버전으로 가져오기 시작합니다. 다음으로 예약된 업데이트 전에 첫 번째 끌어오기 요청 중 일부를 병합하는 경우 다음 업데이트에서 나머지 끌어오기 요청이 최대치까지 열립니다. open-pull-requests-limit
구성 옵션을 설정하여 열려 있는 끌어오기 요청의 최대 수를 변경할 수 있습니다.
표시되는 끌어오기 요청 수를 더 줄이기 위해 groups
구성 옵션을 사용하여 종속성 집합을 함께 그룹화할 수 있습니다(패키지 에코시스템당). 그런 다음 Dependabot은(는) 그룹에서 가능한 한 많은 종속성을 동시에 최신 버전으로 업데이트하는 단일 끌어오기 요청을 발생합니다. 자세한 내용은 “종속성 업데이트 사용자 지정”을 참조하세요.
보안 업데이트를 사용하도록 설정한 경우 보안 업데이트를 위한 추가 끌어오기 요청이 표시되는 경우도 있습니다. 이 끌어오기 요청은 기본 분기에 대한 종속성과 관련된 Dependabot 경고로 트리거됩니다. Dependabot에서 취약한 종속성을 업데이트하기 위한 끌어오기 요청을 자동으로 수행합니다.
구성이 잘못되었거나 호환되지 않는 버전으로 인해 Dependabot 실행이 실패한 경우가 있습니다. 30번의 실행이 실패한 후 Dependabot version updates은(는) 종속성 그래프 업데이트에 대한 검사를 수동으로 트리거하거나 후속 예약 실행을 건너뜁니다. Dependabot security updates은(는) 평소와 같이 실행됩니다.
지원되는 리포지토리 및 에코시스템
지원되는 패키지 관리자 중 하나의 종속성 매니페스트 또는 잠금 파일이 포함된 리포지토리에 대해 버전 업데이트를 구성할 수 있습니다. 일부 패키지 관리자의 경우 종속성 벤더링도 구성할 수 있습니다. 자세한 내용은 "dependabot.yml 파일에 대한 구성 옵션"을(를) 참조하세요.
참고: 보안 또는 버전 업데이트를 실행할 때 일부 에코시스템은 원본의 모든 종속성을 확인하여 업데이트에 성공했는지 확인할 수 있어야 합니다. 매니페스트 또는 잠금 파일에 프라이빗 종속성이 포함된 경우 Dependabot은 해당 종속성이 호스트된 위치에 액세스할 수 있어야 합니다. 조직 소유자는 동일한 조직 내 프로젝트의 종속성이 포함된 프라이빗 리포지토리에 대한 액세스 권한을 Dependabot에 부여할 수 있습니다. 자세한 내용은 “조직의 보안 및 분석 설정 관리”을 참조하세요. 리포지토리의 dependabot.yml
구성 파일에서 프라이빗 레지스트리에 대한 액세스를 구성할 수 있습니다. 자세한 내용은 “dependabot.yml 파일에 대한 구성 옵션”을 참조하세요.
Dependabot이 모든 패키지 관리자에 대해 프라이빗 GitHub 종속성을 지원하는 것은 아닙니다. 아래 표에 있는 세부 정보를 참조하세요.
다음 표에서는 각 패키지 관리자에 대해 다음을 보여줍니다.
dependabot.yml
파일에 사용할 YAML 값- 패키지 관리자의 지원되는 버전
- 프라이빗 GitHub 리포지토리 또는 레지스트리의 종속성이 지원되는지 여부
- 벤더링된 종속성이 지원되는지 여부
패키지 관리자 | YAML 값 | 지원되는 버전 | 프라이빗 리포지토리 | 프라이빗 레지스트리 | 벤더링 |
---|---|---|---|---|---|
Bundler | bundler | v1, v2 | |||
Cargo | cargo | v1 | (git에만 해당) | ||
작성기 | composer | v1, v2 | |||
Docker | docker | v1 | 해당 없음 | ||
16진수 | mix | v1 | |||
elm-package | elm | v0.19 | |||
git 하위모듈 | gitsubmodule | 해당 없음 | 해당 없음 | ||
GitHub Actions | github-actions | 해당 없음 | 해당 없음 | ||
Go 모듈 | gomod | v1 | |||
Gradle | gradle | 해당 없음 | |||
Maven | maven | 해당 없음 | |||
npm | npm | v6, v7, v8, v9 | |||
NuGet | nuget | <= 4.8 | |||
pip | pip | v21.1.2 | |||
pipenv | pip | <= 2021-05-29 | |||
pip-compile | pip | 6.1.0 | |||
pnpm | npm | v7, v8 | |||
poetry | pip | v1 | |||
pub | pub | v2 | |||
Swift | swift | v5 | (git에만 해당) | ||
Terraform | terraform | >= 0.13, <= 1.5.x | 해당 없음 | ||
yarn | npm | v1, v2, v3 |
팁: pipenv
및 poetry
같은 패키지 관리자의 경우 pip
YAML 값을 사용해야 합니다. 예를 들어 poetry
를 사용하여 Python 종속성을 관리하고 Dependabot에서 새 버전의 종속성 매니페스트 파일을 모니터링하기를 원하는 경우 dependabot.yml
파일의 package-ecosystem: "pip"
를 사용합니다.
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
파일을 구성하는 방법에 대한 자세한 내용은 "dependabot.yml 파일에 대한 구성 옵션"의 "package-ecosystem
"을 참조하세요.
Dependabot은(는) 퍼블릭 및 프라이빗 Docker 레지스트리를 모두 지원합니다. 이러한 레지스트리의 목록은 "dependabot.yml 파일에 대한 구성 옵션"의 “docker-registry
”를 참조하세요.
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에 대한 퍼블릭 및 프라이빗 리포지토리를 모두 지원합니다. 프라이빗 레지스트리 구성 옵션은 "dependabot.yml 파일에 대한 구성 옵션"의 "git
"를 참조하세요.
Gradle
Dependabot은(는) Gradle을 실행하지 않지만 다음 파일에 대한 업데이트를 지원합니다.
build.gradle
,build.gradle.kts
(Kotlin 프로젝트의 경우)gradle/libs.versions.toml
(표준 Gradle 버전 카탈로그를 사용하는 프로젝트의 경우)- 파일 이름에
dependencies
이 있는apply
선언을 통해 포함된 파일입니다.apply
는apply to
, 재귀 또는 고급 구문(예: 속성에 의해 정의된 파일 이름인mapOf
와 함께 Kotlin의apply
)을 지원하지 않습니다.
Dependabot security updates의 경우 Gradle 지원은 종속성 제출 API를 사용하여 종속성 그래프 데이터의 수동 업로드로 제한됩니다. 종속성 제출 API에 대한 자세한 내용은 “종속성 제출 API 사용”을 참조하세요.
참고: 종속성 제출 API를 사용하여 종속성 그래프에 Gradle 종속성을 업로드하면 종속성 파일에 명시적으로 멘션되지 않은 간접 종속성도 포함한 모든 프로젝트 종속성이 업로드됩니다. 간접 종속성에서 경고가 검색되면 Dependabot은(는) 리포지토리에서 취약한 종속성을 찾을 수 없으므로 해당 경고에 대한 보안 업데이트를 만들지 않습니다.
Maven
Dependabot은(는) Maven을 실행하지 않지만 pom.xml
파일에 대한 업데이트를 지원합니다.
NuGet CLI
Dependabot은(는) NuGet CLI를 실행하지 않지만 버전 4.8까지 대부분의 기능을 지원합니다.
pip 및 pip-compile
Dependabot은(는) requirements.txt
파일 업데이트 지원하는 외에도 PEP 621 표준을 따르는 경우 pyproject.toml
파일에 대한 업데이트를 지원합니다.
pnpm
pnpm은 Dependabot version updates 및 Dependabot security updates에 대해 지원됩니다.
pub
Dependabot은(는) pub
를 업데이트하려는 버전이 무시될 경우 이전 버전을 사용할 수 있더라도 업데이트를 수행하지 않습니다.
Swift
프라이빗 레지스트리 지원은 git 레지스트리에만 적용됩니다. Swift 레지스트리는 지원되지 않습니다. 비선언적 매니페스트는 지원되지 않습니다. 비선언적 매니페스트에 대한 자세한 내용은 Swift Evolution 설명서에서 비선언적 매니페스트 편집을 참조하세요.
yarn
Dependabot은 v2 이상에 대한 공급업체 종속성을 지원합니다.
리포지토리에서 이미 종속성 관리 통합을 사용 중인 경우 먼저 사용하지 않도록 설정한 후 Dependabot을 사용하도록 설정해야 합니다. 자세한 내용은 “통합 사용 정보”을(를) 참조하세요.
Dependabot updates 자동 비활성화 정보
리포지토리의 유지 관리자가 Dependabot 끌어오기 요청과 상호 작용을 중지하면 Dependabot이(가) 일시적으로 업데이트를 일시 중지하고 알려 줍니다. 이 자동 옵트아웃 동작은 Dependabot이(가) 버전 및 보안 업데이트에 대한 끌어오기 요청을 만들지 않고 비활성 리포지토리에 대한 Dependabot 끌어오기 요청을 다시 지성하지 않기 때문에 노이즈를 줄입니다.
Dependabot 업데이트의 자동 비활성화는 Dependabot이(가) 끌어오기 요청을 열었지만 끌어오기 요청은 그대로 기본 리포지토리에만 적용됩니다. Dependabot에서 끌어오기 요청을 열지 않은 경우 Dependabot은(는) 일시 중지되지 않습니다.
활성 리포지토리는 사용자(Dependabot가 아님)가 지난 90일 동안 아래 작업을 수행한 리포지토리입니다.
- 리포지토리에서 Dependabot 끌어오기 요청을 병합하거나 닫습니다.
- 리포지토리의
dependabot.yml
파일을 변경합니다. - 보안 업데이트 또는 버전 업데이트를 수동으로 트리거합니다.
- 리포지토리에 Dependabot security updates 사용
- 끌어오기 요청에
@dependabot
명령을 사용합니다.
비활성 리포지토리는 하나 이상의 Dependabot 끌어오기 요청이 90일 이상 열려 있고, 전체 기간 동안 사용하도록 설정되었으며, 위에 나열된 작업을 사용자가 수행하지 않은 리포지토리입니다.
Dependabot이(가) 일시 중지되면 GitHub은(는) 열려 있는 모든 Dependabot 끌어오기 요청의 본문에 알림을 추가하고 이러한 끌어오기 요청에 dependabot-paused
레이블을 할당합니다. 또한 리포지토리의 설정 탭 UI(코드 보안 및 분석, ** (Dependabot security updates의 영향을 받는 경우) 목록에 배너 알림이 표시됩니다.
유지 관리자가 Dependabot 끌어오기 요청과 다시 상호 작용하는 즉시 Dependabot은(는) 자체의 일시 중지를 해제합니다.
- Dependabot alerts에 대한 보안 업데이트가 자동으로 다시 시작됩니다.
- 버전 업데이트는
dependabot.yml
파일에 지정된 일정에 따라 자동으로 다시 시작됩니다.
Dependabot은(는) 30일 후에 버전 및 보안 업데이트에 대한 끌어오기 요청의 재지정을 중지하여 비활성 Dependabot 끌어오기 요청에 대한 알림을 줄입니다.
Dependabot 버전 업데이트 알림 정보
GitHub에서 알림을 필터링하여 Dependabot이 만든 끌어오기 요청에 대한 알림을 표시할 수 있습니다. 자세한 내용은 "받은 편지함에서 알림 관리"을(를) 참조하세요.