{"meta":{"title":"Поддержка SARIF для проверки кода","intro":"Убедитесь, что ваши SARIF-файлы от сторонних инструментов соответствуют стандартам GitHub.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/reference","title":"Reference"},{"href":"/ru/code-security/reference/code-scanning","title":"Проверка кода"},{"href":"/ru/code-security/reference/code-scanning/sarif-files","title":"Файлы SARIF"},{"href":"/ru/code-security/reference/code-scanning/sarif-files/sarif-support-for-code-scanning","title":"Поддержка SARIF"}],"documentType":"article"},"body":"# Поддержка SARIF для проверки кода\n\nУбедитесь, что ваши SARIF-файлы от сторонних инструментов соответствуют стандартам GitHub.\n\nGitHub может парсировать файлы SARIF, созданные сторонними инструментами, для отображения code scanning оповещений в репозиториях. Дополнительные сведения см. в разделе [О файлах SARIF для сканирования кода](/ru/code-security/concepts/code-scanning/sarif-files).\n\nВ этой статье выделяются ключевые свойства файлов SARIF, которые помогут вам загружать файлы, соответствующие требованиям GitHub и которые могут быть преобразованы в полезные оповещения.\n\nЕсли вы используете GitHub Actions с переменными данных.code-scanning.codeql\\_workflow %} или с помощью CodeQL CLI, то результаты code scanning будут автоматически использовать поддерживаемую подмножество SARIF 2.1.0.\n\n## Данные для предотвращения дублирования оповещений\n\nПри каждой отправке результатов новой проверки кода эти результаты обрабатываются, а в репозиторий добавляются предупреждения. Чтобы предотвратить дублирование оповещений для одной и той же проблемы, code scanning использует отпечатки, позволяющие сопоставлять результаты различных запусков. Поэтому оповещения появляются только один раз в последнем запуске выбранной ветви. Это позволяет сопоставлять оповещения с правильной строкой кода при правке файлов. Значение `ruleId` для результата должно быть одинаковым для анализа.\n\n### Согласованные пути файлов\n\nПуть к файлу должен быть одинаковым во всех запусках, чтобы обеспечить вычисление стабильного отпечатка пальца. Если в одном результате путь к файлу отличается, будет создаваться новый анализ и новое оповещение, а старое будет закрываться. Это приведет к созданию нескольких оповещений для одного результата.\n\n### Генерация отпечатков пальцев\n\nGitHub использует свойство `partialFingerprints` в стандарте OASIS, чтобы определить логическую идентичность двух результатов. Дополнительные сведения см [. в записи свойств](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html#_Toc16012611) partialFingerprints в документации ПО OASIS.\n\nФАЙЛЫ SARIF, созданные Рабочий процесс анализа CodeQL, или с помощью CodeQL CLI включают данные отпечатков пальцев. Если вы отправили файл SARIF с помощью действия `upload-sarif`, но эти данные отсутствуют, GitHub пытается заполнить поле `partialFingerprints` из исходных файлов. Дополнительные сведения о отправке результатов см. в разделе [Отправка файла SARIF в GitHub](/ru/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github).\n\nЕсли вы отправляете файл SARIF без данных отпечатков с помощью конечной точки API `/code-scanning/sarifs`, оповещения code scanning будут обрабатываться и отображаться, но пользователи могут видеть повторяющиеся оповещения. Чтобы избежать появления повторяющихся оповещений, следует вычислить данные отпечатка и заполнить свойство `partialFingerprints` перед отправкой файла SARIF. Вы можете найти скрипт, в котором действие `upload-sarif` использует полезную отправную точку: <https://github.com/github/codeql-action/blob/main/src/fingerprints.ts>. Дополнительные сведения об API см. в разделе [Конечные точки REST API для сканирования кода](/ru/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data).\n\n## Правила и результаты\n\nФайлы SARIF поддерживают как правила, так и результаты. Информация, хранящаяся в этих элементах, аналогична, но предназначена для разных целей.\n\n* Правила — это массив объектов `reportingDescriptor`, включенных в объект `toolComponent`. Здесь хранятся сведения о правилах, выполняемых во время анализа. Информация в этих объектах должна изменяться редко, обычно при обновлении средства.\n* Результаты хранятся в виде ряда объектов `result` в `results` в объекте `run`. Каждый объект `result` содержит сведения об одном оповещении в базе кода. В объекте `results` можно ссылаться на правило, которое обнаружило оповещение.\n\nСравнивая файлы SARIF, созданные путем анализа разных баз кода, с одним и тем же средством и правилами, вы должны увидеть различия в результатах анализа, но не в правилах.\n\n## Расположение исходных файлов\n\nУказание расположений и строк исходного файла гарантирует отображение оповещений сканирования кода точно в файле, содержав обнаруженную проблему, что позволяет разрешить решение целевой проблемы.\n\nЭта точность повышает эффективность процессов проверки и разрешения кода, упрощая рабочие процессы разработки, позволяя разработчикам решать проблемы непосредственно в контексте их базы кода.\n\nCode scanning также отображает оповещения в результатах проверки запроса на вытягивание, если все строки кода, идентифицированные оповещением, существуют в диффе запроса на вытягивание.\n\nДля отображения в проверке запроса на вытягивание оповещение должно соответствовать всем следующим условиям:\n\n* Все строки кода, определяемые оповещением, существуют в диффе запроса на вытягивание, включая первую строку оповещения.\n* Оповещение должно существовать в строках кода, добавленных или измененных в запросе на вытягивание, а не в строках, которые были удалены.\n\nОбъект `physicalLocation` в отправленном ФАЙЛЕ SARIF определяет строки кода для оповещения. Дополнительные сведения см. в разделе [`physicalLocation` \"Объект](#physicallocation-object)\".\n\n### Корневой адрес исходных файлов\n\nCode scanning интерпретирует результаты, сообщаемые с относительными путями относительно корня проанализированного репозитория. Если результат содержит абсолютный URI, URI преобразуется в относительный URI. Затем относительный URI можно сопоставить с файлом, зафиксированным в репозитории.\n\nИсходный корень для преобразования из абсолютного в относительный URI можно указать одним из следующих способов.\n\n* Входные данные [`checkout_path`](https://github.com/github/codeql-action/blob/c2c0a2908e95769d01b907f9930050ecb5cf050d/analyze/action.yml#L44-L47) для действия `github/codeql-action/analyze`.\n* Параметр `checkout_uri` для конечной точки API отправки SARIF. Дополнительные сведения см. в разделе [Конечные точки REST API для сканирования кода](/ru/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data).\n* [\n  `invocations[0].workingDirectory.uri`\n  ](https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.html#_Toc9244365) свойство в объекте `run` в ФАЙЛЕ SARIF\n\nЕсли указать корень источника, любое расположение артефакта, указанное с помощью абсолютного универсального кода ресурса (URI), должно использовать ту же схему URI. Если между схемой URI источника и одним или несколькими абсолютными URI существует несоответствие, отправка отклоняется.\n\nНапример, SARIF-файл отправляется с помощью исходного корневого каталога `file:///github/workspace`.\n\n```shell\n# Conversion of absolute URIs to relative URIs for location artifacts\n\nfile:///github/workspace/src/main.go -> src/main.go\nfile:///tmp/go-build/tmp.go          -> file:///tmp/go-build/tmp.go\n```\n\nФайл успешно отправлен, так как оба абсолютных URI используют ту же схему URI, что и исходный корневой каталог.\n\n### Разрешение симлинков\n\nЕсли относительный универсальный код ресурса (URI) для результата сопоставляется с файлом, определенным с помощью асимметричной связи, сканирование кода не может отобразить результат. Таким образом, необходимо разрешить все симлинированные файлы и сообщить о любых результатах в этих файлах с помощью разрешенного URI.\n\n## Совместимость файлов\n\n<!--UI-LINK: When code scanning fails, the error banner shown in the Security > Code scanning alerts view links to this anchor.-->\n\nВы можете проверить, совместим ли ФАЙЛ SARIF с code scanning, проверив его с помощью правил приема GitHub . Дополнительные сведения см. на странице [проверяющего элемента управления SARIF Microsoft](https://sarifweb.azurewebsites.net/).\n\nДля каждого сжатых gzip-файла SARIF отправка SARIF поддерживает максимальный размер 10 МБ. Любые отправки свыше этого ограничения будут отклонены. Если файл SARIF слишком большой, так как он содержит слишком много результатов, необходимо обновить конфигурацию, чтобы сосредоточиться на результатах для наиболее важных правил или запросов. Дополнительные сведения см. в разделе [Файл результатов SARIF слишком велик](/ru/code-security/how-tos/scan-code-for-vulnerabilities/troubleshooting/troubleshooting-sarif-uploads/file-too-large).\n\nCode scanning поддерживает отправку максимального количества записей для объектов данных в следующей таблице. Если любой из этих объектов превышает максимальное значение, то файл SARIF отклоняется. Для некоторых объектов также существует дополнительное ограничение на количество отображаемых значений. По возможности отображаются наиболее важные значения. Чтобы получить большую часть анализа при добавлении данных выше поддерживаемых ограничений, попробуйте оптимизировать конфигурацию анализа (например, для средства CodeQL и определить и отключить самые шумные запросы. Дополнительные сведения см. в разделе [Результаты SARIF превышают одно или несколько ограничений](/ru/code-security/how-tos/scan-code-for-vulnerabilities/troubleshooting/troubleshooting-sarif-uploads/results-exceed-limit).\n\n<div class=\"ghd-tool rowheaders\">\n\n| **Данные SARIF**                            | **Максимальные значения** | **Ограничения усечения данных**                                              |\n| ------------------------------------------- | :-----------------------: | ---------------------------------------------------------------------------- |\n| Выполняется для каждого файла               |             20            | нет                                                                          |\n| Результаты на выполнение                    |           25,000          | Будут включены только первые 5000 результатов, приоритетные по серьезности.  |\n| Правила для каждого запуска                 |           25,000          | нет                                                                          |\n| Расширения инструментов для каждого запуска |            100            | нет                                                                          |\n| Расположения потоков на результат           |           10,000          | Будут включены только первые 1000 расположений потоков, используя приоритет. |\n| Расположение на результат                   |           1,000           | Будут включены только 100 расположений.                                      |\n| Теги для каждого правила                    |             20            | Будут включены только 10 тегов.                                              |\n| Ограничение оповещений                      |         1 000 000         | нет                                                                          |\n\n</div>\n\nДля информации о других ошибках см. [Устранение неполадок отправки SARIF](/ru/code-security/how-tos/scan-code-for-vulnerabilities/troubleshooting/troubleshooting-sarif-uploads).\n\n## Поддерживаемые свойства\n\nПри использовании подсистемы анализа кода, отличной от CodeQL, можно проверить поддерживаемые свойства SARIF, чтобы оптимизировать способ отображения результатов анализа в GitHub.\n\n> \\[!NOTE]\n> Необходимо указать явное значение для любого свойства, помеченного как обязательное. Пустая строка не поддерживается для обязательных свойств.\n\nЛюбой допустимый выходной файл SARIF 2.1.0 можно отправить, но code scanning будет использовать только указанные ниже поддерживаемые свойства.\n\n### объект `sarifLog`\n\n| Имя.      | Обязательно                                                                                                                                                                                                                                                                                                             | Description                                                                                                                                                                                             |\n| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `$schema` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Универсальный код ресурса (URI) схемы JSON для SARIF версии 2.1.0. Например: `https://json.schemastore.org/sarif-2.1.0.json`.                                                                           |\n| `version` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Code scanning поддерживает только версию `2.1.0`SARIF.                                                                                                                                                  |\n| `runs[]`  | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Файл SARIF содержит массив из одного или нескольких запусков. Каждый запуск представляет собой один запуск средства анализа. Дополнительные сведения о `run` см. в разделе [Объект `run`](#run-object). |\n\n### объект `run`\n\nCode scanning использует `run` объект для фильтрации результатов по инструменту и предоставления сведений об источнике результата. Объект `run` содержит объект компонента средства `tool.driver`, содержащий сведения о средстве, которое создало результаты. Каждый объект `run` может содержать только результаты для одного средства анализа.\n\n| Имя.                              | Обязательно                                                                                                                                                                                                                                                                                                                                                                                                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                                |\n| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `tool.driver`                     | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Объект `toolComponent`, описывающий средство анализа. Дополнительные сведения см. в разделе [Объект `toolComponent`](#toolcomponent-object).                                                                                                                                                                                                                                                                                               |\n| `tool.extensions[]`               | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Массив объектов `toolComponent`, представляющих все подключаемые модули или расширения, используемые средством во время анализа. Дополнительные сведения см. в разделе [Объект `toolComponent`](#toolcomponent-object).                                                                                                                                                                                                                    |\n| `invocation.workingDirectory.uri` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Это поле используется только в том случае, если `checkout_uri` (только API отправки SARIF) или `checkout_path` (только GitHub Actions не предоставляются. Значение используется для преобразования абсолютных URI, используемых в [объектах `physicalLocation`](#physicallocation-object) в относительные URI. Дополнительные сведения см. в разделе [\"Указание корневого каталога\" для исходных файлов](#root-location-for-source-files). |\n| `results[]`                       | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Результаты средства анализа. Code scanning отображает результаты на GitHub. Дополнительные сведения см. в разделе [Объект `result`](#result-object).                                                                                                                                                                                                                                                                                       |\n\n### объект `toolComponent`\n\n| Имя.              | Обязательно                                                                                                                                                                                                                                                                                                                                                                                                                  | Description                                                                                                                                                                                                                                                                                                                                                                                                                        |\n| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `name`            | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Имя средства анализа. Code scanning отображает имя GitHub для фильтрации результатов по инструменту.                                                                                                                                                                                                                                                                                                                               |\n| `version`         | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Версия средства анализа. Code scanning использует номер версии для отслеживания изменений результатов из-за изменения версии средства, а не изменения в анализируемом коде. Если файл SARIF содержит поле `semanticVersion`, code scanning не использует `version`.                                                                                                                                                                |\n| `semanticVersion` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Версия средства анализа, заданная форматом Семантического версионирования 2.0. Code scanning использует номер версии для отслеживания изменений результатов из-за изменения версии средства, а не изменения в анализируемом коде. Если файл SARIF содержит поле `semanticVersion`, code scanning не использует `version`. Дополнительные сведения см. в документации [по семантической версии версии 2.0.0](https://semver.org/) . |\n| `rules[]`         | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Массив объектов `reportingDescriptor`, представляющих правила. Средство анализа использует правила для поиска проблем в анализируемом коде. Дополнительные сведения см. в разделе [Объект `reportingDescriptor`](#reportingdescriptor-object).                                                                                                                                                                                     |\n\n### объект `reportingDescriptor`\n\nЗдесь хранятся сведения о правилах, выполняемых во время анализа. Информация в этих объектах должна изменяться редко, обычно при обновлении средства. Для получения дополнительной информации см. [Правила и результаты](#rules-and-results) выше.\n\n| Имя. | Обязательно                                                                                                                                                                                                                                                                                                             | Description                       |\n| ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- |\n| `id` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Уникальный идентификатор правила. |\n\n```\n          `id` ссылается на другие части файла SARIF, а code scanning может его использовать для отображения URL-адресов в GitHub. |\n```\n\n\\| `name` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Имя правила. Code scanning отображает имя, позволяющее фильтровать результаты по правилу на GitHub. Ограничено 255 символами. |\n\\| `shortDescription.text` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Краткое описание правила. Code scanning отображает краткое описание для GitHub рядом с соответствующими результатами. Ограничено 1024 символами.\n\\| `fullDescription.text` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Описание правила. Code scanning отображает полное описание GitHub рядом с соответствующими результатами. Ограничено 1024 символами.\n\\| `defaultConfiguration.level` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Уровень серьезности правила по умолчанию. Code scanning использует уровни серьезности, чтобы понять, насколько важен результат для данного правила. По умолчанию `defaultConfiguration.level` задано значение `warning`. Однако можно переопределить уровень по умолчанию для правила, задав `level` атрибут в объекте, связанном `result` с результатом. Дополнительные сведения см. в документации по объекту[`result`](#result-object). Допустимые значения`defaultConfiguration.level`: `note``warning` и `error`.\n\\| `help.text` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Документация по правилу с использованием текстового формата. Code scanning отображает эту справочную документацию рядом с соответствующими результатами.\n\\| `help.markdown` |<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | (Рекомендуется) Документация по правилу с использованием формата Markdown. Code scanning отображает эту справочную документацию рядом с соответствующими результатами. Если объект `help.markdown` доступен, то отображается вместо `help.text`.\n\\| `properties.tags[]` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Массив строк. Code scanning используется `tags` для фильтрации результатов на GitHub. Например, можно отфильтровать все результаты с тегом `security`.\n\\| `properties.precision` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | (Рекомендуется) Строка, указывающая, насколько часто результаты, указанные этим правилом, являются истинными. Например, если правило имеет известный высокий ложноположительный коэффициент, то точность должна быть `low`. Code scanning упорядочивает результаты по точности GitHub таким образом, чтобы результаты с наибольшим `level`значением отображались `precision` сначала. Это может быть `very-high`, `high`, `medium` или `low`.\n\\| `properties.problem.severity` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | (Рекомендуется) Строка, указывающая уровень серьезности любых оповещений, создаваемых запросом, небезопасным. Со свойством `properties.precision` определяет, отображаются ли результаты по умолчанию в GitHub так, чтобы сначала отображались результаты с наивысшим значением `problem.severity` и наибольшей `precision`. Это может быть `error`, `warning` или `recommendation`.\n\\| `properties.security-severity` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | (Рекомендуется только для правил безопасности) Если вы включаете значение для этого поля, результаты правила рассматриваются как результаты безопасности. Строка, представляющая оценку, которая указывает уровень серьезности, значение, превышающее 0,0 до 10,0, для запросов безопасности (`@tags` включая `security`). Со свойством `properties.precision` определяет, отображаются ли результаты по умолчанию в GitHub так, чтобы сначала отображались результаты с наивысшим значением `security-severity` и наибольшей `precision`. Code scanning преобразует числовые оценки следующим образом: более 9,0 — `critical`от 7,0 до 8,9 `high`, от 4,0 до 6,9 — `medium` от 0,1 до 3,9 `low`. Значение 0.0 или любое другое значение за пределами заданного диапазона считается отсутствием серьезности безопасности.\n\n### объект `result`\n\nКаждый объект `result` содержит сведения об одном оповещении в базе кода. В объекте `results` можно ссылаться на правило, которое обнаружило оповещение. Для получения дополнительной информации см. [Правила и результаты](#rules-and-results) выше.\n\n| Имя.           | Обязательно                                                                                                                                                                                                                                                                                                                                                                                                                  | Description                                                                                                                                                                                                                                                     |\n| -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `ruleId`       | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Уникальный идентификатор правила (`reportingDescriptor.id`). Дополнительные сведения см. в разделе [Объект `reportingDescriptor`](#reportingdescriptor-object). Code scanning использует идентификатор правила для фильтрации результатов по правилу на GitHub. |\n| `ruleIndex`    | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Индекс связанного правила (объект `reportingDescriptor`) в массиве `rules` компонента средства. Дополнительные сведения см. в разделе [Объект `run`](#run-object). Допустимый диапазон для этого свойства от 0 до 2^63 – 1.                                     |\n| `rule`         | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Ссылка, используемая для поиска правила (дескриптора отчетности) для этого результата. Дополнительные сведения см. в разделе [Объект `reportingDescriptor`](#reportingdescriptor-object).                                                                       |\n| `level`        | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Серьезность результата. Этот уровень переопределяет серьезность по умолчанию, определенную правилом. Code scanning использует уровень для фильтрации результатов по уровню серьезности на GitHub.                                                               |\n| `message.text` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Сообщение, которое описывает результат. Code scanning отображает текст сообщения в качестве заголовка результата. Если видимое пространство ограничено, отображается только первое предложение сообщения.                                                       |\n| `locations[]`  | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Набор расположений, в которых был обнаружен результат ( не более 10). Следует включить только одно расположение, если проблему не получается исправить только внесением изменений в каждом указанном расположении.                                              |\n\n```\n          **Примечание.** Для отображения результата требуется по крайней мере одно расположение для code scanning. Code scanning будет использовать это свойство, чтобы решить, какой файл следует пользоваться результатом. Используется только первое значение этого массива. Все остальные значения не учитываются.\n```\n\n\\| `partialFingerprints`| <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Набор строк, используемых для отслеживания уникального идентификатора результата. Code scanning используется `partialFingerprints` для точного определения результатов в фиксациях и ветвях. Code scanning попытается использовать `partialFingerprints` , если они существуют. Если вы отправляете сторонние файлы SARIF с помощью `upload-action`, то для вас действие создаст `partialFingerprints` (если их нет в файле SARIF). Дополнительные сведения см. в разделе [\"Предоставление данных для отслеживания оповещений сканирования кода в разных запусках](#data-for-preventing-duplicated-alerts)\".\n**Примечание.** Code scanning использует только те `primaryLocationLineHash`данные.\n\\| `codeFlows[].threadFlows[].locations[]`| <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Массив объектов `location` для объекта `threadFlow`, который описывает ход выполнения программы через поток выполнения. Объект `codeFlow` описывает шаблон выполнения кода для обнаружения результата. Если потоки кода предоставлены, code scanning развернет потоки кода в GitHub для соответствующего результата. Дополнительные сведения см. в разделе [Объект `location`](#location-object).\n\\| `relatedLocations[]`| <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Набор расположений, относящихся к этому результату. Code scanning будет связываться со связанными расположениями, когда они внедрены в результирующий сообщение. Дополнительные сведения см. в разделе [Объект `location`](#location-object).\n\n### объект `location`\n\nРасположение в артефакте программирования, например файл в репозитории или файл, созданный во время сборки.\n\n| Имя.                        | Обязательно                                                                                                                                                                                                                                                                                                                                                                                                                  | Description                                                                                                                                                               |\n| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `location.id`               | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Уникальный идентификатор, отличающий это расположение от всех остальных расположений в одном объекте результата. Допустимый диапазон для этого свойства от 0 до 2^63 – 1. |\n| `location.physicalLocation` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg>                                                                                                      | Идентифицирует артефакт и регион. Более подробную информацию см. в разделе [`physicalLocation`](#physicallocation-object).                                                |\n| `location.message.text`     | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Сообщение, соответствующее расположению.                                                                                                                                  |\n\n### объект `physicalLocation`\n\n| Имя.                   | Обязательно                                                                                                                                                                                                                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                         |\n| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `artifactLocation.uri` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Универсальный код ресурса (URI), указывающий расположение артефакта, обычно это файл в репозитории или созданный во время сборки. Для получения лучших результатов мы рекомендуем использовать относительный путь от корня анализируемого репозитория GitHub. Например: `src/main.js`. Дополнительные сведения о URI артефактов см. в разделе [\"Указание корневого каталога\" для исходных файлов](#root-location-for-source-files). |\n| `region.startLine`     | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Номер строки первого символа в регионе.                                                                                                                                                                                                                                                                                                                                                                                             |\n| `region.startColumn`   | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Номер столбца первого символа в регионе.                                                                                                                                                                                                                                                                                                                                                                                            |\n| `region.endLine`       | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Номер строки последнего символа в регионе.                                                                                                                                                                                                                                                                                                                                                                                          |\n| `region.endColumn`     | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-check\" aria-label=\"Required\" role=\"img\"><path d=\"M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z\"></path></svg> | Номер столбца символа, следующего за концом региона.                                                                                                                                                                                                                                                                                                                                                                                |\n\n### объект `runAutomationDetails`\n\nОбъект `runAutomationDetails` содержит сведения, указывающие идентификатор выполнения.\n\n| Имя. | Обязательно                                                                                                                                                                                                                                                                                                                                                                                                                  | Description                                                                                                                                                                                                                  |\n| ---- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `id` | <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-x\" aria-label=\"x icon\" role=\"img\"><path d=\"M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z\"></path></svg> | Строка, идентифицирующая категорию анализа и идентификатор выполнения. Используйте, если вы хотите передать несколько файлов SARIF для одного и того же средства и фиксации, но для разных языков или различных частей кода. |\n\nИспользование объекта `runAutomationDetails` не является обязательным.\n\nПоле `id` может включать категорию анализа и идентификатор выполнения. Мы не используем элемент идентификатора выполнения в поле `id`, но сохраняем его.\n\nИспользуйте эту категорию для различения нескольких анализов для одного и того же средства или фиксации, но для разных языков или различных элементов кода. Используйте идентификатор выполнения, чтобы определить конкретный запуск анализа, например дату запуска анализа.\n\n```\n          `id` интерпретируется как `category/run-id`. Если `id` содержит косую черту (`/`), то вся строка является `run_id`, а `category` будет пустой. В противном случае `category` является все, что находится в строке до последней косой черты, а все, что после нее — `run_id`.\n```\n\n| `id`                         | категория         | `run_id`            |\n| ---------------------------- | ----------------- | ------------------- |\n| my-analysis/tool1/2022-01-02 | my-analysis/tool1 | 2022-01-02          |\n| my-analysis/tool1/           | my-analysis/tool1 | None                |\n| MY-анализ для Tool1          | None              | MY-анализ для Tool1 |\n\n* Выполнение с `id` для my-analysis/tool1/2021-02-01 относится к категории my-analysis/tool1.\n* Выполнение с `id` для my-analysis/tool1/ относится к категории my-analysis/tool1, но не отличается от других выполнений в этой категории.\n* Выполнение, `id` которого является my-analysis for tool1, имеет уникальный идентификатор, но не может быть выводимым для принадлежности к какой-либо категории.\n\nДополнительные сведения об объекте `runAutomationDetails` и поле `id` см. в разделе [Объект runAutomationDetails](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html#_Toc16012479) в документации по OASIS.\n\nОбратите внимание, что остальные поддерживаемые поля не учитываются.\n\n## Примеры выходных файлов SARIF\n\nВ этих примерах выходных файлов SARIF отображаются поддерживаемые свойства и примеры значений.\n\n### Пример с минимальными обязательными свойствами\n\nЭтот выходной файл SARIF содержит примеры значений для отображения минимальных обязательных свойств для результатов code scanning для нормальной работы. Если удалить какое-либо свойство, не включить значения или использовать пустую строку, эти данные не будут правильно отображаться или синхронизироваться с GitHub.\n\n```json\n{\n  \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\",\n  \"version\": \"2.1.0\",\n  \"runs\": [\n    {\n      \"tool\": {\n        \"driver\": {\n          \"name\": \"Tool Name\",\n          \"rules\": [\n            {\n              \"id\": \"R01\"\n                      ...\n              \"properties\" : {\n                 \"id\" : \"java/unsafe-deserialization\",\n                 \"kind\" : \"path-problem\",\n                 \"name\" : \"...\",\n                 \"problem.severity\" : \"error\",\n                 \"security-severity\" : \"9.8\",\n               }\n            }\n          ]\n        }\n      },\n      \"results\": [\n        {\n          \"ruleId\": \"R01\",\n          \"message\": {\n            \"text\": \"Result text. This result does not have a rule associated.\"\n          },\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"fileURI\"\n                },\n                \"region\": {\n                  \"startLine\": 2,\n                  \"startColumn\": 7,\n                  \"endColumn\": 10\n                }\n              }\n            }\n          ],\n          \"partialFingerprints\": {\n            \"primaryLocationLineHash\": \"39fa2ee980eb94b0:1\"\n          }\n        }\n      ]\n    }\n  ]\n}\n```\n\n### Руководство по относительному URI для производителей SARIF\n\nЭтот выходной файл SARIF содержит пример значений для поля `originalUriBaseIds`, показывающий минимальные обязательные свойства, которые производитель SARIF должен включать при использовании относительных ссылок URI.\n\n> \\[!NOTE]\n> Хотя это свойство не требуется GitHub для результатов code scanning для правильного отображения результатов, необходимо создать допустимые выходные данные SARIF при использовании относительных ссылок URI.\n\n```json\n{\n  \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\",\n  \"version\": \"2.1.0\",\n  \"runs\": [\n    {\n      \"tool\": {\n        \"driver\": {\n          \"name\": \"Tool Name\",\n          \"rules\": [\n            {\n              \"id\": \"R01\"\n                      ...\n              \"properties\" : {\n                 \"id\" : \"java/unsafe-deserialization\",\n                 \"kind\" : \"path-problem\",\n                 \"name\" : \"...\",\n                 \"problem.severity\" : \"error\",\n                 \"security-severity\" : \"9.8\",\n               }\n            }\n          ]\n        }\n      },\n      \"originalUriBaseIds\": {\n        \"PROJECTROOT\": {\n         \"uri\": \"file:///C:/Users/Mary/code/TheProject/\",\n           \"description\": {\n             \"text\": \"The root directory for all project files.\"\n           }\n        },\n         \"%SRCROOT%\": {\n           \"uri\": \"src/\",\n           \"uriBaseId\": \"PROJECTROOT\",\n           \"description\": {\n             \"text\": \"The root of the source tree.\"\n           }\n         }\n      },\n      \"results\": [\n        {\n          \"ruleId\": \"R01\",\n          \"message\": {\n            \"text\": \"Result text. This result does not have a rule associated.\"\n          },\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"fileURI\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startLine\": 2,\n                  \"startColumn\": 7,\n                  \"endColumn\": 10\n                }\n              }\n            }\n          ],\n          \"partialFingerprints\": {\n            \"primaryLocationLineHash\": \"39fa2ee980eb94b0:1\"\n          }\n        }\n      ]\n    }\n  ]\n}\n```\n\n### Пример, показывающий все поддерживаемые свойства SARIF\n\nЭтот выходной файл SARIF содержит примеры значений для отображения всех поддерживаемых свойств SARIF для code scanning.\n\n```json\n{\n  \"$schema\": \"https://json.schemastore.org/sarif-2.1.0.json\",\n  \"version\": \"2.1.0\",\n  \"runs\": [\n    {\n      \"tool\": {\n        \"driver\": {\n          \"name\": \"Tool Name\",\n          \"semanticVersion\": \"2.0.0\",\n          \"rules\": [\n            {\n              \"id\": \"3f292041e51d22005ce48f39df3585d44ce1b0ad\",\n              \"name\": \"js/unused-local-variable\",\n              \"shortDescription\": {\n                \"text\": \"Unused variable, import, function or class\"\n              },\n              \"fullDescription\": {\n                \"text\": \"Unused variables, imports, functions or classes may be a symptom of a bug and should be examined carefully.\"\n              },\n              \"defaultConfiguration\": {\n                \"level\": \"note\"\n              },\n              \"properties\": {\n                \"tags\": [\n                  \"maintainability\"\n                ],\n                \"precision\": \"very-high\"\n              }\n            },\n            {\n              \"id\": \"d5b664aefd5ca4b21b52fdc1d744d7d6ab6886d0\",\n              \"name\": \"js/inconsistent-use-of-new\",\n              \"shortDescription\": {\n                \"text\": \"Inconsistent use of 'new'\"\n              },\n              \"fullDescription\": {\n                \"text\": \"If a function is intended to be a constructor, it should always be invoked with 'new'. Otherwise, it should always be invoked as a normal function, that is, without 'new'.\"\n              },\n              \"properties\": {\n                \"tags\": [\n                  \"reliability\",\n                  \"correctness\",\n                  \"language-features\"\n                ],\n                \"precision\": \"very-high\"\n              }\n            },\n            {\n              \"id\": \"R01\"\n            }\n          ]\n        }\n      },\n      \"automationDetails\": {\n        \"id\": \"my-category/\"\n      },\n      \"results\": [\n        {\n          \"ruleId\": \"3f292041e51d22005ce48f39df3585d44ce1b0ad\",\n          \"ruleIndex\": 0,\n          \"message\": {\n            \"text\": \"Unused variable foo.\"\n          },\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"main.js\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startLine\": 2,\n                  \"startColumn\": 7,\n                  \"endColumn\": 10\n                }\n              }\n            }\n          ],\n          \"partialFingerprints\": {\n            \"primaryLocationLineHash\": \"39fa2ee980eb94b0:1\",\n            \"primaryLocationStartColumnFingerprint\": \"4\"\n          }\n        },\n        {\n          \"ruleId\": \"d5b664aefd5ca4b21b52fdc1d744d7d6ab6886d0\",\n          \"ruleIndex\": 1,\n          \"message\": {\n            \"text\": \"Function resolvingPromise is sometimes invoked as a constructor (for example [here](1)), and sometimes as a normal function (for example [here](2)).\"\n          },\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"src/promises.js\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startLine\": 2\n                }\n              }\n            }\n          ],\n          \"partialFingerprints\": {\n            \"primaryLocationLineHash\": \"5061c3315a741b7d:1\",\n            \"primaryLocationStartColumnFingerprint\": \"7\"\n          },\n          \"relatedLocations\": [\n            {\n              \"id\": 1,\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"src/ParseObject.js\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startLine\": 2281,\n                  \"startColumn\": 33,\n                  \"endColumn\": 55\n                }\n              },\n              \"message\": {\n                \"text\": \"here\"\n              }\n            },\n            {\n              \"id\": 2,\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"src/LiveQueryClient.js\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startLine\": 166\n                }\n              },\n              \"message\": {\n                \"text\": \"here\"\n              }\n            }\n          ]\n        },\n        {\n          \"ruleId\": \"R01\",\n          \"message\": {\n            \"text\": \"Specifying both [ruleIndex](1) and [ruleId](2) might lead to inconsistencies.\"\n          },\n          \"level\": \"error\",\n          \"locations\": [\n            {\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"full.sarif\",\n                  \"uriBaseId\": \"%SRCROOT%\"\n                },\n                \"region\": {\n                  \"startLine\": 54,\n                  \"startColumn\": 10,\n                  \"endLine\": 55,\n                  \"endColumn\": 25\n                }\n              }\n            }\n          ],\n          \"relatedLocations\": [\n            {\n              \"id\": 1,\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"full.sarif\"\n                },\n                \"region\": {\n                  \"startLine\": 81,\n                  \"startColumn\": 10,\n                  \"endColumn\": 18\n                }\n              },\n              \"message\": {\n                \"text\": \"here\"\n              }\n            },\n            {\n              \"id\": 2,\n              \"physicalLocation\": {\n                \"artifactLocation\": {\n                  \"uri\": \"full.sarif\"\n                },\n                \"region\": {\n                  \"startLine\": 82,\n                  \"startColumn\": 10,\n                  \"endColumn\": 21\n                }\n              },\n              \"message\": {\n                \"text\": \"here\"\n              }\n            }\n          ],\n          \"codeFlows\": [\n            {\n              \"threadFlows\": [\n                {\n                  \"locations\": [\n                    {\n                      \"location\": {\n                        \"physicalLocation\": {\n                          \"region\": {\n                            \"startLine\": 11,\n                            \"endLine\": 29,\n                            \"startColumn\": 10,\n                            \"endColumn\": 18\n                          },\n                          \"artifactLocation\": {\n                            \"uriBaseId\": \"%SRCROOT%\",\n                            \"uri\": \"full.sarif\"\n                          }\n                        },\n                        \"message\": {\n                          \"text\": \"Rule has index 0\"\n                        }\n                      }\n                    },\n                    {\n                      \"location\": {\n                        \"physicalLocation\": {\n                          \"region\": {\n                            \"endColumn\": 47,\n                            \"startColumn\": 12,\n                            \"startLine\": 12\n                          },\n                          \"artifactLocation\": {\n                            \"uriBaseId\": \"%SRCROOT%\",\n                            \"uri\": \"full.sarif\"\n                          }\n                        }\n                      }\n                    }\n                  ]\n                }\n              ]\n            }\n          ],\n          \"partialFingerprints\": {\n            \"primaryLocationLineHash\": \"ABC:2\"\n          }\n        }\n      ],\n      \"columnKind\": \"utf16CodeUnits\"\n    }\n  ]\n}\n```"}