# Поддержка SARIF для проверки кода

Убедитесь, что ваши файлы SARIF от сторонних инструментов соответствуют GitHubстандартам .

GitHub может парсировать SARIF-файлы, созданные сторонними инструментами, для отображения code scanning оповещений в репозиториях. Дополнительные сведения см. в разделе [О файлах SARIF для сканирования кода](/ru/enterprise-server@3.22/code-security/concepts/code-scanning/sarif-files).

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

Если вы используете GitHub Actions с Рабочий процесс анализа CodeQL ИЛИ используете CodeQL CLI, то code scanning результаты автоматически будут использовать поддерживаемый подмножество SARIF 2.1.0.

## Данные для предотвращения дублирования оповещений

При каждой отправке результатов новой проверки кода эти результаты обрабатываются, а в репозиторий добавляются предупреждения. Чтобы предотвратить дублирование оповещений по одной и той же проблеме, code scanning используется отпечатки пальцев для сопоставления результатов по разным запускам, чтобы они появлялись только один раз в последнем запуске выбранной ветки. Это позволяет сопоставлять оповещения с правильной строкой кода при правке файлов. Значение `ruleId` для результата должно быть одинаковым для анализа.

### Согласованные пути файлов

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

### Генерация отпечатков пальцев

GitHub использует свойство `partialFingerprints` стандарта OASIS для обнаружения, когда два результата логически идентичны. Дополнительные сведения см [. в записи свойств](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html#_Toc16012611) partialFingerprints в документации ПО OASIS.

SARIF-файлы, созданные Рабочий процесс анализа CodeQLили с использованием CodeQL CLI данных отпечатков пальцев, включая . Если вы загружаете SARIF-файл с помощью этого `upload-sarif` действия, и эти данные отсутствуют, GitHub пытается заполнить поле `partialFingerprints` из исходных файлов. Дополнительные сведения о отправке результатов см. в разделе [Отправка файла SARIF в GitHub](/ru/enterprise-server@3.22/code-security/how-tos/find-and-fix-code-vulnerabilities/integrate-with-existing-tools/upload-sarif-file).

Если вы загрузите файл SARIF без отпечатков пальцев через `/code-scanning/sarifs` API-эндпоинт, оповещения code scanning будут обработаны и отображаются, но пользователи могут увидеть дублирующиеся оповещения. Чтобы избежать появления повторяющихся оповещений, следует вычислить данные отпечатка и заполнить свойство `partialFingerprints` перед отправкой файла SARIF. Вы можете найти скрипт, в котором действие `upload-sarif` использует полезную отправную точку: <https://github.com/github/codeql-action/blob/main/src/fingerprints.ts>. Дополнительные сведения об API см. в разделе [Конечные точки REST API для сканирования кода](/ru/enterprise-server@3.22/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data).

## Правила и результаты

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

* Правила — это массив объектов `reportingDescriptor`, включенных в объект `toolComponent`. Здесь хранятся сведения о правилах, выполняемых во время анализа. Информация в этих объектах должна изменяться редко, обычно при обновлении средства.
* Результаты хранятся в виде ряда объектов `result` в `results` в объекте `run`. Каждый объект `result` содержит сведения об одном оповещении в базе кода. В объекте `results` можно ссылаться на правило, которое обнаружило оповещение.

Сравнивая файлы SARIF, созданные путем анализа разных баз кода, с одним и тем же средством и правилами, вы должны увидеть различия в результатах анализа, но не в правилах.

## Расположение исходных файлов

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

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

Code scanning Также отображаются оповещения в результатах проверки pull request, когда все строки кода, определённые оповещением, существуют в дифференциаце pull request.

Для отображения в проверке запроса на вытягивание оповещение должно соответствовать всем следующим условиям:

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

Объект `physicalLocation` в отправленном ФАЙЛЕ SARIF определяет строки кода для оповещения. Дополнительные сведения см. в разделе [`physicalLocation` "Объект](#physicallocation-object)".

### Корневой адрес исходных файлов

Code scanning интерпретирует результаты, сообщаемые с относительными путями, относительно корня анализируемого репозитория. Если результат содержит абсолютный URI, URI преобразуется в относительный URI. Затем относительный URI можно сопоставить с файлом, зафиксированным в репозитории.

Исходный корень для преобразования из абсолютного в относительный URI можно указать одним из следующих способов.

* Входные данные [`checkout_path`](https://github.com/github/codeql-action/blob/c2c0a2908e95769d01b907f9930050ecb5cf050d/analyze/action.yml#L44-L47) для действия `github/codeql-action/analyze`.
* Параметр `checkout_uri` для конечной точки API отправки SARIF. Дополнительные сведения см. в разделе [Конечные точки REST API для сканирования кода](/ru/enterprise-server@3.22/rest/code-scanning/code-scanning#upload-an-analysis-as-sarif-data).
* [
  `invocations[0].workingDirectory.uri`
  ](https://docs.oasis-open.org/sarif/sarif/v2.1.0/csprd01/sarif-v2.1.0-csprd01.html#_Toc9244365) свойство в объекте `run` в ФАЙЛЕ SARIF

Если указать корень источника, любое расположение артефакта, указанное с помощью абсолютного универсального кода ресурса (URI), должно использовать ту же схему URI. Если между схемой URI источника и одним или несколькими абсолютными URI существует несоответствие, отправка отклоняется.

Например, SARIF-файл отправляется с помощью исходного корневого каталога `file:///github/workspace`.

```shell
# Conversion of absolute URIs to relative URIs for location artifacts

file:///github/workspace/src/main.go -> src/main.go
file:///tmp/go-build/tmp.go          -> file:///tmp/go-build/tmp.go
```

Файл успешно отправлен, так как оба абсолютных URI используют ту же схему URI, что и исходный корневой каталог.

### Разрешение симлинков

Если относительный универсальный код ресурса (URI) для результата сопоставляется с файлом, определенным с помощью асимметричной связи, сканирование кода не может отобразить результат. Таким образом, необходимо разрешить все симлинированные файлы и сообщить о любых результатах в этих файлах с помощью разрешенного URI.

## Совместимость файлов

<!--UI-LINK: When code scanning fails, the error banner shown in the Security > Code scanning alerts view links to this anchor.-->

Вы можете проверить совместимость code scanning SARIF-файла, проверив его по правилам GitHub введения. Дополнительные сведения см. на странице [проверяющего элемента управления SARIF Microsoft](https://sarifweb.azurewebsites.net/).

Для каждого сжатых gzip-файла SARIF отправка SARIF поддерживает максимальный размер 10 МБ. Любые отправки свыше этого ограничения будут отклонены. Если файл SARIF слишком большой, так как он содержит слишком много результатов, необходимо обновить конфигурацию, чтобы сосредоточиться на результатах для наиболее важных правил или запросов. Дополнительные сведения см. в разделе [Файл результатов SARIF слишком велик](/ru/enterprise-server@3.22/code-security/reference/code-scanning/sarif-files/troubleshoot-sarif-uploads/file-too-large).

Code scanning поддерживает загрузку максимального количества записей для объектов данных в следующей таблице. Если любой из этих объектов превышает максимальное значение, то файл SARIF отклоняется. Для некоторых объектов также существует дополнительное ограничение на количество отображаемых значений. По возможности отображаются наиболее важные значения. Чтобы максимально эффективно использовать анализ, когда данные выше поддерживаемых лимитов, постарайтесь оптимизировать конфигурацию анализа (например, для CodeQL инструмента определите и отключите самые шумные запросы). Дополнительные сведения см. в разделе [Результаты SARIF превышают одно или несколько ограничений](/ru/enterprise-server@3.22/code-security/reference/code-scanning/sarif-files/troubleshoot-sarif-uploads/results-exceed-limit).

<div class="ghd-tool rowheaders">

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

</div>

Для информации о других ошибках см. [Устранение неполадок отправки SARIF](/ru/enterprise-server@3.22/code-security/reference/code-scanning/sarif-files/troubleshoot-sarif-uploads).

## Поддерживаемые свойства

Если вы используете другой движок анализа кода, кроме CodeQL, вы можете просмотреть поддерживаемые свойства SARIF, чтобы оптимизировать просмотр результатов анализа на GitHub.

> \[!NOTE]
> Необходимо указать явное значение для любого свойства, помеченного как обязательное. Пустая строка не поддерживается для обязательных свойств.

Любой действительный выходной файл SARIF 2.1.0 можно загрузить, однако code scanning он будет использовать только следующие поддерживаемые свойства.

### объект `sarifLog`

| Имя                                                    | Обязательный                                                                                                                                                                                                                                                                                                            | Description                                                                                                                                                                                             |
| ------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `$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`.                                                                           |
| `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. |                                                                                                                                                                                                                                                                                                                         |                                                                                                                                                                                                         |
| `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). |

### объект `run`

Code scanning
`run` использует объект для фильтрации результатов по инструменту и предоставления информации о источнике результата. Объект `run` содержит объект компонента средства `tool.driver`, содержащий сведения о средстве, которое создало результаты. Каждый объект `run` может содержать только результаты для одного средства анализа.

| Имя                                                                                                                     | Обязательный                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                             |
| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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).                                                                                                                                                                                                                                                                                            |
| `tool.extensions[]`                                                                                                     | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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).                                                                                                                                                                                                                 |
| `invocation.workingDirectory.uri`                                                                                       | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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). |
| `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). |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                         |

### объект `toolComponent`

| Имя                                                                                                                                                                                                                                                                                                                                                                       | Обязательный                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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 чтобы вы могли фильтровать результаты по инструменту.                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                |
| `version`                                                                                                                                                                                                                                                                                                                                                                 | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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` поле, `version` не используется .code scanning                                                                                                          |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                |
| `semanticVersion`                                                                                                                                                                                                                                                                                                                                                         | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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` поле, `version` не используется .code scanning Дополнительные сведения см. в документации [по семантической версии версии 2.0.0](https://semver.org/) . |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                |
| `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). |

### объект `reportingDescriptor`

Здесь хранятся сведения о правилах, выполняемых во время анализа. Информация в этих объектах должна изменяться редко, обычно при обновлении средства. Для получения дополнительной информации см. [Правила и результаты](#rules-and-results) выше.

| Имя                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Обязательный                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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>                                                                                                        | Уникальный идентификатор правила. Ссылка `id` используется из других частей файла SARIF и может использоваться code scanning для отображения URL на GitHub.                                                                                                                                                                                                                                                                                                                                                                                     |
| `name`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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 символами.                                                                                                                                                                                                                                                                                                                                                                        |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `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 символами.                                                                                                                                                                                                                                                                                                                                                                    |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `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 символами.                                                                                                                                                                                                                                                                                                                                                                     |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `defaultConfiguration.level`                                                                                                                                                                                                                                                                                                                                                                                                                                                            | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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`. |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `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 отображает эту документацию помощи рядом с соответствующими результатами.                                                                                                                                                                                                                                                                                                                                                                                                 |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `help.markdown`                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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`.                                                                                                                                                                                                                                                                                                                       |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `properties.tags[]`                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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`.                                                                                                                                                                                                                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `properties.precision`                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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`.                                                                                                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `properties.problem.severity`                                                                                                                                                                                                                                                                                                                                                                                                                                                           | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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`.                                                                                                                                                       |
| `properties.security-severity`                                                                                                                                                                                                                                                                                                                                                                                                                                                          | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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 или любое другое значение за пределами заданного диапазона считается отсутствием серьезности безопасности.                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |

### объект `result`

Каждый объект `result` содержит сведения об одном оповещении в базе кода. В объекте `results` можно ссылаться на правило, которое обнаружило оповещение. Для получения дополнительной информации см. [Правила и результаты](#rules-and-results) выше.

| Имя                                                                                                                                                                                                                                                                                                                                                                                                             | Обязательный                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                                                                                                                                                                                                                                                         |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ruleId`                                                                                                                                                                                                                                                                                                                                                                                                        | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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.                                                                                                                                                                                                                                                                                                                  |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| `ruleIndex`                                                                                                                                                                                                                                                                                                                                                                                                     | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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.                                                                                                                                                                         |
| `rule`                                                                                                                                                                                                                                                                                                                                                                                                          | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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).                                                                                                                                                                                                           |
| `level`                                                                                                                                                                                                                                                                                                                                                                                                         | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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.                                                                                                                                                                                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| `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 отображает текст сообщения в качестве названия результата. Если видимое пространство ограничено, отображается только первое предложение сообщения.                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| `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). Следует включить только одно расположение, если проблему не получается исправить только внесением изменений в каждом указанном расположении.                                                                                                                                                                                  |
| **Примечание:** Для отображения результата требуется code scanning как минимум одно место.                                                                                                                                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| Code scanning использую это свойство, чтобы решить, какой файл аннотировать с результатом. Используется только первое значение этого массива. Все остальные значения игнорируются.                                                                                                                                                                                                                              |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| `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)". |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| \*\*Примечание:\*\*Code scanning использует только .`primaryLocationLineHash`                                                                                                                                                                                                                                                                                                                                   |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |
| `codeFlows[].threadFlows[].locations[]`                                                                                                                                                                                                                                                                                                                                                                         | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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). |
| `relatedLocations[]`                                                                                                                                                                                                                                                                                                                                                                                            | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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).                                                                                                                                                                                                                           |                                                                                                                                                                                                                                                                                                                                                                                                                                |                                                                                                                                                                                                                                                                                                                                                                                                     |

