종속성 그래프 정보
종속성 그래프는 리포지토리에 저장된 매니페스트 및 잠금 파일과 종속성 제출 API을(를) 사용하여 리포지토리에 대해 제출된 모든 종속성을 요약한 것입니다. 각 리포지토리에 대해 다음이 표시됩니다 리포지토리가 의존하는 종속성, 즉 에코시스템 및 패키지.
GitHub Enterprise Server은(는) 종속성에 대한 라이선스 정보를 검색하지 않으며 종속성, 리포지토리 및 리포지토리에 의존하는 패키지에 대한 정보를 계산하지 않습니다. 자세한 내용은 “종속성 그래프 정보”을(를) 참조하세요.
이 문서에서는 지원되는 에코시스템을 확인할 수 있습니다.
지원되는 패키지 에코시스템
권장되는 형식은 모든 직접 및 모든 간접 종속성에 사용되는 버전을 명시적으로 정의합니다. 이러한 형식을 사용하는 경우 종속성 그래프가 더 정확해집니다. 또한 현재 빌드 설정을 반영하고 종속성 그래프가 직접 및 간접 종속성 모두에서 취약성을 보고할 수 있도록 합니다.
패키지 관리자 | 언어 | 권장 형식 | 지원되는 모든 형식 |
---|---|---|---|
Cargo | Rust | Cargo.lock | Cargo.toml : Cargo.lock |
작성기 | PHP | composer.lock | composer.json : composer.lock |
NuGet | .NET 언어(C#, F#, VB), C++ | .csproj , .vbproj , .nuspec , .vcxproj , .fsproj | .csproj , .vbproj , .nuspec , .vcxproj , .fsproj , packages.config |
GitHub Actions 워크플로 | YAML | .yml : .yaml | .yml : .yaml |
Go 모듈 | Go | go.mod | go.mod |
Maven | Java, Scala | pom.xml | pom.xml |
npm | JavaScript | package-lock.json | package-lock.json : package.json |
pip | Python | requirements.txt : pipfile.lock | requirements.txt , pipfile , pipfile.lock , setup.py |
pub | Dart | pubspec.lock | pubspec.yaml : pubspec.lock |
Python Poetry | Python | poetry.lock | poetry.lock : pyproject.toml |
RubyGems | Ruby | Gemfile.lock | Gemfile.lock , Gemfile , *.gemspec |
Swift 패키지 관리자 | Swift | Package.resolved | Package.resolved |
Yarn | JavaScript | yarn.lock | package.json : yarn.lock |
Note
setup.py
파일 내에 Python 종속성을 나열하는 경우 프로젝트의 모든 종속성을 구문 분석하고 나열하지 못할 수 있습니다.- GitHub Actions 워크플로는 매니페스트로 인식되려면 리포지토리의
.github/workflows/
디렉터리에 있어야 합니다. 구문jobs[*].steps[*].uses
또는jobs.<job_id>.uses
를 사용하여 참조되는 모든 작업 또는 워크플로는 종속성으로 구문 분석됩니다. 자세한 내용은 "GitHub Actions에 대한 워크플로 구문"을(를) 참조하세요. - Dependabot은(는) 의미 체계 버전 관리를 사용하는 취약한 GitHub Actions에 대한 Dependabot alerts만 만듭니다. SHA 버전 관리를 사용하는 취약한 작업에 대한 경고는 수신되지 않습니다. SHA 버전 관리와 함께 GitHub Actions을(를) 사용하는 경우, 리포지토리 또는 조직에 Dependabot version updates을(를) 사용 설정하여 사용하는 작업을 계속해서 최신 버전으로 업데이트하는 것이 좋습니다. 자세한 내용은 "Dependabot 경고 정보" 및 "Dependabot 버전 업데이트 정보" 항목을 참조하세요.
종속성 제출 작업을 통해 지원되는 패키지 에코시스템
종속성 제출 API을 사용하여 빌드 시간 종속성을 종속성 그래프에 추가하거나 위의 지원되는 에코시스템 목록에 없는 에코시스템이더라도 원하는 패키지 관리자 및 에코시스템의 종속성을 종속성 그래프에 추가할 수 있습니다. 이러한 제출된 종속성의 종속성 정보는 Dependabot updates 및 Dependabot alerts으로 차례로 전달됩니다.
종속성 그래프는 에코시스템별로 그룹화된 제출된 종속성을 표시하지만 매니페스트 또는 잠금 파일에서 구문 분석된 종속성과는 별도로 표시합니다. 종속성 제출 API에 대한 자세한 내용은 "종속성 제출 API 사용"을 참조하세요.
GitHub Actions 워크플로에서 대부분의 경우 종속성 제출 API을(를) 사용하여 프로젝트를 빌드할 때 프로젝트에 대한 종속성을 제출합니다. 종속성 제출 API을(를) 사용하는 가장 간단한 방법은 종속성 목록을 수집하고 필요한 스냅샷 형식으로 변환한 후 목록을 API에 제출하는 미리 만들어진 작업을 리포지토리에 추가하는 것입니다. 아래 표에서 현재 사용할 수 있는 작업에 대한 링크를 찾을 수 있습니다.
에코시스템 | 작업 |
---|---|
Go | Go 종속성 제출 |
Gradle | 그레이들 종속성 제출 |
Maven | Maven 종속성 트리 종속성 제출 |
제분기 | Mill 종속성 제출 |
Scala | Sbt 종속성 제출 |
NuGet 및 기타 | 구성 요소 감지 종속성 제출 작업 |
Note
구성 요소 검색 종속성 제출 작업의 경우 지원되는 다른 에코시스템에는 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 사용" 항목을 참조하세요.