Skip to main content

Dependabot 오류

Dependabot 자동으로 종속성을 유지하여 코드를 안전하고 최신 상태로 유지합니다. 이 참조는 자동화된 업데이트를 계속할 수 있도록 문제를 진단하고 해결하는 데 도움이 됩니다.

Dependabot에서 종속성을 업데이트하는 동안 오류가 발생하면 이 참조를 사용하여 일반적인 문제를 진단하고 해결할 수 있습니다.

오류를 보는 방법

보안 업데이트 오류

Dependabot이 Dependabot 경고를 수정하기 위한 끌어오기 요청을 만들지 못하도록 차단되면 경고에 오류 메시지를 게시합니다. Dependabot alerts 보기에는 아직 확인되지 않은 경고 목록이 표시됩니다. 경고 보기에 액세스하려면 리포지토리의 보안 탭에서 Dependabot alerts 를 클릭합니다. 취약한 종속성을 수정할 끌어오기 요청이 생성된 경우 경고에는 해당 끌어오기 요청에 대한 링크가 포함됩니다.

Dependabot alerts 보기의 스크린샷입니다. 경고 메시지의 오른쪽에는 ‘#353’번 풀 리퀘스트로 연결되는 링크가 주황색 테두리로 강조되어 있습니다.

다음과 같은 몇 가지 이유로 경고에 끌어오기 요청 링크가 없을 수 있습니다.

  1. Dependabot security updates가 리포지토리에 대해 사용하도록 설정되지 않았습니다.
  2. 경고는 잠금 파일에 명시적으로 정의되지 않은 간접 또는 전이적 종속성에 대한 것입니다.
  3. Dependabot이 끌어오기 요청을 만들지 못하도록 차단하는 오류가 발생했습니다.

오류 세부 정보를 보려면 경고를 클릭합니다.

버전 업데이트 오류

Dependabot이(가) 에코시스템에서 종속성을 업데이트하기 위한 끌어오기 요청을 만들지 못하도록 차단된 경우 작업 로그 목록을 보고 오류에 대해 자세히 알아볼 수 있습니다.

데이터 재사용 가능.디펜더봇.디펜더봇-작업-로그-접근 %}

특정 작업에 대한 전체 로그 파일을 보려면 관심 있는 로그 항목의 오른쪽에 있는 로그 보기를 클릭합니다.

매니페스트 파일에 관한 Dependabot 작업 로그 항목의 스크린샷. “로그 보기” 버튼이 짙은 주황색 테두리로 강조되어 있습니다.

자세한 내용은 Dependabot 작업 로그 보기을(를) 참조하세요.

종속성 해결 오류

종속성을 취약하지 않은 버전으로 업데이트할 수 없음

          **적용 대상:** 보안 업데이트만

          **오류 메시지:**`Dependabot cannot update DEPENDENCY to a non-vulnerable version`

Dependabot은 이 리포지토리에 대한 종속성 그래프의 다른 종속성을 중단하지 않고 취약한 종속성을 보안 버전으로 업데이트하는 끌어오기 요청을 만들 수 없습니다.

종속성이 있는 모든 애플리케이션에는 종속성 그래프, 즉 애플리케이션이 직접 또는 간접적으로 의존하는 모든 패키지 버전의 방향성 비순환 그래프가 있습니다. 종속성이 업데이트될 때마다 이 그래프는 애플리케이션이 빌드되지 않는지 확인해야 합니다. 에코시스템에 깊고 복잡한 종속성 그래프(예: npm 및 RubyGems)가 있는 경우 전체 에코시스템을 업그레이드하지 않고 단일 종속성을 업그레이드하는 것은 불가능한 경우가 많습니다.

          **해상도:** 예를 들어 버전 업데이트를 사용하도록 설정하여 가장 최근에 릴리스된 버전을 최신 상태로 유지합니다. 이렇게 하면 종속성 그래프를 중단하지 않는 간단한 업그레이드를 통해 하나의 종속성의 취약성을 해결할 가능성이 커집니다. 
          [AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates)을(를) 참조하세요.

