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
또는
릴리스 페이지에서 원하는 바이너리를 다운로드하십시오.
사용법
이 도구를 인라인 또는 독립 실행형 명령으로 사용할 수 있습니다.
인라인 작업
snyk test --json --print-deps | snyk-delta를 사용하십시오.
org+project좌표를 지정하여 특정 스냅샷을 가리킬 수 있습니다.snyk test --json --print-deps | snyk-delta --baselineOrg xxx --baselineProject xxxsnyk-prevent_commit_status와 함께 사용하고 프로젝트가 모니터링되지 않는 경우--setPassIfNoBaseline을 사용하십시오. 이렇게 하면snyk-prevent_commit_status가 실패하는 것을 방지합니다.setPassIfNoBaseline은 기본적으로false입니다.snyk test --json --print-deps | snyk-delta --baselineOrg xxx --baselineProject xxx --setPassIfNoBaseline true
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 지원팀에 문의하십시오.
Last updated