### объект `location`

Расположение в артефакте программирования, например файл в репозитории или файл, созданный во время сборки.

| Имя                         | Обязательный                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                               |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `location.id`               | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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. |
| `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).                                                |
| `location.message.text`     | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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> | Сообщение, соответствующее расположению.                                                                                                                                  |

### объект `physicalLocation`

| Имя                    | Обязательный                                                                                                                                                                                                                                                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                         |
| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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). |
| `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> | Номер строки первого символа в регионе.                                                                                                                                                                                                                                                                                                                                                                                             |
| `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> | Номер столбца первого символа в регионе.                                                                                                                                                                                                                                                                                                                                                                                            |
| `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> | Номер строки последнего символа в регионе.                                                                                                                                                                                                                                                                                                                                                                                          |
| `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> | Номер столбца символа, следующего за концом региона.                                                                                                                                                                                                                                                                                                                                                                                |

### объект `runAutomationDetails`

Объект `runAutomationDetails` содержит сведения, указывающие идентификатор выполнения.

| Имя  | Обязательный                                                                                                                                                                                                                                                                                                                                                                                                                   | Description                                                                                                                                                                                                                  |
| ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id` | <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-x" aria-label="Optional" 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 для одного и того же средства и фиксации, но для разных языков или различных частей кода. |