경고 없이 종속성을 업데이트합니다.

          **적용 대상:** 보안 업데이트만

          **오류 메시지:**`Dependabot tries to update dependencies without an alert`

Dependabot이 모든 에코시스템에 취약한 명시적으로 정의된 전이적 종속성을 업데이트합니다. npm의 경우 Dependabot이 전이적 종속성을 수정하는 유일한 방법이라면 부모 종속성을 업데이트하는 끌어오기 요청을 수행합니다.

예를 들어 A에 대해 확인된 ~2.0.0 버전 B에 대한 전이적 종속성이 있는 ~1.0.0 버전 1.0.1에 대해 종속성이 있는 프로젝트.

my project
|
--> A (2.0.0) [~2.0.0]
       |
       --> B (1.0.1) [~1.0.0]
          `B` 버전 `<2.0.0` 에 대한 보안 취약점이 공개되어 `2.0.0` 에서 패치를 사용할 수 있게 되면, Dependabot은 `B` 의 업데이트를 시도합니다. 그러나 더 낮은 버전의 취약한 버전만 허용하는 `A` 의 제약 사항으로 인해 업데이트가 불가능할 수 있습니다. 취약성을 해결하기 위해 Dependabot은 `A`의 고정 버전을 허용하는 종속성 `B`에 대한 업데이트를 찾습니다.

Dependabot은 잠긴 부모 및 자식 전이적 종속성을 모두 업그레이드하는 풀 리퀘스트를 자동으로 생성합니다.

이미 적용된 업데이트에 대한 끌어오기 요청을 닫을 수 없습니다.

          **오류 메시지:**`Dependabot fails to close a open pull request for an update that has already been applied on the default branch`

Dependabot는 종속성 업데이트가 기본 분기에 커밋된 것을 감지하면 해당 업데이트에 대한 풀 리퀘스트를 닫습니다. 그러나 드물게는 풀 리퀘스트가 열린 상태로 남아 있을 수 있습니다.

          **해결책:** 종속성에 대한 업데이트를 수동으로 커밋했으며, 동일한 업데이트에 대한 풀 리퀘스트가 여전히 열려 있는 경우, 풀 리퀘스트에 대한 댓글에 다음 명령 중 하나를 사용할 수 있습니다.

* @dependabot recreate, 또는 * @dependabot rebase;

두 설명 중 하나가 Dependabot을(를) 트리거하여 종속성이 더 이상 업그레이드되지 않거나 취약하지 않은지 확인합니다. Dependabot에서 더 이상 필요하지 않은 풀 리퀘스트를 감지하면 이 경우 해당 풀 리퀘스트를 닫습니다.

Dependabot에 대한 자세한 내용은 종속성 업데이트에 대한 끌어오기 요청 관리을(를) 참조하세요.

최신 버전에 대해 열려 있는 끌어오기 요청이 이미 있으므로 필요한 버전으로 업데이트할 수 없습니다.

          **적용 대상:** 보안 업데이트만

          **오류 메시지:**`Dependabot cannot update to the required version as there is already an open pull request for the latest version`

