Сведения о code scanning
Code scanning — это функция, используемая для анализа кода в репозитории GitHub для поиска уязвимостей системы безопасности и ошибок кодирования. Все проблемы, выявленные анализом, отображаются в репозитории.
Вы можете настроить code scanning для выполнения анализа CodeQL, а также стороннего анализа. Code scanning также поддерживает собственный анализ с помощью GitHub Actions или внешней инфраструктуры CI/CD. Приведенные ниже маркеры суммируют параметры, доступные пользователям при настройке ваш экземпляр GitHub Enterprise Server для разрешения code scanning с помощью действий.
- CodeQL: использует GitHub Actions с настройкой по умолчанию (см[. "AUTOTITLE") или расширенную настройку (см[. "AUTOTITLE") или выполняет анализ CodeQL в сторонней системе непрерывной интеграции (CI) (см. "AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)](/code-security/code-scanning/integrating-with-code-scanning/using-code-scanning-with-your-existing-ci-system)").
- Третий&8209; сторона: использует GitHub Actions или сторонние средства и отправляет результаты в GitHub Enterprise Server (см. "Отправка файла SARIF в GitHub").
Проверка того, включает ли ваша лицензия GitHub Advanced Security
Вы можете определить, есть ли у вашей организации лицензия на GitHub Advanced Security, просмотрев параметры организации. Дополнительные сведения см. в разделе Включение GitHub Advanced Security для предприятия.
Предварительные требования для code scanning
-
Лицензия на GitHub Advanced Security (см. "Сведения о выставлении счетов для GitHub Advanced Security")
-
Code scanning включено в консоль управления (см. "Включение GitHub Advanced Security для предприятия")
-
Виртуальная машина или контейнер для выполнения анализа code scanning.
Выполнение code scanning с помощью GitHub Actions
Подготовка локального runner
GitHub Enterprise Server может запускать code scanning с помощью рабочего процесса GitHub Actions. Во-первых, необходимо подготовить одно или несколько локальных средств выполнения GitHub Actions в вашей среде. Вы можете предоставить локальные средства выполнения на уровне репозитория, организации или корпоративной учетной записи. Дополнительные сведения см. в разделе "[AUTOTITLE" и "О самостоятельно размещенных средствах выполнения](/actions/hosting-your-own-runners/managing-self-hosted-runners/adding-self-hosted-runners)".
Если вы подготавливаете локальное средство выполнения для анализа CodeQL, средство выполнения должно использовать версию операционной системы с поддержкой CodeQL, поддерживаемую версией операционной системы и архитектурой ЦП. Дополнительные сведения см. в разделе CodeQL системных требований.
Если вы используете настройку по умолчанию для code scanning, назначьте code-scanning
метку локальному средству выполнения. Дополнительные сведения об использовании меток с локальными средствами выполнения см. в разделе "Использование меток с самостоятельно размещенными средствами выполнения".
Необходимо убедиться, что GIT находится в переменной PATH для любых локальных средств выполнения, которые используются для выполнения действий CodeQL.
Подготовка масштабируемого набора runner
Вы можете использовать Actions Runner Controller для создания выделенного масштабируемого набора runner для экземпляра GitHub Enterprise Server . Дополнительные сведения см. в разделе Развертывание масштабируемых наборов runner с помощью контроллера runner Actions.
Подготовка действий для code scanning
Если вы хотите использовать действия для выполнения code scanning на GitHub Enterprise Server, эти действия должны быть доступны на устройстве.
Действие CodeQL включается в установку GitHub Enterprise Server. Если оба GitHub Enterprise Server 3.9 и средство выполнения GitHub Actions имеют доступ к Интернету, действие автоматически скачивает пакет CodeQL 2.12.7 для выполнения анализа. Кроме того, можно использовать средство синхронизации, чтобы сделать локально доступной последнюю версию пакета анализа CodeQL. Дополнительные сведения см. ниже в разделе Настройка анализа данных CodeQL на сервере без доступа к Интернету.
Вы также можете сделать сторонние действия доступными пользователям для code scanning, настроив GitHub Connect. Дополнительные сведения см. в разделе "Настройка сканирования кода для устройства" ниже.
Настройка анализа CodeQL на сервере без доступа к Интернету
Если сервер, на котором выполняется GitHub Enterprise Server, не подключен к Интернету и вы хотите разрешить пользователям включать CodeQL code scanning для своих репозиториев, необходимо использовать средство синхронизации действий CodeQL для копирования пакета анализа CodeQL из GitHub.com на ваш сервер. Средство и сведения о его использовании доступны по адресу https://github.com/github/codeql-action-sync-tool.
Если настроить средство синхронизации действий CodeQL, его можно использовать для синхронизации последних выпусков действия CodeQL и связанного пакета анализа CodeQL. Они совместимы с GitHub Enterprise Server.
Настройка GitHub Connect для синхронизации GitHub Actions
- Если вы хотите скачать рабочие процессы действий по запросу из GitHub.com, необходимо включить GitHub Connect. Дополнительные сведения см. в разделе Управление GitHub Connect.
- Кроме того, необходимо включить GitHub Actions для ваш экземпляр GitHub Enterprise Server. Дополнительные сведения см. в разделе Начало работы с GitHub Actions для сервера GitHub Enterprise.
- Следующим шагом является настройка доступа к действиям в GitHub.com с помощью GitHub Connect. Дополнительные сведения см. в разделе Включение автоматического доступа к действиям GitHub.com с помощью GitHub Connect.
- Добавьте локальное средство выполнения в репозиторий, организацию или корпоративную учетную запись. Дополнительные сведения см. в разделе Добавление локальных средств выполнения.
Выполнение сканирования кода с помощью CodeQL CLI
Если вы не хотите использовать GitHub Actions, необходимо запустить code scanning с помощью CodeQL CLI.
CodeQL CLI — это инструмент командной строки, который используется для анализа баз кода на любом компьютере, включая стороннюю систему CI/CD. Дополнительные сведения см. в разделе Использование сканирования кода с существующей системой CI.