Skip to main content

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

종속성 그래프 문제 해결

종속성 그래프가 보고하는 종속성 정보가 예상과 다른 경우 여러 가지 고려해야 할 사항과 확인할 수 있는 사항이 있습니다.

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

종속성 그래프를 모든 리포지토리에 사용할 수 있습니다.

GitHub에서 보고한 종속성 검색 결과는 다른 도구에서 반환한 결과와 다를 수 있습니다. 여기에는 타당한 이유가 있으며, 이는 GitHub에서 프로젝트에 대한 종속성을 결정하는 방법을 이해하는 데 도움이 됩니다.

종속성 그래프는 매니페스트 및 잠금 파일에서만 종속성을 찾나요?

종속성 그래프에는 사용자의 환경에 명시적으로 선언된 종속성에 관한 정보가 자동으로 포함됩니다. 즉, 매니페스트 또는 잠금 파일에 지정된 종속성입니다. 종속성 그래프는 일반적으로 매니페스트 파일에서 종속성의 종속성을 확인하여 전이적 종속성이 잠금 파일에 지정되지 않은 경우에도 포함합니다.

“느슨한” 종속성은 의존성 그래프에 자동으로 포함되지 않습니다. “느슨한” 종속성은 패키지 관리자의 매니페스트 또는 잠금 파일에서 참조되는 것이 아니라 다른 원본에서 복사하여 리포지토리에 직접 또는 보관 파일(예: ZIP 또는 JAR 파일) 내에 체크인되는 개별 파일입니다.

하지만 프로젝트가 빌드될 때 해결된 종속성과 같이 매니페스트 또는 잠금 파일에 종속성이 선언되지 않더라도 프로젝트의 종속성 그래프로 종속성을 추가하기 위해 종속성 제출 API을 이용할 수 있습니다. 종속성 제출 API을 사용하여 프로젝트에 제출된 종속성은 제출에 사용된 탐지기와 제출된 시점을 표시합니다. 종속성 제출 API에 대한 자세한 내용은 종속성 제출 API 사용을 참조하세요.

          **확인:** 누락된 종속성이 리포지토리의 매니페스트 또는 잠금 파일에 지정되지 않은 구성요소에 대한 것인가요?

종속성 그래프가 변수를 사용하여 지정된 종속성을 검색하나요?

종속성 그래프는 GitHub에 푸시될 때 매니페스트를 분석합니다. 따라서 종속성 그래프는 프로젝트의 빌드 환경에 액세스할 수 없으므로 매니페스트 내에서 사용되는 변수를 확인할 수 없습니다. 이름 또는 종속성 버전을 지정하기 위해 매니페스트에서 변수를 사용하는 경우 해당 종속성은 종속성 그래프에 자동으로 포함되지 않습니다.

하지만, 프로젝트를 빌드할 때만 종속성이 해결되는 경우에도 종속성 제출 API을 이용하면 프로젝트의 종속성 그래프에 종속성을 추가할 수 있습니다. 종속성 제출 API에 대한 자세한 내용은 종속성 제출 API 사용을 참조하세요.

          **확인:** 누락된 종속성이 이름 또는 버전에 변수를 사용하여 매니페스트에 선언되었나요?

종속성 그래프 데이터에 영향을 미치는 제한이 있나요?

예, 종속성 그래프는 처리할 매니페스트 파일의 크기, 수, 위치에 제한이 있습니다.

처리 제한은 GitHub 내에 표시되는 종속성 그래프에 영향을 미치고, Dependabot alerts의 생성을 방지하기도 합니다.

크기가 10MB를 초과하는 매니페스트는 무시되며, Dependabot alerts를 생성하지 않습니다.

기본적으로 GitHub는 리포지토리당 매니페스트를 600개를 초과해 처리하지 않습니다. Dependabot은 이러한 한도를 초과하는 매니페스트에 대해서는 Dependabot alerts를 생성하지 않고, 이 한도를 초과할 경우 Dependabot alerts는 예측할 수 없게 동작할 수 있습니다.

일반적으로 벤더드 종속성에 사용되는 이름의 디렉터리에 저장된 매니페스트 파일은 처리되지 않습니다. 다음 정규식과 이름이 일치하는 디렉터리는 라는 벤더드 종속성 디렉터리로 간주됩니다.

  • (3rd|[Tt]hird)[-_]?[Pp]arty/
  • (^|/)vendors?/
  • (^|/)[Ee]xtern(als?)?/
  • (^|/)[Vv]+endor/

예제:

  • third-party/dependencies/dependency1
  • vendors/dependency1
  • /externals/vendor1/dependency1

종속성이 제대로 표시되지 않으면 어떻게 해야 하나요?

사용자의 프로젝트에 대한 종속성 테이블이 리포지토리의 매니페스트를 정확하게 나타내지 않으면 해당 종속성 그래프의 재빌드를 트리거할 수 있습니다.

리포지토리의 Dependabot alerts 탭에서 경고 목록 상단에 위치한 를 클릭합니다. 드롭다운 메뉴에서 새로고침Dependabot alerts 을 선택합니다. 그러면 리포지토리의 매니페스트를 처리하고 새 종속성 또는 변경된 종속성을 감지하여 경고를 업데이트하기 위한 백그라운드 작업이 큐에 추가됩니다.

참고 항목

리포지토리의 종속성 그래프를 새로 고치기 위해서는 보안 경고를 관리할 권한이 있어야 합니다. 이러한 액세스 구성에 대한 자세한 내용은 리포지토리에 대한 보안 및 분석 설정 관리을 참조하세요. 악용의 가능성을 더 낮추기 위해 새로고침Dependabot alerts 옵션은 리포지토리마다 시간에 1회만 트리거할 수 있습니다.

새로고침Dependabot alerts 을 클릭하면 매니페스트 파일만 스캔합니다. 종속성 그래프에 종속성 제출 API을 사용해 제출된 빌드 시점 종속성 정보가 포함되어 있다면, 종속성 정보를 생성하고 제출하는 액션 또는 외부 프로세스를 다시 실행할 경우 리포지토리의 종속성 그래프도 함께 재생성됩니다. 종속성 제출 API에 대한 자세한 내용은 종속성 제출 API 사용을(를) 참조하세요.

자동 종속성 제출을 사용하는 경우, 리포지토리의 매니페스트 파일을 업데이트하는 커밋을 푸시하면 자동 제출 작업이 실행됩니다.

모든 경우에 있어 경고 목록의 상단에 위치한 타임스탬프는 종속성 그래프가 마지막으로 빌드된 시점을 나타냅니다.

추가 읽기

  •         [AUTOTITLE](/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)
    
  •         [AUTOTITLE](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)
    
  •         [AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-the-detection-of-vulnerable-dependencies)
    
  •         [AUTOTITLE](/code-security/dependabot/troubleshooting-dependabot/troubleshooting-dependabot-errors)