Skip to main content

종속성 그래프에서 지원되는 패키지 에코시스템

종속성 그래프는 다양한 에코시스템을 지원합니다.

종속성 그래프 정보

종속성 그래프는 리포지토리에 저장된 매니페스트 및 잠금 파일과 종속성 제출 API을(를) 사용하여 리포지토리에 대해 제출된 모든 종속성을 요약한 것입니다. 각 리포지토리에 대해 다음이 표시됩니다.

  • 리포지토리가 의존하는 종속성, 에코시스템 및 패키지
  • 리포지토리에 의존하는 종속 항목, 리포지토리 및 패키지

각 종속성에 대해 라이선스 정보 및 취약성 심각도를 확인할 수 있습니다. 검색 표시줄을 사용하여 특정 종속성을 검색할 수도 있습니다. 종속성은 취약성 심각도에 따라 자동으로 정렬됩니다.

자세한 내용은 “종속성 그래프 정보”을 참조하세요.

이 문서에서는 지원되는 에코시스템을 확인할 수 있습니다.

지원되는 패키지 에코시스템

권장되는 형식은 모든 직접 및 모든 간접 종속성에 사용되는 버전을 명시적으로 정의합니다. 이러한 형식을 사용하는 경우 종속성 그래프가 더 정확해집니다. 또한 현재 빌드 설정을 반영하고 종속성 그래프가 직접 및 간접 종속성 모두에서 취약성을 보고할 수 있도록 합니다. 매니페스트 파일(또는 이와 동등한 파일)에서 유추되는 간접 종속성은 안전하지 않은 종속성에 대한 검사에서 제외됩니다.

Package managerLanguagesRecommended formatsAll supported formats
CargoRustCargo.lockCargo.toml, Cargo.lock
ComposerPHPcomposer.lockcomposer.json, composer.lock
NuGet.NET languages (C#, F#, VB), C++.csproj, .vbproj, .nuspec, .vcxproj, .fsproj.csproj, .vbproj, .nuspec, .vcxproj, .fsproj, packages.config
GitHub Actions workflowsYAML.yml, .yaml.yml, .yaml
Go modulesGogo.modgo.mod
MavenJava, Scalapom.xmlpom.xml
npmJavaScriptpackage-lock.jsonpackage-lock.json, package.json
pipPythonrequirements.txt, pipfile.lockrequirements.txt, pipfile, pipfile.lock, setup.py
pnpmJavaScriptpnpm-lock.yamlpackage.json, pnpm-lock.yaml
pubDartpubspec.lockpubspec.yaml, pubspec.lock
Python PoetryPythonpoetry.lockpoetry.lock, pyproject.toml
RubyGemsRubyGemfile.lockGemfile.lock, Gemfile, *.gemspec
Swift Package ManagerSwiftPackage.resolvedPackage.resolved
YarnJavaScriptyarn.lockpackage.json, yarn.lock

Notes:

  • If you list your Python dependencies within a setup.py file, we may not be able to parse and list every dependency in your project.

  • GitHub Actions workflows must be located in the .github/workflows/ directory of a repository to be recognized as manifests. Any actions or workflows referenced using the syntax jobs[*].steps[*].uses or jobs.<job_id>.uses will be parsed as dependencies. For more information, see "GitHub Actions에 대한 워크플로 구문."

  • Dependabot은(는) 의미 체계 버전 관리를 사용하는 취약한 GitHub Actions에 대한 Dependabot alerts만 만듭니다. SHA 버전 관리를 사용하는 취약한 작업에 대한 경고는 수신되지 않습니다. SHA 버전 관리와 함께 GitHub Actions을(를) 사용하는 경우, 리포지토리 또는 조직에 Dependabot version updates을(를) 사용 설정하여 사용하는 작업을 계속해서 최신 버전으로 업데이트하는 것이 좋습니다. For more information, see "Dependabot 경고 정보" and "Dependabot 버전 업데이트 정보."

빌드 시점에 전이 종속성을 해결하는 에코시스템의 경우 종속성 제출을 구성하여 이러한 종속성을 종속성 그래프에 자동으로 제출하는 것이 좋습니다. 자세한 내용은 "리포지토리에 대한 자동 종속성 제출 구성"을(를) 참조하세요.

종속성 제출 작업을 통해 지원되는 패키지 에코시스템

종속성 제출 API을 사용하여 빌드 시간 종속성을 종속성 그래프에 추가하거나 위의 지원되는 에코시스템 목록에 없는 에코시스템이더라도 원하는 패키지 관리자 및 에코시스템의 종속성을 종속성 그래프에 추가�� 수 있습니다. 이러한 제출된 종속성의 종속성 정보는 Dependabot updates 및 Dependabot alerts으로 차례로 전달됩니다.

종속성 제출 API을(를) 사용하여 프로젝트에 제출된 종속성은 제출에 사용된 감지기 및 제출된 시점을 표시합니다. 종속성 제출 API에 대한 자세한 내용은 "종속성 제출 API 사용"을 참조하세요.

GitHub Actions 워크플로에서 대부분의 경우 종속성 제출 API을(를) 사용하여 프로젝트를 빌드할 때 프로젝트에 대한 종속성을 제출합니다. 종속성 제출 API을(를) 사용하는 가장 간단한 방법은 종속성 목록을 수집하고 필요한 스냅샷 형식으로 변환한 후 목록을 API에 제출하는 미리 만들어진 작업을 리포지토리에 추가하는 것입니다. 아래 표에서 현재 사용 가능한 작업에 대한 링크를 찾을 수 있습니다.

에코시스템작업
GoGo 종속성 제출
Gradle그레이들 종속성 제출
MavenMaven 종속성 트리 종속성 제출
제분기Mill 종속성 제출
ScalaSbt 종속성 제출
NuGet 및 기타구성 요소 감지 종속성 제출 작업

참고: 구성 요소 감지 종속성 제출 작업의 경우 지원되는 다른 에코시스템에는 Vcpkg, Conan, Conda, Crates 및 NuGet이 포함됩니다.

예를 들어 다음 Go 종속성 제출 워크플로는 Go 빌드 대상(main 함수를 포함하는 Go 파일)에 대한 종속성을 계산하고 해당 목록을 종속성 제출 API에 제출합니다.

name: Go Dependency Submission
on:
  push:
    branches:
      - main

# The API requires write permission on the repository to submit dependencies
permissions:
  contents: write

# Environment variables to configure Go and Go modules. Customize as necessary
env:
  GOPROXY: '' # A Go Proxy server to be used
  GOPRIVATE: '' # A list of modules are considered private and not requested from GOPROXY
jobs:
  go-action-detection:
    runs-on: ubuntu-latest
    steps:
      - name: 'Checkout Repository'
        uses: actions/checkout@v4

      - uses: actions/setup-go@v5
        with:
          go-version: ">=1.18.0"

      - name: Run snapshot action
        uses: actions/go-dependency-submission@v1
        with:
            # Required: Define the repo path to the go.mod file used by the
            # build target
            go-mod-path: go-example/go.mod
            #
            # Optional. Define the repo path of a build target,
            # a file with a `main()` function.
            # If undefined, this action will collect all dependencies
            # used by all build targets for the module. This may
            # include Go dependencies used by tests and tooling.
            go-build-target: go-example/cmd/octocat.go

작업을 직접 만들 수도 있습니다. 자세한 내용은 "종속성 제출 API 사용" 항목을 참조하세요.