Примечание.
Администратор сайта должен включить code scanning перед использованием этой функции. Дополнительные сведения см. в разделе Настройка сканирования кода для устройства.
Возможно, вы не сможете включить или отключить code scanning, если владелец предприятия установил политику GitHub Advanced Security на уровне предприятия. Дополнительные сведения см. в разделе Применение политик безопасности кода и анализа для вашего предприятия.
В качестве альтернативы запуску code scanning внутри GitHub с помощью GitHub Actions, вы можете анализировать код во внешней системе непрерывной интеграции или непрерывной доставки/развертывания (CI/CD), а затем загрузить результаты в GitHub.
Примечание.
Отправка данных SARIF для отображения в виде code scanning приводит к поддержке GitHub для репозиториев, принадлежащих организации, с GitHub Advanced Security включено. Дополнительные сведения см. в разделе Управление параметрами безопасности и анализа для репозитория.
Настройка средства анализа
Сначала необходимо скачать средство анализа и настроить его с помощью системы CI.
Если вы используете CodeQL CLI, вам нужно сделать полное содержимое CodeQL CLI пакета доступным для каждого CI-сервера, на котором вы хотите провести CodeQLcode scanning анализ. Дополнительные сведения см. в разделе Настройка интерфейса командной строки CodeQL.
После того как средство анализа доступно для серверов в системе CI, вы будете готовы к созданию данных.
Анализ кода
Чтобы анализировать код с CodeQL CLI помощью другого аналитического инструмента, вам нужно проверить тот код, который вы хотите проанализировать, и настроить среду базы, убедившись, что зависимости доступны. Вы также можете найти команду сборки для базы кода, обычно доступную в файле конфигурации системы CI.
Затем вы можете выполнить шаги для анализа базы кода и создания результатов, которые будут отличаться в зависимости от используемого статического средства анализа.
Если вы используете CodeQL CLI, вам сначала нужно создать CodeQL базу данных из вашего кода, а затем проанализировать её, чтобы получить результаты SARIF. Дополнительные сведения см. в разделе [AUTOTITLE и Подготовка кода для анализа CodeQL](/code-security/codeql-cli/getting-started-with-the-codeql-cli/analyzing-your-code-with-codeql-queries).
Генерация токена для аутентификации с помощью GitHub
Каждому CI-серверу нужен OR GitHub Apppersonal access token для загрузки результатов в GitHub, независимо от того, используете CodeQL CLIли вы REST API или другой метод. Вы должны использовать токен доступа или токен GitHub App с разрешением security_events на запись. Если CI-серверы уже используют токен с таким обхватом для получения репозиториев, вы GitHubпотенциально можете использовать тот же токен. В противном случае создайте новый маркер с разрешением на запись security_events и добавьте его в хранилище секретов системы CI. Дополнительные сведения см. в разделе [AUTOTITLE и О создании приложений GitHub](/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token).
Для получения дополнительной информации о различных методах загрузки результатов в GitHub, см. Отправка файла SARIF в GitHub.
Загрузка ваших результатов в GitHub
После анализа кода, получения результатов SARIF и подтверждения аутентификации с GitHub, вы можете загрузить результаты в GitHub. Дополнительные сведения о различных методах, которые можно использовать для отправки результатов, см. в разделе Отправка файла SARIF в GitHub.
Для конкретной информации о загрузке результатов с GitHubCodeQL CLIпомощью , см. Загрузка результатов анализа CodeQL на GitHub.
По умолчанию code scanning для репозитория ожидается один файл результатов SARIF на анализ. Следовательно, когда вы загружаете второй файл результатов SARIF для фиксации, он рассматривается как замена исходного набора данных. Вы можете отправить два разных ФАЙЛА SARIF для одного анализа, если, например, средство анализа создает другой ФАЙЛ SARIF для каждого языка, который он анализирует или каждый набор правил, которые он использует. Если вы хотите отправить несколько наборов результатов для фиксации в репозитории, необходимо определить каждый набор результатов как уникальный набор. Способ указания категории для отправки SARIF зависит от метода анализа.