Skip to main content

종속성 제출 API 사용

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

종속성 제출 API 정보

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

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

제출된 종속성은 알려진 취약성에 대해 Dependabot alerts 및 Dependabot security updates를 받게 됩니다. GitHub Advisory Database의 지원되는 에코시스템 중 하나에서 발생한 종속성에 대한 Dependabot alerts만 가져옵니다. 이러한 에코시스템에 대한 자세한 내용은 GitHub Advisory Database 정보을(를) 참조하세요. 종속성 제출 API을(를) 통해 제출된 전환 종속성의 경우 업데이트를 사용할 수 있으면 Dependabot에서 자동으로 끌어오기 요청을 열어 상위 종속성을 업데이트합니다.

제출된 종속성은 종속성 검토에 표시되지만, 조직의 종속성 인사이트에서는 사용할 수 없습니다.

Note

종속성 제출 API 및 종속성 검토 API는 함께 작동합니다. 즉, 종속성 검토 API에는 종속성 제출 API을(를) 통해 제출된 종속성이 포함됩니다.

종속성은 스냅샷 형식으로 종속성 제출 API에 제출됩니다. 스냅샷은 커밋 SHA 및 기타 메타데이터와 연결된 종속성 집합으로, 커밋에 대한 리포지토리의 현재 상태를 반영합니다. 스냅샷은 빌드 시 감지된 종속성 또는 소프트웨어 자료 청구서(SBOM)에서 생성할 수 있습니다. 이러한 사용 사례 중 하나를 지원하는 GitHub Actions이(가) 있습니다. 종속성 제출 API에 대한 자세한 내용은 종속성 제출에 대한 REST API 엔드포인트을(를) 참조하세요.

빌드 시 종속성 제출

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

미리 만들어진 작업 사용

종속성 제출 API을(를) 사용하는 가장 간단한 방법은 종속성 목록을 수집하고 필요한 스냅샷 형식으로 변환한 후 목록을 API에 제출하는 미리 만들어진 작업을 리포지토리에 추가하는 것입니다.

이러한 작업에 대한 자세한 내용은 종속성 그래프에서 지원되는 패키지 에코시스템을(를) 참조하세요

사용자 고유의 작업 만들기

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

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

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

소프트웨어 재료 청구서(SBOM) 생성 및 제출

SBOM은 프로젝트의 종속성 및 관련 정보(예: 버전, 패키지 식별자, 라이선스 및 저작권 정보)의 공식적이고 컴퓨터에서 읽을 수 있는 인벤토리입니다. SBOM은 다음을 통해 공급망 위험을 줄일 수 있습니다.

  • 리포지토리에서 사용하는 종속성에 대한 투명성 제공
  • 프로세스 초기에 취약성을 식별할 수 있도록 허용
  • 코드베이스에 있을 수 있는 라이선스 규정 준수, 보안 또는 품질 문제에 대한 인사이트 제공
  • 다양한 데이터 보호 표준을 더 잘 준수할 수 있도록 지원

소프트웨어 자료 청구서(SBOM) 생성

SBOM을 생성하려면 다음을 사용할 수 있습니다.

작업세부 정보
앵커 SBOM 작업Syft를 사용하여 지원되는 에코시스템으로 SPDX 2.2 호환 가능한 SBOM 만들기
Microsoft의 sbom-tool종속성을 검사하고 SPDX 호환 가능한 SBOM을 만듭니다

종속성 제출 API에 SBOM(소프트웨어 자료 청구서) 제출

알려진 취약점이 있는 종속성에 대해 Dependabot alerts을(를) 받으려면 SBOM을 업로드하여 종속성 제출 API에 제출하면 됩니다. 종속성 제출 API에 SBOM을 제출하려면 다음 표의 작업 중 하나를 사용할 수 있습니다.

Tip

SPDX 종속성 제출 작업Anchore SBOM 작업을 사용하여 SBOM을 생성하고 종속성 제출 API에 제출할 수 있습니다.

작업세부 정보
SPDX 종속성 제출 작업Microsoft의 SBOM 도구를 사용하여 지원되는 에코시스템으로 SPDX 2.2 호환 가능한 SBOM 만들기
앵커 SBOM 작업Syft를 사용하여 지원되는 에코시스템으로 SPDX 2.2 호환 가능한 SBOM 만들기
SBOM 종속성 제출 작업종속성 제출 API에 CycloneDX SBOM 업로드

예를 들어 다음 SPDX 종속성 제출 작업 워크플로는 리포지토리에 대한 종속성을 계산하고, SPDX 2.2 형식으로 내보낼 수 있는 SBOM을 생성하고, 종속성 제출 API에 제출합니다.


name: SBOM upload

on:
  workflow_dispatch:
  push:
    branches: ["main"]

jobs:
  SBOM-upload:

    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: write

    steps:
    - uses: actions/checkout@v4
    - name: Generate SBOM
      # generation command documentation: https://github.com/microsoft/sbom-tool#sbom-generation
      run: |
        curl -Lo $RUNNER_TEMP/sbom-tool https://github.com/microsoft/sbom-tool/releases/latest/download/sbom-tool-linux-x64
        chmod +x $RUNNER_TEMP/sbom-tool
        $RUNNER_TEMP/sbom-tool generate -b . -bc . -pn $ -pv 1.0.0 -ps OwnerName -nsb https://sbom.mycompany.com -V Verbose
    - uses: actions/upload-artifact@v4
      with:
        name: sbom
        path: _manifest/spdx_2.2
    - name: SBOM upload
      uses: advanced-security/spdx-dependency-submission-action@5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3d4e
      with:
        filePath: "_manifest/spdx_2.2/"