Использование объекта `runAutomationDetails` не является обязательным.

Поле `id` может включать категорию анализа и идентификатор выполнения. Мы не используем элемент идентификатора выполнения в поле `id`, но сохраняем его.

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

`id` интерпретируется как `category/run-id`. Если `id` содержит косую черту (`/`), то вся строка является `run_id`, а `category` будет пустой. В противном случае `category` является все, что находится в строке до последней косой черты, а все, что после нее — `run_id`.

| `id`                         | category          | `run_id`            |
| ---------------------------- | ----------------- | ------------------- |
| my-analysis/tool1/2022-01-02 | my-analysis/tool1 | 2022-01-02          |
| my-analysis/tool1/           | my-analysis/tool1 | None                |
| MY-анализ для Tool1          | None              | MY-анализ для Tool1 |

* Выполнение с `id` для my-analysis/tool1/2021-02-01 относится к категории my-analysis/tool1.
* Выполнение с `id` для my-analysis/tool1/ относится к категории my-analysis/tool1, но не отличается от других выполнений в этой категории.
* Выполнение, `id` которого является my-analysis for tool1, имеет уникальный идентификатор, но не может быть выводимым для принадлежности к какой-либо категории.

Дополнительные сведения об объекте `runAutomationDetails` и поле `id` см. в разделе [Объект runAutomationDetails](https://docs.oasis-open.org/sarif/sarif/v2.1.0/cs01/sarif-v2.1.0-cs01.html#_Toc16012479) в документации по OASIS.

Обратите внимание, что остальные поддерживаемые поля не учитываются.

## Примеры выходных файлов SARIF

В этих примерах выходных файлов SARIF отображаются поддерживаемые свойства и примеры значений.

### Пример с минимальными обязательными свойствами

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

```json
{
  "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "Tool Name",
          "rules": [
            {
              "id": "R01"
                      ...
              "properties" : {
                 "id" : "java/unsafe-deserialization",
                 "kind" : "path-problem",
                 "name" : "...",
                 "problem.severity" : "error",
                 "security-severity" : "9.8",
               }
            }
          ]
        }
      },
      "results": [
        {
          "ruleId": "R01",
          "message": {
            "text": "Result text. This result does not have a rule associated."
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "fileURI"
                },
                "region": {
                  "startLine": 2,
                  "startColumn": 7,
                  "endColumn": 10
                }
              }
            }
          ],
          "partialFingerprints": {
            "primaryLocationLineHash": "39fa2ee980eb94b0:1"
          }
        }
      ]
    }
  ]
}
```

### Руководство по относительному URI для производителей SARIF

Этот выходной файл SARIF содержит пример значений для поля `originalUriBaseIds`, показывающий минимальные обязательные свойства, которые производитель SARIF должен включать при использовании относительных ссылок URI.

> \[!NOTE]
> Хотя это свойство не обязательно для GitHub корректного отображения code scanning результатов, при использовании относительных URI-ссылок требуется для получения действительного SARIF-вывода.

```json
{
  "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "Tool Name",
          "rules": [
            {
              "id": "R01"
                      ...
              "properties" : {
                 "id" : "java/unsafe-deserialization",
                 "kind" : "path-problem",
                 "name" : "...",
                 "problem.severity" : "error",
                 "security-severity" : "9.8",
               }
            }
          ]
        }
      },
      "originalUriBaseIds": {
        "PROJECTROOT": {
         "uri": "file:///C:/Users/Mary/code/TheProject/",
           "description": {
             "text": "The root directory for all project files."
           }
        },
         "%SRCROOT%": {
           "uri": "src/",
           "uriBaseId": "PROJECTROOT",
           "description": {
             "text": "The root of the source tree."
           }
         }
      },
      "results": [
        {
          "ruleId": "R01",
          "message": {
            "text": "Result text. This result does not have a rule associated."
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "fileURI",
                  "uriBaseId": "%SRCROOT%"
                },
                "region": {
                  "startLine": 2,
                  "startColumn": 7,
                  "endColumn": 10
                }
              }
            }
          ],
          "partialFingerprints": {
            "primaryLocationLineHash": "39fa2ee980eb94b0:1"
          }
        }
      ]
    }
  ]
}
```

### Пример, показывающий все поддерживаемые свойства SARIF

Этот выходной файл SARIF содержит примеры значений для отображения всех поддерживаемых свойств SARIF для code scanning.

```json
{
  "$schema": "https://json.schemastore.org/sarif-2.1.0.json",
  "version": "2.1.0",
  "runs": [
    {
      "tool": {
        "driver": {
          "name": "Tool Name",
          "semanticVersion": "2.0.0",
          "rules": [
            {
              "id": "3f292041e51d22005ce48f39df3585d44ce1b0ad",
              "name": "js/unused-local-variable",
              "shortDescription": {
                "text": "Unused variable, import, function or class"
              },
              "fullDescription": {
                "text": "Unused variables, imports, functions or classes may be a symptom of a bug and should be examined carefully."
              },
              "defaultConfiguration": {
                "level": "note"
              },
              "properties": {
                "tags": [
                  "maintainability"
                ],
                "precision": "very-high"
              }
            },
            {
              "id": "d5b664aefd5ca4b21b52fdc1d744d7d6ab6886d0",
              "name": "js/inconsistent-use-of-new",
              "shortDescription": {
                "text": "Inconsistent use of 'new'"
              },
              "fullDescription": {
                "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'."
              },
              "properties": {
                "tags": [
                  "reliability",
                  "correctness",
                  "language-features"
                ],
                "precision": "very-high"
              }
            },
            {
              "id": "R01"
            }
          ]
        }
      },
      "automationDetails": {
        "id": "my-category/"
      },
      "results": [
        {
          "ruleId": "3f292041e51d22005ce48f39df3585d44ce1b0ad",
          "ruleIndex": 0,
          "message": {
            "text": "Unused variable foo."
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "main.js",
                  "uriBaseId": "%SRCROOT%"
                },
                "region": {
                  "startLine": 2,
                  "startColumn": 7,
                  "endColumn": 10
                }
              }
            }
          ],
          "partialFingerprints": {
            "primaryLocationLineHash": "39fa2ee980eb94b0:1",
            "primaryLocationStartColumnFingerprint": "4"
          }
        },
        {
          "ruleId": "d5b664aefd5ca4b21b52fdc1d744d7d6ab6886d0",
          "ruleIndex": 1,
          "message": {
            "text": "Function resolvingPromise is sometimes invoked as a constructor (for example [here](1)), and sometimes as a normal function (for example [here](2))."
          },
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "src/promises.js",
                  "uriBaseId": "%SRCROOT%"
                },
                "region": {
                  "startLine": 2
                }
              }
            }
          ],
          "partialFingerprints": {
            "primaryLocationLineHash": "5061c3315a741b7d:1",
            "primaryLocationStartColumnFingerprint": "7"
          },
          "relatedLocations": [
            {
              "id": 1,
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "src/ParseObject.js",
                  "uriBaseId": "%SRCROOT%"
                },
                "region": {
                  "startLine": 2281,
                  "startColumn": 33,
                  "endColumn": 55
                }
              },
              "message": {
                "text": "here"
              }
            },
            {
              "id": 2,
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "src/LiveQueryClient.js",
                  "uriBaseId": "%SRCROOT%"
                },
                "region": {
                  "startLine": 166
                }
              },
              "message": {
                "text": "here"
              }
            }
          ]
        },
        {
          "ruleId": "R01",
          "message": {
            "text": "Specifying both [ruleIndex](1) and [ruleId](2) might lead to inconsistencies."
          },
          "level": "error",
          "locations": [
            {
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "full.sarif",
                  "uriBaseId": "%SRCROOT%"
                },
                "region": {
                  "startLine": 54,
                  "startColumn": 10,
                  "endLine": 55,
                  "endColumn": 25
                }
              }
            }
          ],
          "relatedLocations": [
            {
              "id": 1,
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "full.sarif"
                },
                "region": {
                  "startLine": 81,
                  "startColumn": 10,
                  "endColumn": 18
                }
              },
              "message": {
                "text": "here"
              }
            },
            {
              "id": 2,
              "physicalLocation": {
                "artifactLocation": {
                  "uri": "full.sarif"
                },
                "region": {
                  "startLine": 82,
                  "startColumn": 10,
                  "endColumn": 21
                }
              },
              "message": {
                "text": "here"
              }
            }
          ],
          "codeFlows": [
            {
              "threadFlows": [
                {
                  "locations": [
                    {
                      "location": {
                        "physicalLocation": {
                          "region": {
                            "startLine": 11,
                            "endLine": 29,
                            "startColumn": 10,
                            "endColumn": 18
                          },
                          "artifactLocation": {
                            "uriBaseId": "%SRCROOT%",
                            "uri": "full.sarif"
                          }
                        },
                        "message": {
                          "text": "Rule has index 0"
                        }
                      }
                    },
                    {
                      "location": {
                        "physicalLocation": {
                          "region": {
                            "endColumn": 47,
                            "startColumn": 12,
                            "startLine": 12
                          },
                          "artifactLocation": {
                            "uriBaseId": "%SRCROOT%",
                            "uri": "full.sarif"
                          }
                        }
                      }
                    }
                  ]
                }
              ]
            }
          ],
          "partialFingerprints": {
            "primaryLocationLineHash": "ABC:2"
          }
        }
      ],
      "columnKind": "utf16CodeUnits"
    }
  ]
}
```