# Настройка сканирования кода для устройства

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

<!--The CodeQL CLI man pages include a link to a section in this article. If you rename this article,
make sure that you also update the MS short link: https://aka.ms/code-scanning-docs/configuring-ghes.-->

## Сведения о code scanning

Code scanning — это функция, используемая для анализа кода в репозитории GitHub для поиска уязвимостей системы безопасности и ошибок кодирования. Все проблемы, выявленные анализом, отображаются в репозитории.

Вы можете настроить code scanning для выполнения анализа CodeQL, а также стороннего анализа. Code scanning также поддерживает собственный анализ с помощью GitHub Actions или внешней инфраструктуры CI/CD. Приведенные ниже маркеры суммируют параметры, доступные пользователям при настройке экземпляр GitHub Enterprise Server для разрешения code scanning с помощью действий.

* **CodeQL:** использует GitHub Actions с настройкой по умолчанию (см\[. AUTOTITLE) или расширенную настройку (см[. autoTITLE](/ru/enterprise-server@3.20/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)) или выполняет анализ CodeQL в сторонней системе непрерывной интеграции (CI) (см[. AUTOTITLE](/ru/enterprise-server@3.20/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system)]\(/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning#configuring-advanced-setup-for-code-scanning-with-codeql)).
* **Третий&8209; сторона:** использует GitHub Actions или сторонние средства и отправляет результаты в GitHub (см[. AUTOTITLE](/ru/enterprise-server@3.20/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/configuring-advanced-setup-for-code-scanning#configuring-code-scanning-using-third-party-workflows)]\(/code-security/code-scanning/integrating-with-code-scanning/uploading-a-sarif-file-to-github)).

## Проверка наличия лицензии Advanced Security

Вы можете определить, имеет ли ваша организация лицензию на Advanced Security products , просмотрив параметры предприятия. Дополнительные сведения см. в разделе [Включение GitHub Advanced Security products для вашего предприятия](/ru/enterprise-server@3.20/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise#checking-whether-your-license-includes-github-advanced-security).

## Предварительные требования для code scanning

* Лицензия на GitHub Code Security или GitHub Advanced Security, (см [. AUTOTITLE](/ru/enterprise-server@3.20/billing/managing-billing-for-your-products/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security))

* Code scanning включено в консоль управления (см[. autoTITLE](/ru/enterprise-server@3.20/admin/code-security/managing-github-advanced-security-for-your-enterprise/enabling-github-advanced-security-for-your-enterprise))

* Виртуальная машина или контейнер для выполнения анализа code scanning.

<!-- Anchor to maintain the CodeQL CLI manual pages link: https://aka.ms/code-scanning-docs/configuring-ghes -->

<a name="running-code-scanning-using-github-actions"></a>

## Выполнение code scanning с помощью GitHub Actions

### Подготовка локального runner

GitHub может запускать code scanning с помощью рабочего процесса GitHub Actions . Во-первых, необходимо подготовить одно или несколько локальных средств выполнения GitHub Actions в вашей среде. Вы можете предоставить локальные средства выполнения на уровне репозитория, организации или корпоративной учетной записи. См. раздел \[AUTOTITLE и [Локальные средства выполнения тестов](/ru/enterprise-server@3.20/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners)]\(/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners).

Необходимо убедиться, что GIT находится в переменной PATH для любых локальных средств выполнения, которые используются для выполнения действий CodeQL.

> \[!NOTE]
> Если вы используете CodeQL code scanning для анализа кода, написанного на Python в вашей организации, необходимо убедиться, что локальный модуль выполнения установлен на Python 3.

### Подготовка масштабируемого набора runner

Вы можете использовать Actions Runner Controller для создания выделенного масштабируемого набора runner для экземпляра GitHub Enterprise Server . См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/actions/hosting-your-own-runners/managing-self-hosted-runners-with-actions-runner-controller/deploying-runner-scale-sets-with-actions-runner-controller#using-arc-with-dependabot-and-code-scanning).

### Подготовка действий для code scanning

Если вы хотите использовать действия для запуска code scanning на GitHub Enterprise Server, действия должны быть доступны на устройстве.

Действие CodeQL включается в установку GitHub Enterprise Server. Если оба GitHub Enterprise Server 3.20 и средство выполнения GitHub Actions имеют доступ к Интернету, действие автоматически скачивает пакет CodeQL 2.23.9 для выполнения анализа. Кроме того, можно использовать средство синхронизации, чтобы сделать локально доступной последнюю версию пакета анализа CodeQL. См. инструкции [по настройке анализа данных CodeQL на сервере без доступа к](#configuring-codeql-analysis-on-a-server-without-internet-access) Интернету ниже.

Вы также можете сделать сторонние действия доступными пользователям для code scanning, настроив GitHub Connect. См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/admin/code-security/managing-github-advanced-security-for-your-enterprise/configuring-code-scanning-for-your-appliance#configuring-github-connect-to-sync-github-actions) ниже.

### Настройка анализа CodeQL на сервере без доступа к Интернету

Если сервер, на котором выполняется GitHub Enterprise Server, не подключен к Интернету и вы хотите разрешить пользователям включать CodeQL code scanning для своих репозиториев, необходимо использовать средство синхронизации действий CodeQL для копирования пакета анализа CodeQL из GitHub.com на ваш сервер. Средство и сведения о его использовании доступны по адресу [https://github.com/github/codeql-action-sync-tool](https://github.com/github/codeql-action-sync-tool/).

Если настроить средство синхронизации действий CodeQL, его можно использовать для синхронизации последних выпусков действия CodeQL и связанного пакета анализа CodeQL. Они совместимы с GitHub Enterprise Server.

### Настройка GitHub Connect для синхронизации GitHub Actions

1. Если вы хотите скачать рабочие процессы действий по запросу из GitHub.com, необходимо включить GitHub Connect. См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/admin/configuration/configuring-github-connect/managing-github-connect#enabling-github-connect).
2. Кроме того, необходимо включить GitHub Actions. См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/admin/github-actions/getting-started-with-github-actions-for-your-enterprise/getting-started-with-github-actions-for-github-enterprise-server).
3. Следующим шагом является настройка доступа к действиям в GitHub.com с помощью GitHub Connect. См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/admin/github-actions/managing-access-to-actions-from-githubcom/enabling-automatic-access-to-githubcom-actions-using-github-connect).
4. Добавьте локальное средство выполнения в репозиторий, организацию или корпоративную учетную запись. См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners).

## Выполнение сканирования кода с помощью CodeQL CLI

Если вы не хотите использовать GitHub Actions, необходимо запустить code scanning с помощью CodeQL CLI.

CodeQL CLI — это инструмент командной строки, который используется для анализа баз кода на любом компьютере, включая стороннюю систему CI/CD. См [. раздел AUTOTITLE](/ru/enterprise-server@3.20/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system).