Snyk CLI에서 snyk code test를 실행할 때 무시 규칙이 고려됩니다.
Snyk Code 일관된 무시 기능을 사용하려면 Snyk CLI v1.1297.1 이상이 설치되어 있어야 합니다. Snyk CLI 설치 또는 업데이트를 참조하십시오.
무시 규칙이 적용되도록 하려면 무시가 저장된 조직(Organization)을 지정하십시오.
그룹 레벨 정책도 모든 조직으로 연계되어 적용됩니다. CLI에서 사용할 조직을 선택하는 방법을 참조하십시오.
자산 범위 무시(asset-scoped ignores)가 효력을 발휘하려면 리포지토리 컨텍스트가 필요합니다. CWE 또는 Snyk Code 규칙 ID를 기반으로 하는 정책 기반 무시는 리포지토리 컨텍스트와 관계없이 계속 적용됩니다.
.git 디렉토리가 있으면 snyk code test가 리포지토리 컨텍스트를 자동으로 감지합니다. 그렇지 않은 경우 --remote-repo-url 옵션을 사용하여 명시적으로 지정할 수 있습니다. Git URL을 확인하려면 git remote -v를 실행하십시오.
Snyk CLI의 기본 무시 동작
snyk code test를 실행할 때 CLI 출력은 기본적으로 무시된 결과를 숨깁니다. 무시되지 않은 결과와 총 이슈 수(열림 및 무시됨)를 보여주는 요약 테이블만 표시합니다.
Snyk CLI에서 무시 확인
snyk code test 실행 후, CLI는 무시된 결과를 표시하기 위해 --include-ignores 파라미터를 사용하는 것에 대한 힌트를 표시합니다.
snyk code test --include-ignores를 실행하면 무시된 결과와 해당 메타데이터가 열려 있는 결과 아래에 표시됩니다.
SARIF 출력의 suppressions 모듈에서 무시 메타데이터를 찾을 수 있습니다. 이 출력을 보려면 snyk code test --json 또는 snyk code test --sarif를 실행하십시오.
JSON 및 SARIF 출력에서 발견 사항 식별자 액세스
Snyk CLI의 JSON 및 SARIF 출력에는 발견 사항 식별자(finding identifier)가 포함되어 있습니다. 이를 보려면 snyk code test --json을 실행하고 JSON 출력에서 runs.results[n].fingerprints.snyk/assets/finding/v1으로 이동하십시오. Snyk Code가 이슈를 식별하고 추적하는 방법을 참조하십시오.
이 식별자를 사용하여 API 호출을 통해 새로운 무시를 생성할 수 있습니다.
CI/CD 파이프라인에서의 무시
Snyk CLI에서 무시가 고려되는 것과 마찬가지로, Snyk CLI가 CI/CD 파이프라인에 통합된 경우에도 동일하게 적용됩니다. 예를 들어, 파이프라인에서 snyk code test –severity-threshold=high 명령을 사용하고 무시되지 않은 높은 심각도 결과가 없다면, Snyk CLI는 0(성공) 상태 코드로 종료되고 빌드는 성공합니다.
다음 예시는 Snyk Code가 높은 심각도의 하드코딩된 비밀(hardcoded secrets)을 감지하여 GitHub Action 워크플로우가 종료 코드 1로 실패한 경우를 보여줍니다.
높은 심각도의 하드코딩된 비밀 감지로 인한 GitHub Action 워크플로우 실패 (종료 코드 1) 그룹 정책(Group Policies)을 통해 무시가 적용된 시나리오에서는, Snyk Code가 스캔을 성공적으로 완료하여 열린 이슈가 0개이며 종료 코드 0을 반환합니다.
높은 심각도 이슈가 무시되어 GitHub Action 워크플로우 성공 (종료 코드 0)