Skip to main content

Результаты SARIF превышают одно или несколько ограничений

Узнайте, как решать проблемы, когда файл SARIF отклоняется из-за code scanning превышения одного или нескольких лимитов.

О 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.
  • Обратимые ограничения, определяющие, сколько данных хранится и отображается пользователям.
  • Жесткие ограничения, определяющие максимальный объем данных, принятых для обработки.

Вы можете увидеть эти ошибки для SARIF-файлов, сгенерированных CodeQL сторонними аналитическими инструментами.

Данные SARIFМаксимальные значенияОграничения усечения данных
Выполняется для каждого файла20нет
Результаты на выполнение25,000Будут включены только первые 5000 результатов, приоритетные по серьезности.
Правила для каждого запуска25,000нет
Расширения инструментов для каждого запуска100нет
Расположения потоков на результат10,000Будут включены только первые 1000 расположений потоков, используя приоритет.
Расположение на результат1,000Будут включены только 100 расположений.
Теги для каждого правила20Будут включены только 10 тегов.
Ограничение оповещений1 000 000нет

Сведения о проверке ФАЙЛА SARIF см. в разделе Поддержка SARIF для проверки кода.

Исправление ошибок обратимого ограничения

При превышении мягких лимитов показывается code scanning информация с наивысшим приоритетом. Часто вам не нужно вносить изменения в code scanning конфигурацию. По мере того как команда исправляет оповещения, количество результатов, сообщаемых в каждом запуске, уменьшится до тех пор, пока они не находятся в пределах мягких ограничений и отображаются все результаты. Кроме того, можно использовать подходы, описанные для ошибок жесткого ограничения.

Исправление ошибки "Анализ SARIF-файла отклонен из-за ограничений результатов"

Существует множество рекомендаций и потенциальных решений по сокращению числа результатов, включенных в файл результатов SARIF. Инструкции см. в разделе Файл результатов SARIF слишком велик.

Исправление "Оповещения в SARIF-файле превысили ограничения расположения потока потока"

Вы можете настроить анализ, чтобы ограничить количество путей потока данных, включенных в результаты. По умолчанию для каждого результата включены 4 пути потока данных.

  • Расширенная настройка CodeQL для code scanning: обновите 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 хранить и отображать результаты соответствующим образом. Дополнительные сведения см. в разделе Отправка файла SARIF в GitHub.

Исправление "Анализ SARIF-файла отклонен из-за ограничений правил"

Здесь есть два возможных подхода.

  1. Уменьшите количество правил, используемых для анализа кода. Дополнительные сведения см. в разделе "Определение набора запросов для выполнения и исключения запроса из анализа в файле результатов SARIF слишком большой".
  2. Запустите анализ дважды, каждый раз с разным набором правил, и загрузите оба файла результатов в code scanning. Дополнительные сведения см. в разделе Отправка файла SARIF в GitHub.

Исправление ошибки "Анализ SARIF-файла отклонен из-за ограничений расширения"

Самый простой подход заключается в создании отдельного ФАЙЛА SARIF при каждом запуске средства и отправке каждого файла отдельно. Кроме того, вам может потребоваться связаться с обслуживающим средством. Дополнительные сведения см. в разделе Отправка файла SARIF в GitHub.

          CodeQL анализ не должен порождать такую ошибку. Если вы заметили эту ошибку при использовании CodeQL действия или CodeQL CLI, вам следует связаться Служба поддержки GitHub с нами, чтобы сообщить нам. Дополнительные сведения см. в разделе [AUTOTITLE](/support/contacting-github-support).

Исправление "Анализ SARIF-файла отклонен из-за ограничения расположения"

Лучший способ устранить эту проблему обычно заключается в том, чтобы определить запрос, который сообщает слишком много расположений и исключить его из анализа. Дополнительные сведения о том, как это сделать, см. в разделе Файл результатов SARIF слишком велик.

Исправление ошибки "Анализ SARIF-файла отклонен из-за ограничений тегов правил"

Необходимо обновить ФАЙЛ SARIF или генератор, чтобы массив тегов, сообщаемых для каждого reportingDescriptor объекта, был меньше 10. Дополнительные сведения см properties.tags[] . в autoTITLE.

Исправление "Репозиторий подвержен риску превышения предела оповещений" и "Все отправки анализа заблокированы из-за ограничения оповещений"

Это ограничение вызывается тем, что репозиторий генерирует больше уникальных оповещений, чем когда-либо должно существовать в хорошо функционирующей code scanning конфигурации. Возможно, это связано с выходными данными используемого стороннего инструмента и может не быть ошибкой конфигурации пользователя. Возможны ошибки конфигурации пользователя и ошибка поставщика инструментов.

Чтобы устранить эту проблему, выполните несколько действий.

  1. Посмотрите на SARIF-файлы, которые вы создаёте, чтобы определить причину того, что code scanning оповещения классифицируются как отдельные в разных запусках инструмента. Обычно это связано с одним из следующих:
    • Свойство SARIF artifactLocation.uri (путь файла в пользовательском интерфейсе code scanning оповещения) не является детерминированным из-за включения временных каталогов или сгенерированных имён файлов.
    • Используемое средство создает неустойчивые имена или artifactLocation object uri property значения правил SARIF, которые обычно являются результатом использования хэшей (из фиксаций git или SAS образа Docker, например) или других источников данных, которые изменяются в запусках или средах.
  2. После того как вы определили источник проблемы, необходимо обновить конфигурацию соответствующим образом и обратиться к поставщику инструментов, если его средство является источником нестабильных результатов SARIF.
  3. Остановите отправку результатов сканирования кода для любых сторонних средств, которые создают недетерминированные выходные данные, пока они не будут исправлены поставщиком инструментов.

Дополнительные шаги для параметра "Все отправки анализа заблокированы из-за ограничения оповещений"

Помимо исправления конфигурации сканирования кода и удаления или исправления результатов сторонних инструментов, вам потребуется связаться с оповещением, чтобы помочь удалить оповещения о любых проблемных конфигурациях.

          **В настоящее время нет метода самообслуживания для удаления оповещений, поэтому перед повторной проверкой кода необходимо обратиться в службу поддержки клиентов.**