SARIF에 대한 code scanning 제한
# SARIF results exceed soft limits
Locations for an alert exceeded limits
Analysis SARIF file exceeded alert limits
Rule tags in SARIF file exceed limits
Alert in SARIF upload exceeded thread flow location limits
Repository is at risk of exceeding the alert limit.
# SARIF results exceed hard limit
Alert(s) in SARIF file exceeded thread flow location limits
Analysis SARIF file rejected due to extension limits
Analysis SARIF file rejected due to location limit
Analysis SARIF file rejected due to rule tag limits
Analysis SARIF file rejected due to result limits
Analysis SARIF file rejected due to rule limits
Analysis SARIF file rejected due to run limits
All analysis uploads blocked due to alert limit
Code scanning은(는) SARIF 결과 파일에서 두 가지 유형의 필드 제한을 적용합니다.
- 이는 사용자에게 저장 및 표시 가능한 데이터 용량을 규정하는 소프트 제한 사항입니다.
- 처리할 수 있는 데이터의 최대 용량을 규정하는 엄격한 제한 수치입니다.
SARIF 파일이 CodeQL이나 타사 분석 도구에서 생성되었다면, 해당 파일에서 이러한 오류를 확인할 수 있습니다.
| SARIF 데이터 | 최댓값 | 데이터 잘라내기 제한 |
|---|---|---|
| 파일당 실행 | 20 | None |
| 실행당 결과 | 25,000 | 심각도에 따라 우선 순위가 지정된 상위 5,000개의 결과만 포함됩니다. |
| 실행당 규칙 | 25,000 | None |
| 실행당 도구 확장 | 100 | None |
| 결과당 스레드 흐름 위치 | 10,000 | 우선 순위를 사용하면 상위 1,000개의 스레드 흐름 위치만 포함됩니다. |
| 결과당 위치 | 1,000 | 100개 위치만 포함됩니다. |
| 규칙당 태그 | 20 | 태그 10개만 포함됩니다. |
| 경고 한도 | 1,000,000 | None |
SARIF 파일이 유효한지 확인하는 방법에 대한 자세한 내용은 코드 검사에 대한 SARIF 지원을 참고하시기 바랍니다.
소프트 제한 오류 수정
소프트 제한을 넘어서는 경우, code scanning은 가장 우선순위가 높은 정보부터 선별하여 보여줍니다. 대부분의 경우 code scanning 구성을 수정할 필요가 없습니다. 팀이 경고를 수정하면 각 실행마다 보고되는 결과 수가 감소하여 소프트 한도 내에 머물게 되고, 결국 모든 결과가 표시됩니다. 또는 하드 제한 오류를 해결하기 위해 앞서 설명된 방법들을 적용할 수 있습니다.
"결과 제한으로 인해 거부된 분석 SARIF 파일" 수정
SARIF 결과 파일에 포함되는 결과의 수를 줄이는 방법에는 여러 가지 고려 사항과 해결책이 존재합니다. 지침은 SARIF 결과 파일의 용량이 과도하게 큽니다.을(를) 참조하세요.
"SARIF 파일에 포함된 경고 메시지가 허용된 스레드 흐름 위치 제한을 초과하였습니다." 수정
분석을 구성하여 결과에 포함되는 데이터 흐름 경로의 수를 제한할 수 있습니다. 기본적으로 각 결과마다 4개의 데이터 흐름 경로를 포함하고 있습니다.
데이터 재사용.코드 스캐닝.max-경로 설정 옵션 %}
"실행 제한으로 인해 거부된 분석 SARIF 파일" 수정
각 실행마다 새로운 SARIF 파일을 생성한 후 개별적으로 업로드하는 것이 가장 간단한 방법입니다. 각 결과에 ‘범주’를 지정하면 code scanning가 해당 결과를 올바르게 저장하고 표시할 수 있습니다. 자세한 내용은 GitHub에 SARIF 파일 업로드을(를) 참조하세요.
"규칙 제한으로 인해 거부된 분석 SARIF 파일" 수정
이를 위한 접근법은 크게 두 가지로 나뉩니다.
- 코드 분석에 적용되는 규칙의 수를 축소합니다. 보다 자세한 사항은 실행할 쿼리 도구 모음 정의 및 분석에서 쿼리 제외 항목을 ‘SARIF 결과 파일이 너무 큼’ 섹션에서 확인하시기 바랍니다.
- 분석을 서로 다른 규칙 집합으로 두 차례 실행한 후, 생성된 두 개의 결과 파일을 모두 code scanning에 업로드하세요. 자세한 내용은 GitHub에 SARIF 파일 업로드을(를) 참조하세요.
"확장 제한으로 인해 거부된 분석 SARIF 파일" 수정
도구를 실행하여 각 파일을 업로드할 때마다 개별적인 SARIF 파일을 생성하는 것이 가장 손쉬운 방법입니다. 도구 관리 담당자에게 연락이 필요할 수 있습니다. 자세한 내용은 GitHub에 SARIF 파일 업로드을(를) 참조하세요.
CodeQL 분석에서는 이러한 오류가 발생하지 않아야 합니다. CodeQL 작업 또는 CodeQL CLI를 사용하는 중에 이 오류가 발생하면 GitHub 지원로 문의하시기 바랍니다. 자세한 내용은 GitHub 지원에 문의을(를) 참조하세요.
"위치 제한으로 인해 거부된 분석 SARIF 파일" 수정
이 문제를 해결하기 위해서는 과도한 위치 정보를 보고하는 쿼리를 먼저 파악한 후 분석에서 제거하는 것이 가장 효과적입니다. 해당 작업의 세부 수행 절차는 SARIF 결과 파일의 용량이 과도하게 큽니다.에서 확인하실 수 있습니다.
"태그 제한으로 인해 거부된 분석 SARIF 파일" 수정
각 reportingDescriptor 개체에 보고된 태그 배열이 10개를 초과하지 않도록 SARIF 파일이나 생성기 설정을 조정해 주시기 바랍니다. 자세한 내용은 properties.tags[]의 코드 검사에 대한 SARIF 지원를 참조하세요.
"리포지토리가 경고 제한을 초과할 위험이 있습니다." & "경고 제한으로 인해 차단된 모든 분석 업로드" 해결
이 제한은 제대로 작동하는 code scanning 구성에서 필요한 것보다 더 많은 고유한 경고를 생성하는 리포지토리에 의해 발동됩니다. 이는 사용 중인 타사 도구의 출력에서 비롯된 것일 수 있으며, 사용자의 구성 오류가 아닐 가능성이 있습니다. 사용자의 잘못된 설정과 도구 공급업체의 오류가 모두 이 문제의 원인이 될 수 있습니다.
이 문제는 몇 가지 단계를 거쳐 해결 가능합니다.
- 생성된 SARIF 파일을 검토하여 code scanning 경고가 도구 실행 중에 어떻게 고유하게 분류되는지 파악할 수 있습니다. 이는 보통 다음의 이유 중 하나에서 비롯될 수 있습니다.
- SARIF
artifactLocation.uri속성(code scanning 경고 사용자 인터페이스에 표시되는 파일 경로)은 임시 디렉터리와 생성된 파일 이름을 포함하므로 일관된 결과를 보장하지 못합니다. - 사용되는 도구가 불안정한 SARIF 규칙 이름이나
artifactLocation object uri property값을 생성하는 것은 일반적으로 해시(예: git 커밋이나 Docker 이미지 SHA)를 사용했거나, 실행 또는 환경에 따라 변경되는 다른 데이터 원본을 사용했기 때문입니다.
- SARIF
- 문제의 원인을 파악한 후에는 구성을 적절히 수정하고, 불안정한 SARIF 결과가 도구의 결함에서 비롯된 경우 도구 공급업체에 연락하는 것이 좋습니다.
- 해당 도구 공급업체에서 문제를 조치하기 전까지는, 결과값이 일정하지 않은 타사 도구의 코드 검색 결과 업로드를 일시 중단합니다.
"경고 제한으로 인해 모든 분석 업로드가 차단됨" 문제에 대한 추가 단계
코드 검색 구성을 수정하고 타사 도구의 출력을 제거하거나 조정하는 작업 외에도, 잘못된 구성에 대한 경고를 삭제하려면 GitHub 지원 포털 사용에 도움을 요청해야 합니다.
**현재 경고를 직접 삭제할 수 있는 방법이 없기 때문에, 코드 검사를 다시 활성화하려면 고객 지원팀에 문의해야 합니다.**