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
  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 결과 파일의 필드에 두 가지 유형의 제한을 설정합니다.

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

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

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

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[]을(를) 참조하세요.

"리포지토리가 경고 제한을 초과할 위험이 있습니다." 및 "경고 제한으로 인해 차단된 모든 분석 업로드" 해결

이 제한은 잘 작동하는 code scanning 구성의 일부로 존재해야 하는 것보다 더 고유한 경고를 생성하는 리포지토리에 의해 트리거됩니다. 이는 사용 중인 타사 도구의 출력 때문일 수 있으며, 사용자 구성 오류가 아닐 수 있습니다. 사용자 구성 오류와 도구 공급업체 오류가 모두 원인일 수 있습니다.

몇 가지 단계로 이 문제를 해결할 수 있습니다.

  1. 생성되는 SARIF 파일을 확인하여 code scanning 경고가 도구 실행에서 고유하게 분류되는 원인을 파악합니다. 대개 다음 중 하나 때문일 수 있습니다.
    • SARIF artifactLocation.uri 속성(code scanning 경고 사용자 인터페이스의 파일 경로)은 임시 디렉터리 또는 생성된 파일 이름을 포함하기 때문에 결정적이지 않습니다.
    • 사용되는 도구는 불안정한 SARIF 규칙 이름 또는 artifactLocation object uri property 값을 생성합니다. 이는 일반적으로 해시(예: git 커밋 또는 Docker 이미지 SHA에서)를 사용했기 때문이거나 실행 또는 환경에서 변경되는 다른 데이터 원본을 사용했기 때문입니다.
  2. 문제의 원인을 확인한 후에는 구성을 적절하게 업데이트하고 불안정한 SARIF 결과의 원인이 도구인 경우 도구 공급업체에 문의해야 합니다.
  3. 도구 공급업체에서 문제를 해결할 때까지 비결정적 출력을 생성하는 타사 도구에 대한 코드 검색 결과 업로드를 중지합니다.

"경고 제한으로 인해 모든 분석 업로드가 차단됨" 문제에 대한 추가 단계

코드 검색 구성을 수정하고 타사 도구의 출력을 제거하거나 수정하는 것 외에도 GitHub 지원 포털 사용에 문의하여 잘못된 구성에 대한 경고를 삭제하는 데 도움을 주어야 합니다.

현재는 경고를 삭제하는 셀프 서비스 방법이 없으므로, 코드 검사를 다시 사용하도록 설정하려면 고객 지원에 문의해야 합니다.