snyk-delta

이 도구는 두 Snyk 오픈소스 스냅샷 간의 차이점을 가져오는 수단을 제공합니다. 이는 특히 로컬 환경, Git 후크 등에서 CLI 기반 스캔을 실행할 때 유용합니다.

snyk-delta는 스냅샷을 비교하여 다음에 대한 세부 정보를 제공합니다.

  • 기준 스냅샷에서 찾을 수 없는 새로운 취약점

  • 기준 스냅샷에서 찾을 수 없는 새로운 라이선스 문제

  • 두 스냅샷 간의 종속성 차이:

    • 추가 및 제거된 직접 종속성

    • 추가 및 제거된 간접 종속성

    • 새로운 취약점을 포함하는 플래그 경로

전제 조건

  • Snyk Enterprise 플랜 (Snyk API 필요)

  • 모니터링할 프로젝트

  • SNYK_TOKEN (환경으로 내보내거나 snyk-delta에 인라인으로 제공하거나 snyk config 명령으로 설정된 API 토큰). API 토큰이 설정되었는지 확인하려면 snyk config get api를 실행하십시오. snyk-delta는 OAuth 인증을 지원하지 않습니다.

설치

npm i -g snyk-delta

또는

릴리스 페이지arrow-up-right에서 원하는 바이너리를 다운로드하십시오.

사용법

이 도구를 인라인 또는 독립 실행형 명령으로 사용할 수 있습니다.

인라인 작업

snyk test --json --print-deps | snyk-delta를 사용하십시오.

  • org+project 좌표를 지정하여 특정 스냅샷을 가리킬 수 있습니다. snyk test --json --print-deps | snyk-delta --baselineOrg xxx --baselineProject xxx

  • snyk-prevent_commit_status와 함께 사용하고 프로젝트가 모니터링되지 않는 경우 --setPassIfNoBaseline을 사용하십시오. 이렇게 하면 snyk-prevent_commit_status가 실패하는 것을 방지합니다. setPassIfNoBaseline은 기본적으로 false입니다. snyk test --json --print-deps | snyk-delta --baselineOrg xxx --baselineProject xxx --setPassIfNoBaseline true

circle-info

BaselineProject 값은 이름이 아닌 UUID여야 합니다. Snyk 웹 UI 또는 API를 확인하여 해당 UUID를 검색하십시오.

독립 실행형 작업

snyk-delta --baselineOrg xxx --baselineProject xxx --currentOrg xxx --currentProject xxx --setPassIfNoBaseline false를 사용하십시오.

모듈로 사용법

결과는 숫자입니다.

  • 0: 새로운 문제 없음

  • 1: 새로운 문제(들) 또는 엄격 모드 사용 시 모니터링되지 않는 프로젝트에 문제가 있는 경우 (엄격 모드에서 자세한 내용 참조)

  • 2: 잘못된 인증과 같은 오류

문제에 대한 세부 정보는 표준 출력에 나열됩니다.

snyk-delta 도움말

도움말을 표시하려면 -h를 사용하십시오.

엄격 모드

snyk-delta가 테스트 결과를 비교할 때 Snyk 플랫폼에서 모니터링되는 동일한 프로젝트를 찾으려고 시도합니다. 모니터링되는 프로젝트가 없는 경우 snyk-delta는 CLI 스캔에서 발견된 모든 문제를 반환하여 기본적으로 패스스루 역할을 합니다.

문제가 발견되지 않으면 반환 코드는 0이고 문제가 발견되면 1입니다.

주의

모듈로 사용하려면 Snyk CLI에서 가져온 문제 목록이 필요합니다. snyk-delta는 Snyk API에서 직접 가져온 데이터와 호환되지 않습니다.

모든 프로젝트

snyk-delta--all-projects 옵션을 지원하지 않지만, 지원할 때까지는 snyk_delta_all_projects.sh를 해결 방법으로 사용할 수 있습니다.

snyk-delta 문제 해결

문제가 있는 경우 다음을 시도해 볼 수 있습니다.

  • 먼저 Snyk test -d 단계를 실행하고 작동하는지 확인하십시오.

  • 401 오류가 발생하면 유효한 SNYK_TOKEN이 있는지 확인하거나 snyk config get api를 실행하십시오. 토큰을 환경에 설정하고 싶지 않은 경우 snyk-delta 이전이지만 | 기호 뒤에 SNYK_TOKEN을 인라인 명령으로 제공할 수 있습니다. snyk test --json | SNYK_TOKEN={token} snyk-delta ….{다른 인수}.

  • delta allprojects 스크립트를 사용하는 경우 해당 스크립트를 제거하고 프로젝트를 개별적으로 테스트해 보십시오.

  • 기준선이 발견되지 않으면 기존 모니터링되는 프로젝트가 있는지 확인하고 SCM 모니터링되는 프로젝트와 일치시키려는 경우 .git 메타데이터를 확인하십시오.

도움이 필요하면 Snyk 지원팀arrow-up-right에 문의하십시오.

Last updated