Skip to main content

SARIF 결과가 하나 이상의 제한을 초과합니다.

하나 이상의 제한이 초과되어 code scanning에서 SARIF 파일이 거부될 때 발생하는 문제를 해결하는 방법을 알아봅니다.

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

# 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

Code scanning은(는) SARIF 결과 파일의 필드에 두 가지 유형의 제한을 설정합니다.

  • 사용자에게 저장되고 표시되는 데이터의 양을 결정하는 소프트 제한입니다.
  • 처리에 허용되는 최대 데이터 양을 결정하는 하드 제한입니다.

CodeQL 또는 타사 분석 도구에서 생성된 SARIF 파일에 대해 이러한 오류를 확인할 수 있습니다.

SARIF 데이터최댓값표시 제한
파일당 실행20None
실행당 결과25,000심각도에 따라 우선 순위가 지정된 상위 5,000개의 결과만 포함됩니다.
실행당 규칙25,000None
실행당 도구 확장100None
결과당 스레드 흐름 위치10,000우선 순위를 사용하면 상위 1,000개의 스레드 흐름 위치만 포함됩니다.
결과당 위치1,000100개 위치만 포함됩니다.
규칙당 태그20태그 10개만 포함됩니다.

SARIF 파일의 유효성을 검사하는 방법에 대한 자세한 내용은 "코드 검사에 대한 SARIF 지원"을(를) 참조하십시오.

소프트 제한 오류 수정

소프트 제한을 초과하면 code scanning에 가장 높은 우선 순위 정보가 표시됩니다. code scanning 구성을 변경할 필요가 없는 경우가 많습니다. 팀에서 경고를 수정하면 각 실행에서 보고된 결과 수가 소프트 한도 내에 있고 모든 결과가 표시될 때까지 감소합니다. 또는 하드 제한 오류에 대해 설명된 방법을 사용할 수 있습니다.

"결과 제한으로 인해 거부된 분석 SARIF 파일" 수정

SARIF 결과 파일에 포함된 결과 수를 줄이기 위한 많은 고려 사항과 잠재적인 솔루션이 있습니다. 지침은 "SARIF 결과 파일이 너무 큼"을(를) 참조하십시오.

"SARIF 파일의 경고가 스레드 흐름 위치 제한을 초과했습니다." 수정

결과에 포함된 데이터 흐름 경로 수를 제한하도록 분석을 구성할 수 있습니다. 기본적으로 각 결과에 대해 4개의 데이터 흐름 경로가 포함됩니다.

  • 에 대한 code scanning에 대한 CodeQL 고급 설정: 경로 수를 최대 1 또는 0으로 제한하도록 analyze 단계를 업데이트합니다.

    - name: Perform CodeQL Analysis
      uses: github/codeql-action/analyze@v3
      env: 
        CODEQL_ACTION_EXTRA_OPTIONS: '{"database":{"interpret-results":["--max-paths", 1]}}'
    
  • CodeQL CLI database analyze: --max-paths=1 플래그를 포함하도록 데이터베이스 분석 명령을 업데이트합니다. 자세한 내용은 "데이터베이스 분석"을 참조하세요.

참고: max-paths 설정은 모든 데이터 흐름 쿼리의 결과에 영향을 줍니다.

"실행 제한으로 인해 거부된 분석 SARIF 파일" 수정

가장 간단한 방법은 각 실행에 대해 새 SARIF 파일을 생성하고 각 파일을 개별적으로 업로드하는 것입니다. 각 결과에 "범주"를 추가하면 code scanning에서 결과를 적절하게 저장하고 표시할 수 있습니다. 자세한 내용은 "코드 검사에 대한 SARIF 지원"을(를) 참조하십시오.

"규칙 제한으로 인해 거부된 분석 SARIF 파일" 수정

여기에는 두 가지 접근 방식이 있습니다.

  1. 코드를 분석하는 데 사용하는 규칙 수를 줄입니다. 자세한 내용은 "SARIF 결과 파일이 너무 큼"에서 "실행할 쿼리 도구 모음 정의" 및 "분석에서 쿼리 제외"를 참조하세요.
  2. 매번 다른 규칙 집합으로 분석을 두 번 실행하고 두 결과 파일을 code scanning에 업로드합니다. 자세한 내용은 "코드 검사에 대한 SARIF 지원"을(를) 참조하십시오.

"확장 제한으로 인해 거부된 분석 SARIF 파일" 수정

가장 간단한 방법은 도구를 실행하고 각 파일을 개별적으로 업로드할 때마다 별도의 SARIF 파일을 만드는 것입니다. 도구의 유지 관리자에 문의해야 할 수도 있습니다. 자세한 내용은 "코드 검사에 대한 SARIF 지원"을(를) 참조하십시오.

CodeQL 분석은 이 오류를 생성하지 않아야 합니다. CodeQL 작업 또는 CodeQL CLI을(를) 사용하는 동안 이 오류가 표시되면 GitHub 지원에 문의하여 알려야 합니다. 자세한 내용은 "GitHub 지원에 문의"을(를) 참조하십시오.

"위치 제한으로 인해 거부된 분석 SARIF 파일" 수정

이 문제를 해결하는 가장 좋은 방법은 일반적으로 너무 많은 위치를 보고하는 쿼리를 식별하고 분석에서 제외하는 것입니다. 이 작업을 수행하는 방법에 대한 자세한 내용은 "SARIF 결과 파일이 너무 큼"을 참조하세요.

"규칙 태그 제한으로 인해 거부된 분석 SARIF 파일" 수정

reportingDescriptor 개체에 대해 보고된 태그 배열이 10개 미만이 되도록 SARIF 파일 또는 생성기를 업데이트해야 합니다. 자세한 내용은 "코드 검사에 대한 SARIF 지원"의 properties.tags[]을(를) 참조하세요.