The Wayback Machine - https://web.archive.org/web/20230128151525/https://docs.github.com/ko/enterprise-cloud@latest/code-security/supply-chain-security/understanding-your-software-supply-chain/using-the-dependency-submission-api
Skip to main content

종속성 제출 API 사용

종속성 제출 API를 사용하면 프로젝트에 대해 프로젝트를 빌드하거나 컴파일할 때 확인되는 종속성과 같은 종속성을 제출할 수 있습니다.

참고: 종속성 제출에 REST API를 사용하는 기능은 현재 퍼블릭 베타 버전이며 변경될 수 있습니다.

종속성 제출 API 정보

REST API를 사용하여 프로젝트에 대한 종속성을 제출할 수 있습니다. 이를 통해 소프트웨어가 컴파일되거나 빌드될 때 확인된 종속성 등의 종속성을 GitHub의 종속성 그래프 기능에 추가하여 프로젝트의 모든 종속성을 보다 완벽하게 파악할 수 있습니다.

종속성 그래프는 리포지토리의 매니페스트 또는 잠금 파일(예: JavaScript 프로젝트의 package-lock.json 파일)에서 식별되는 종속성 외에 API를 사용하여 제출하는 모든 종속성을 보여 줍니다. 종속성 그래프를 보는 방법에 대한 자세한 내용은 “리포지토리의 종속성 탐색”을 참조하세요.

제출된 종속성은 알려진 취약성에 대해 Dependabot alerts 및 Dependabot security updates를 받게 됩니다. GitHub Advisory Database의 지원되는 에코시스템 중 하나에서 발생한 종속성에 대한 Dependabot alerts만 가져옵니다. 제출된 종속성은 종속성 검토 또는 조직의 종속성 인사이트에 표시되지 않습니다.

종속성은 스냅샷 형식으로 종속성 제출 API에 제출됩니다. 스냅샷은 커밋 SHA 및 기타 메타데이터와 연결된 종속성 집합으로, 커밋에 대한 리포지토리의 현재 상태를 반영합니다. 종속성 제출 API에 대한 자세한 내용은 종속성 제출 REST API 설명서를 참조하세요.

빌드 시 종속성 제출

GitHub Actions 워크플로에서 종속성 제출 API를 사용하여 프로젝트를 빌드할 때 프로젝트에 대한 종속성을 제출할 수 있습니다.

미리 만들어진 작업 사용

종속성 제출 API를 사용하는 가장 간단한 방법은 종속성 목록을 수집하고 필요한 스냅샷 형식으로 변환한 후 목록을 API에 제출하는 미리 만들어진 작업을 리포지토리에 추가하는 것입니다. 다양한 에코시스템에 대해 이러한 단계를 완료하는 작업은 GitHub Marketplace에서 사용할 수 있으며 베타 과정 및 그 이후에도 추가 작업이 생성될 예정입니다. 아래 표에서 현재 사용 가능한 작업에 대한 링크를 찾을 수 있습니다.

에코시스템작업
GoGo 종속성 제출

예를 들어 다음 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

# Envionment 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@v3
        
      - uses: actions/setup-go@v3
        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

사용자 고유의 작업 만들기

또는 빌드 시 프로젝트에 대한 종속성을 제출하는 고유한 작업을 작성할 수 있습니다. 워크플로는 다음을 수행해야 합니다.

  1. 프로젝트에 대한 종속성 목록을 생성합니다.
  2. 종속성 목록을 종속성 제출 API에서 허용하는 스냅샷 형식으로 변환합니다. 형식에 대한 자세한 내용은 종속성 제출 REST API 설명서의 “리포지토리 스냅샷 만들기” API 작업에 대한 본문 매개 변수를 참조하세요.
  3. 종속성 제출 API에 형식이 지정된 종속성 목록을 제출합니다.

GitHub Enterprise Cloud는 종속성 제출 API에 종속성을 제출하기 위한 고유한 GitHub 작업을 빌드하는 데 도움이 되는 TypeScript 라이브러리인 종속성 제출 도구 키트를 유지 관리합니다. 작업 작성에 대한 자세한 내용은 “작업 만들기”를 참조하세요.