Skip to main content

SARIF 결과가 한 개 이상의 제한 기준을 초과했습니다.

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

SARIF 결과의 제한에 관한 정보

# 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@v4
      env: 
        CODEQL_ACTION_EXTRA_OPTIONS: '{"database":{"interpret-results":["--max-paths", 1]}}'
    
  • CodeQL CLI database analyze: --max-paths=1 플래그를 포함하도록 데이터베이스 분석 명령을 업데이트합니다. 자세한 내용은 데이터베이스 분석하기을(를) 참조하세요.

참고

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

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

각 실행마다 새로운 SARIF 파일을 생성한 후 개별적으로 업로드하는 것이 가장 간단한 방법입니다. 각 결과에 "범주"를 추가하면 결과를 적절하게 저장하고 표시할 수 code scanning 있습니다. 자세한 내용은 Uploading a SARIF file to GitHub을(를) 참조하세요.

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

이를 위한 접근법은 크게 두 가지로 나뉩니다.

  1. 코드 분석에 적용되는 규칙의 수를 축소합니다. 보다 자세한 사항은 실행할 쿼리 도구 모음 정의분석에서 쿼리 제외 항목을 ‘SARIF 결과 파일이 너무 큼’ 섹션에서 확인하시기 바랍니다.
  2. 각기 다른 규칙 집합으로 분석을 두 번 실행하고 두 결과 파일을 업로드합니다 code scanning. 자세한 내용은 Uploading a SARIF file to GitHub을(를) 참조하세요.

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

도구를 실행하여 각 파일을 업로드할 때마다 개별적인 SARIF 파일을 생성하는 것이 가장 손쉬운 방법입니다. 도구 관리 담당자에게 연락이 필요할 수 있습니다. 자세한 내용은 Uploading a SARIF file to GitHub을(를) 참조하세요.

          CodeQL 분석에서 이 오류를 생성해서는 안 됩니다. 
          CodeQL 작업이나 CodeQL CLI 작업 중에 이 오류가 표시되면, GitHub 지원에 연락하여 알려주세요. 자세한 내용은 [AUTOTITLE](/support/contacting-github-support)을(를) 참조하세요.

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

이 문제를 해결하기 위해서는 과도한 위치 정보를 보고하는 쿼리를 먼저 파악한 후 분석에서 제거하는 것이 가장 효과적입니다. 해당 작업의 세부 수행 절차는 SARIF 결과 파일의 용량이 과도하게 큽니다.에서 확인하실 수 있습니다.

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

reportingDescriptor 개체에 보고된 태그 배열이 10개를 초과하지 않도록 SARIF 파일이나 생성기 설정을 조정해 주시기 바랍니다. 자세한 내용은 properties.tags[]코드 검사에 대한 SARIF 지원를 참조하세요.

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

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

이 문제는 몇 가지 단계를 거쳐 해결 가능합니다.

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

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

코드 검색 구성을 수정하고 타사 도구의 출력을 제거하거나 수정하는 것 외에도 잘못된 구성에 대한 경고를 삭제하는 데 도움이 되도록 연락 사이트 관리자에게 문의 해야 합니다.

          **현재 경고를 직접 삭제할 수 있는 방법이 없기 때문에, 코드 검사를 다시 활성화하려면 고객 지원팀에 문의해야 합니다.**