이 종속성을 업데이트하기 위해 열려 있는 끌어오기 요청이 이미 있으므로 Dependabot은 취약한 종속성을 보안 버전으로 업데이트하는 끌어오기 요청을 만들지 않습니다. 단일 종속성에서 취약성이 검색되고 종속성을 최신 버전으로 업데이트하기 위한 끌어오기 요청이 이미 열려 있으면 이 오류가 표시됩니다.

          **해상도:** 열린 끌어오기 요청을 검토하고 변경 내용이 안전하다고 확신하는 즉시 병합하거나 끌어오기 요청을 닫고 새 보안 업데이트 끌어오기 요청을 트리거할 수 있습니다. 
          [Dependabot 풀 리퀘스트를 수동으로 트리거하는 방법](#triggering-a-dependabot-pull-request-manually)을 참조하세요.

보안 업데이트가 필요하지 않음

          **적용 대상:** 보안 업데이트만

          **오류 메시지:**`No security update is needed as DEPENDENCY is no longer vulnerable`

Dependabot이(가) 이제 더 이상 취약하지 않은 종속성에 대한 업데이트 풀 리퀘스트를 닫을 수 없습니다. 종속성 그래프 데이터가 오래되었거나 특정 버전의 종속성에 취약점이 있는 경우, 종속성 그래프와 Dependabot이(가) 일치하지 않으면 이 오류가 표시될 수 있습니다.

          **해상도:** 먼저 리포지토리에 대한 종속성 그래프를 검사하고, 종속성에 대해 검색된 버전을 검토하고, 식별된 버전이 리포지토리에서 사용되는 버전과 일치하는지 확인합니다.

종속성 그래프 데이터가 오래된 것으로 의심되면 리포지토리의 종속성 그래프를 수동으로 업데이트하거나 종속성 정보를 추가로 조사해야 할 수 있습니다. 종속성 그래프 문제 해결을(를) 참조하세요.

종속성 버전이 더 이상 취약하지 않다는 것을 확인할 수 있다면 Dependabot 풀 리퀘스트를 닫을 수 있습니다.

끌어오기 요청 오류

끌어오기 요청 제한에 도달했습니다.

          **오류 메시지:**`Dependabot cannot open any more pull requests`

Dependabot에서 생성할 열려 있는 끌어오기 요청 수에는 제한이 있습니다. 이 제한에 도달하면 새 끌어오기 요청이 열리지 않으며 이 오류가 보고됩니다.

          **제한:**
  • 보안 업데이트 끌어오기 요청: 10
  • 버전 업데이트 풀 요청: 5 (open-pull-requests-limit를 사용하여 구성 가능)

열려 있는 버전 업데이트 끌어오기 요청이 보안 업데이트 끌어오기 요청 생성을 차단할 수 없도록 보안 및 버전 업데이트 끌어오기 요청에 대한 별도의 제한이 있습니다. 자세한 내용은 Dependabot 옵션 참조을(를) 참조하세요.

          **해결 방법:** 기존 풀 리퀘스트 중 일부를 병합하거나 닫고, 새 풀 리퀘스트를 수동으로 트리거합니다. 
          [Dependabot 풀 리퀘스트를 수동으로 트리거하는 방법을](#triggering-a-dependabot-pull-request-manually) 참조하세요.

시간 제한 및 성능 오류

업데이트 시간이 초과됨

          **오류 메시지:**`Dependabot timed out during its update`

Dependabot은 필요한 업데이트를 평가하고 끌어오기 요청을 준비하는 데 허용되는 최대 시간보다 오래 걸렸습니다. 이 오류는 일반적으로 많은 매니페스트 파일이 있는 큰 리포지토리(예: 수백 개의 package.json 파일이 있는 npm 또는 yarn monorepo 프로젝트)에서만 표시됩니다. 또한 Composer 에코시스템에 대한 업데이트는 평가하는 데 더 오래 걸리며 시간이 초과될 수 있습니다.

          **버전 업데이트에 대한 해결 방법:** 매개 변수를 사용하여 `allow` 업데이트할 가장 중요한 종속성을 지정하거나 매개 변수를 `ignore` 사용하여 업데이트에서 일부 종속성을 제외합니다. 구성을 업데이트하면 Dependabot에서 버전 업데이트를 검토하고 사용 가능한 시간에 끌어오기 요청을 생성할 수 있습니다.

          **보안 업데이트 해결 방법:** 예를 들어 버전 업데이트를 사용하도록 설정하여 종속성을 업데이트된 상태로 유지하여 시간 초과 가능성을 줄입니다. 자세한 내용은 [AUTOTITLE](/code-security/dependabot/dependabot-version-updates/configuring-dependabot-version-updates)을(를) 참조하세요.

그룹화 오류

종속성을 그룹화하지 못했습니다(버전 업데이트)

          **적용 대상:** 버전 업데이트만

          **오류 메시지:**`Dependabot fails to group a set of dependencies into a single pull request for Dependabot version updates`

          `groups` 파일의 [](/code-security/dependabot/working-with-dependabot/dependabot-options-reference#groups--) 구성 설정은 버전 업데이트 및 보안 업데이트에 적용될 수 있습니다. 
          `applies-to` 키를 사용하여 버전 업데이트 또는 보안 업데이트와 같이 그룹화 규칙이 적용되는 위치를 지정할 수 있습니다.

version 업데이트 및 security 업데이트 모두에 단일 그룹화 규칙 집합을 적용할 수 없습니다. 대신 동일한 조건을 사용하여 버전 업데이트와 보안 업데이트를 모두 그룹화하려면 별도로 명명된 두 개의 규칙 그룹화 집합을 정의해야 합니다.

그룹화된 버전 업데이트를 구성할 때 패키지 에코시스템별로 그룹을 구성해야 합니다.

          **일반적인 원인 - 빈 그룹:** 의도치 않게 빈 그룹을 만들었을 수 있습니다. 예를 들어 전체 작업에 대한 `dependency-type` 키에 `allow`을 설정할 때 이런 일이 발생합니다.
YAML
allow:
  dependency-type: production
  # this restricts the entire job to production dependencies
  groups:
      development-dependencies:
        dependency-type: "development"
        # this group will always be empty

이 예시에서 Dependabot은(는) 다음을 수행합니다.

  1. 종속성 목록을 확인한 뒤, production 에서만 사용되는 종속성으로 작업 범위를 제한하세요.
  2. 이 축소된 목록의 부분집합인 그룹 development-dependencies 을 만들어 보세요.
  3. 1단계에서 모든 development-dependencies 종속성이 제거되었으므로 development 그룹이 비어 있는지 확인해 주세요.
  4.           그룹에 포함되지 않은 모든 종속성을 **개별적으로** 업데이트해 주시기 바랍니다. 생산 환경의 종속성 그룹이 비어 있어 Dependabot이 해당 그룹을 무시하고, 각 종속성에 대해 개별 풀 리퀘스트를 생성합니다.
    
           **해상도:** 구성 설정이 서로 취소되지 않도록 하고 구성 파일에서 적절하게 업데이트합니다. 문제를 디버그하려면 로그를 확인합니다. 매니페스트의 로그에 액세스하는 방법에 대한 자세한 내용은 [오류를 보는 방법을 참조하세요](#how-to-view-errors).
    

Dependabot version updates 그룹을 구성하는 방법에 관한 자세한 내용은 Dependabot 옵션 참조을(를) 참조하세요.

종속성을 그룹화하지 못했습니다(보안 업데이트)

          **적용 대상:** 보안 업데이트만

          **오류 메시지:**`Dependabot fails to group a set of dependencies into a single pull request for Dependabot security updates`

          `groups` 파일의 [](/code-security/dependabot/working-with-dependabot/dependabot-options-reference#groups--) 구성 설정은 버전 업데이트 및 보안 업데이트에 적용될 수 있습니다. 
          `applies-to` 키를 사용하여 버전 업데이트 또는 보안 업데이트와 같이 그룹화 규칙이 적용되는 위치를 지정할 수 있습니다. 보안 업데이트를 적용할 수 있도록 그룹화가 구성되어 있는지 확인합니다. 구성의 그룹화 규칙 집합에 `applies-to` 키가 지정되지 않은 경우, 모든 그룹 규칙은 기본적으로 버전 업데이트에만 적용됩니다.

version 업데이트 및 security 업데이트 모두에 단일 그룹화 규칙 집합을 적용할 수 없습니다. 대신 동일한 조건을 사용하여 버전 업데이트와 보안 업데이트를 모두 그룹화하려면 별도로 명명된 두 개의 규칙 그룹화 집합을 정의해야 합니다.

          **보안 업데이트에 대한 그룹화 지침:**
  • Dependabot은(는) **** 키를 사용하는 구성에 대해 그룹화 규칙이 지정된 경우 서로 다른 디렉터리에 있는 동일한 패키지 에코시스템의 종속성을 directories.
  • Dependabot 는 **** 파일의 다른 관련 사용자 지정 옵션을 적용할 수 dependabot.yml, 그룹화된 보안 업데이트에 대한 풀 리퀘스트를 할 수 있습니다. dependabot.yml 파일에 구성된 그룹 규칙은 조직 또는 리포지토리 수준에서 그룹화된 보안 업데이트를 사용하거나 사용하지 않도록 설정하기 위한 사용자 인터페이스 설정을 재정의합니다.
  • Dependabot은 서로 다른 패키지 에코시스템의 종속성을 함께 그룹화하지 않습니다.
  • Dependabot 는 버전 업데이트를 사용하여 보안 업데이트를 그룹화하지 않습니다 .

자세한 내용은 Dependabot 보안 업데이트 정보Dependabot 보안 업데이트에 대한 끌어오기 요청 사용자 지정을(를) 참조하세요.

그룹화된 끌어오기 요청에서 종속성을 업데이트하지 못했습니다.

          **오류 메시지:**`Dependabot fails to update one of the dependencies in a grouped pull request`

실패한 버전 업데이트와 보안 업데이트를 해결하기 위한 다양한 문제 해결 기술이 있습니다.

버전 업데이트

          **적용 대상:** 버전 업데이트만

Dependabot은(는) 로그에 실패한 업데이트뿐만 아니라 로그의 끝부분에 있는 작업 요약도 표시합니다.

          **해결 방법:**
  1. 풀 리퀘스트에서 @dependabot recreate 코멘트를 사용하여 그룹을 다시 빌드하세요. 종속성 업데이트에 대한 끌어오기 요청 관리을(를) 참조하세요.
  2. 종속성이 계속 업데이트되지 않는 경우 그룹에서 종속성이 제외되도록 구성을 사용합니다 exclude-patterns . 그러면 Dependabot이 종속성을 업데이트하기 위해 별도의 풀 리퀘스트를 생성합니다.
  3. 종속성이 여전히 업데이트되지 않으면 종속성 자체 또는 해당 특정 에코시스템의 Dependabot에 문제가 있을 수 있습니다.

종속성에 대한 업데이트를 무시하려면 다음 중 하나를 수행해야 합니다.

보안 업데이트

          **적용 대상:** 보안 업데이트만

보안 업데이트를 위한 그룹화된 풀 리퀘스트가 실패하거나 병합할 수 없는 경우, 브레이킹 변경 사항의 버전을 올리기 위해 풀 리퀘스트를 수동으로 열어야 합니다. 그룹화된 풀 리퀘스트에 포함된 패키지를 수동으로 업데이트하면 Dependabot이(가) 수동으로 업데이트된 패키지가 포함되지 않도록 풀 리퀘스트를 다시 작성합니다.

종속성에 대한 업데이트를 무시하려면 다음 중 하나를 수행해야 합니다.

그룹화된 끌어오기 요청에서 연속 통합 실패

          **적용 대상:** 버전 업데이트만

          **오류 메시지:**`Continuous integration (CI) fails on my grouped pull request`

          **해결 방법:**

단일 종속성으로 인해 오류가 발생하는 경우 종속성이 그룹에서 제외되도록 구성을 사용합니다 exclude-patterns . 그러면 Dependabot이 종속성을 업데이트하기 위해 별도의 풀 리퀘스트를 생성합니다.

데이터 재사용 가능.디펜더봇.디펜더봇-의존성-무시 %}

계속해서 CI 실패가 발생하면 그룹 구성을 제거하여 Dependabot가 각 의존성에 대해 개별 풀 리퀘스트를 생성하도록 되돌리세요. 그런 다음 각 끌어오기 요청에 대해 업데이트가 올바르게 작동하는지 검토하여 확인합니다.

인증 및 레지스트리 오류

종속성을 확인하거나 액세스할 수 없음

          **오류 메시지:**`Dependabot can't resolve your LANGUAGE dependency files`

          **API 오류 유형:**`git_dependencies_not_reachable`

Dependabot이(가) 리포지토리에서 종속성 참조를 업데이트해야 하는지 여부를 확인하려고 하지만 참조된 파일 중 하나 이상에 액세스할 수 없으면 작업이 실패합니다.

프라이빗 패키지 레지스트리 오류

Dependabot는 프라이빗 패키지 레지스트리에 액세스할 수 없는 경우 다음 오류 중 하나를 생성할 수 있습니다.

오류 메시지API 오류 유형
"Dependabot이(가) 비공개 패키지 레지스트리의 종속성에 접근할 수 없습니다."private_source_not_reachable
Dependabot 개인 패키지 레지스트리에 인증할 수 없다.private_source_authentication_failure
"Dependabot가 프라이빗 패키지 레지스트리를 기다리던 중 시간 초과되었습니다."private_source_timed_out
"Dependabot가 프라이빗 패키지 레지스트리의 인증서를 검증할 수 없습니다."private_source_certificate_failure
          **해상도:** 참조된 모든 종속성이 액세스 가능한 위치에서 호스트되는지 확인합니다.

          **버전 업데이트만:** 보안 또는 버전 업데이트를 실행할 때 일부 에코시스템은 원본의 모든 종속성을 확인하여 업데이트에 성공했는지 확인할 수 있어야 합니다. 매니페스트 또는 잠금 파일에 프라이빗 종속성이 포함된 경우 Dependabot은 해당 종속성이 호스트된 위치에 액세스할 수 있어야 합니다. 조직 소유자는 동일한 조직 내 프로젝트의 종속성이 포함된 프라이빗 리포지토리에 대한 액세스 권한을 Dependabot에 부여할 수 있습니다. 자세한 내용은 [AUTOTITLE](/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-security-and-analysis-settings-for-your-organization#allowing-dependabot-to-access-private-dependencies)을(를) 참조하세요. 리포지토리의 `dependabot.yml` 구성 파일에서 프라이빗 레지스트리에 대한 액세스를 구성할 수 있습니다. 자세한 내용은 [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot)을(를) 참조하세요. 또한 Dependabot는 모든 패키지 관리자의 프라이빗 GitHub 종속성을 지원하지 않습니다. 
          [AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories)을(를) 참조하세요.

수동으로 Dependabot 끌어오기 요청 트리거

Dependabot의 차단을 해제하는 경우 끌어오기 요청을 만들려는 새 시도를 수동으로 트리거할 수 있습니다.

          **보안 업데이트의 경우:** 수정한 오류를 표시하는 Dependabot 경고를 표시하고 **Dependabot 보안 업데이트 만들기를** 클릭합니다.

          **버전 업데이트의 경우:** 리포지토리의 **인사이트** 탭에서 **종속성 그래프**를 클릭한 다음 **Dependabot** 탭을 클릭합니다. **마지막으로 확인한 _시간_ 전을** 클릭하면 버전 업데이트에 대한 마지막 확인 중에 Dependabot이 생성한 로그 파일을 볼 수 있습니다. 
          **업데이트 확인**을 클릭합니다.

추가 읽기

  •         [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/troubleshooting-the-dependency-graph)
    
  •         [AUTOTITLE](/code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerable-dependency-detection)