Skip to main content

종속성 그래프 문제 해결

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

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

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

  • 퍼블릭 리포지토리(기본적으로 설정)
  • 프라이빗 리포지토리
  • 포크

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

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

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

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

그러나 프로젝트 빌드 시 확인된 종속성처럼 매니페스트나 잠금 파일에 선언되지 않은 종속성이라도 종속성 제출 API을(를) 사용하여 프로젝트의 종속성 그래프에 종속성을 추가할 수 있습니다. 종속성 제출 API을(를) 사용하여 프로젝트에 제출된 종속성은 제출에 사용된 감지기 및 제출된 시점을 표시합니다. 종속성 제출 API에 대한 자세한 내용은 "종속성 제출 API 사용"을 참조하세요.

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

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

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

그러나 종속성 제출 API을(를) 사용하여 프로젝트가 빌드될 때만 종속성이 확인되는 경우에도 종속성을 프로젝트의 종속성 그래프에 추가할 수 있습니다. 종속성 제출 API에 대한 자세한 내용은 "종속성 제출 API 사용"을 참조하세요.

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

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

예, 종속성 그래프에 하나의 범주 제한이 있습니다.

  1. 처리 제한

    처리 제한은 GitHub 내에 표시되는 종속성 그래프에 영향을 주고 Dependabot alerts가 만들어지는 것을 방지합니다.

    크기가 0.5MB를 넘는 매니페스트는 엔터프라이즈 계정에 대해서만 처리됩니다. 다른 계정의 경우 0.5MB를 넘는 매니페스트는 무시되며 Dependabot alerts를 만들지 않습니다.

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

    일반적으로 공급업체 종속성에 사용되는 이름이 있는 디렉터리에 저장된 매니페스트 파일은 처리되지 않습니다. 이름이 다음 정규식과 일치하는 디렉터리가 (이)라는 공급업체 종속성 디렉터리로 간주됩니다.

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

    예:

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

추가 참고 자료