Примечание: Администратор сайта должен включить code scanning для экземпляр GitHub Enterprise Server, прежде чем вы сможете использовать эту функцию. Если вы хотите использовать GitHub Actions для сканирования кода, администратор сайта также должен включить GitHub Actions и настроить необходимую инфраструктуру. Дополнительные сведения см. в разделе Настройка сканирования кода на устройстве.
Параметры настройки code scanning
Вы сами решаете, как будут формироваться оповещения code scanning и какие средства будут использоваться, на уровне репозитория. GitHub Enterprise Server обеспечивает полную интегрированную поддержку анализа CodeQL и поддерживает анализ с использованием сторонних средств. Дополнительные сведения см. в следующих маркерах и "Сведения о проверке кода".
-
CodeQL: использует GitHub Actions (см. ниже) или выполняет анализ CodeQL в сторонней системе непрерывной интеграции (CI) (см. раздел Сведения о проверке кода CodeQL в системе CI).
-
Третья‑сторона: использует GitHub Actions или сторонние средства и отправляет результаты в GitHub Enterprise Server (см. раздел Отправка файла SARIF в GitHub).
При выполнении проверки кода с использованием нескольких конфигураций оповещение иногда будет иметь несколько источников анализа. Если оповещение имеет несколько источников анализа, состояние оповещения для каждого источника анализа можно посмотреть на странице оповещения. Дополнительные сведения см. в разделе О предупреждениях о сканировании кода.
Примечание: В этой статье описываются функции, доступные в версии действия CodeQL и связанном пакете CodeQL CLI, включенном в первоначальный выпуск этой версии GitHub Enterprise Server. Если в вашей организации используется более поздняя версия действия CodeQL, ознакомьтесь с версией этой статьи GitHub Enterprise Cloud для получения сведений о последних функциях. Сведения об использовании последней версии см. в разделе Настройка сканирования кода на устройстве.
Настройка code scanning вручную
-
На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Если вкладка "Безопасность" не отображается, выберите раскрывающееся меню и выберите пункт Безопасность.
-
Справа от "Code scanning оповещений щелкните Настройка code scanning. Если отсутствует сообщение "code scanning alerts", необходимо попросить владельца организации или администратора репозитория включить GitHub Advanced Security. Дополнительные сведения см. в разделе Управление параметрами безопасности и анализа для организации или Управление параметрами безопасности и анализа для репозитория.
-
В разделе "Начало работы с code scanning" щелкните Настройка этого рабочего процесса в Рабочий процесс анализа CodeQL или стороннем рабочем процессе.
Рабочие процессы отображается только в том случае, если они актуальны для языков программирования, обнаруженных в репозитории. Рабочий процесс анализа CodeQL отображается всегда, но кнопка "Настроить этот рабочий процесс" включена только в том случае, если анализ CodeQL поддерживает языки, присутствующие в репозитории. -
Чтобы настроить работу code scanning по сканированию кода, измените рабочий процесс.
Как правило, Рабочий процесс анализа CodeQL можно зафиксировать, не изменяя его. Однако многие из сторонних рабочих процессов нуждаются в дополнительной настройке, поэтому перед фиксацией прочтите комментарии в рабочем процессе.
Дополнительные сведения см. в разделе Настройка сканирования кода.
-
Используйте раскрывающийся список Начать фиксацию и введите сообщение о фиксации.
-
Выберите, следует ли выполнять фиксацию непосредственно в ветви по умолчанию или создайте новую ветвь и запустите запрос на вытягивание.
-
Нажмите кнопку Commit new file (Зафиксировать новый файл) или Propose new file (Предложить новый файл).
В рекомендуемом Рабочий процесс анализа CodeQL code scanning настроен для анализа кода каждый раз, когда вы отправляете изменения в ветвь по умолчанию или в любую защищенную ветвь или создаете запрос на вытягивание для ветви по умолчанию. For more information, see "Configuring code scanning."
Триггеры on:pull_request
и on:push
для проверки кода используются для разных целей. Дополнительные сведения см. в разделе Настройка сканирования кода.
Массовая настройка code scanning
Вы можете настроить code scanning в нескольких репозиториях одновременно с помощью скрипта. Если вы хотите использовать сценарий для создания запросов на вытягивание, которые добавляют рабочий процесс GitHub Actions сразу в несколько репозиториев, см. пример с использованием PowerShell в репозитории jhutchings1/Create-ActionsPRs
или nickliffen/ghas-enablement
, если у команды нет PowerShell, и вместо него она хочет использовать NodeJS.
Просмотр выходных данных журнала из code scanning
После настройки code scanning для репозитория можно просмотреть выходные данные действий по мере их выполнения.
-
Щелкните Действия под именем репозитория.
Вы увидите список, содержащий запись, соответствующую рабочему процессу code scanning. Текст записи — это название, которое вы присвоили своему сообщению о фиксации.
-
Нажмите запись, соответствующую рабочему процессу code scanning
-
Нажмите на название задания слева. Например, Анализ (ЯЗЫК)
-
Просматривайте журнал результатов действий в рабочем процессе по мере их выполнения.
-
После завершения всех заданий можно просмотреть сведения о всех обнаруженных оповещениях code scanning. Дополнительные сведения см. в разделе Управление оповещениями проверки кода для репозитория.
Примечание: Если вы вызвали запрос на вытягивание для добавления рабочего процесса code scanning в репозиторий, оповещения из этого запроса на вытягивание не отображаются непосредственно на странице Code scanning, пока запрос на вытягивание не будет объединен. Если были найдены какие-либо оповещения, их можно просмотреть перед слиянием запроса на вытягивание, щелкнув ссылку Число оповещений на баннере на странице Code scanning.
Общие сведения о проверках запросов на вытягивание
Каждый рабочий процесс code scanning, настроенный для выполнения запросов на вытягивание, всегда содержит как минимум две записи, указанные в разделе проверок запроса на вытягивание. Рабочий процесс включает по одной записи на каждую задачу анализа и одну запись для результатов анализа.
Имена проверок анализа code scanning имеют вид: "ИМЯ ИНСТРУМЕНТА/ИМЯ ЗАДАНИЯ (ТРИГГЕР)." Например, для CodeQL анализ кода C++ включает запись "CodeQL/Analyze (cpp) (pull_request)". Нажмите Сведения в записи анализа code scanning, чтобы просмотреть данные журнала. Это позволит устранить проблему, если задание анализа завершится сбоем. Например, при анализе скомпилированных языков с помощью code scanning это может произойти, если действие не может компилировать код.
После завершения заданий code scanning GitHub определяет, были ли оповещения добавлены запросом на вытягивание, и добавляет запись "Code scanning results/TOOL NAME" в список проверок. После того, как code scanning будет выполнено хотя бы один раз, нажмите Сведения, чтобы просмотреть результаты анализа.
Дальнейшие действия
После настройки code scanning и разрешения на выполнение его действий вы можете:
- You can customize how code scanning scans the code in your repository. Дополнительные сведения см. в разделе Управление оповещениями проверки кода для репозитория.
- Просмотр оповещений, созданных для запроса на вытягивание, отправленного после настройки code scanning. Дополнительные сведения см. в разделе Рассмотрение оповещений проверки кода в запросах на вытягивание.
- Настройка уведомлений о завершенных запусках. Дополнительные сведения см. в разделе Настройка уведомлений.
- Просматривать журналы, создаваемые в результате анализа code scanning. Дополнительные сведения см. в разделе Просмотр журналов проверки кода.
- Изучите все проблемы, возникающие при начальной настройке CodeQL code scanning. Дополнительные сведения см. в разделе Устранение неполадок рабочего процесса CodeQL.
- Настраивать то, как code scanning сканирует код в репозитории. Дополнительные сведения см. в разделе Настройка сканирования кода.