Примечание: Администратор сайта должен включить code scanning для экземпляр GitHub Enterprise Server, прежде чем вы сможете использовать эту функцию. Если вы хотите использовать GitHub Actions для сканирования кода, администратор сайта также должен включить GitHub Actions и настроить необходимую инфраструктуру. Дополнительные сведения см. в разделе Настройка code scanning для устройства.
Параметры настройки code scanning
Вы сами решаете, как будут формироваться оповещения code scanning и какие средства будут использоваться, на уровне репозитория. GitHub Enterprise Server обеспечивает полную интегрированную поддержку анализа CodeQL и поддерживает анализ с использованием сторонних средств. Дополнительные сведения см. в следующих маркерах и разделе Сведения о code scanning.
-
CodeQL: использует GitHub Actions (см. ниже) или выполняет анализ CodeQL в сторонней системе непрерывной интеграции (CI) (см. раздел Сведения о CodeQL code scanning в системе CI).
-
Третья‑стороне: использует GitHub Actions или сторонние средства и отправляет результаты в GitHub Enterprise Server (см. раздел Отправка файла SARIF в GitHub).
При сканировании кода с использованием нескольких конфигураций можно получить оповещение с несколькими источниками анализа. Если оповещение имеет несколько источников анализа, состояние оповещения для каждого источника анализа можно посмотреть на странице оповещения. Дополнительные сведения см. в разделе Сведения об источниках анализа.
Примечание: Если вы хотите использовать анализ CodeQL, обратите внимание, что в этой статье описываются функции, доступные в версии действия CodeQL и связанном пакете CodeQL CLI, включенных в первоначальный выпуск этой версии GitHub Enterprise Server. Если ваше предприятие использует более новую версию действия CodeQL, ознакомьтесь со статьей GitHub Enterprise Cloud для получения сведений о последних функциях. Сведения об использовании последней версии см. в разделе Настройка сканирования кода для устройства.
Настройка code scanning вручную
-
На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность.
-
Справа от пункта "Оповещения Code scanning"щелкните Настроить code scanning . Если code scanning отсутствует, попросите владельца организации или администратора репозитория включить GitHub Advanced Security. Дополнительные сведения см. в разделах Управление параметрами безопасности и анализа для организации и Управление параметрами безопасности и анализа для репозитория.
-
В разделе "Начало работы с code scanning" щелкните Настройка этого рабочего процесса в Рабочий процесс анализа CodeQL или стороннем рабочем процессе.
Рабочие процессы отображается только в том случае, если они актуальны для языков программирования, обнаруженных в репозитории. Рабочий процесс анализа CodeQL отображается всегда, но кнопка "Настроить этот рабочий процесс" включена, только если анализ CodeQL поддерживает языки, присутствующих в репозитории.
-
Чтобы настроить работу code scanning по сканированию кода, измените рабочий процесс.
Как правило, вы можете зафиксировать Рабочий процесс анализа CodeQL, не изменяя его. Однако многие из сторонних рабочих процессов нуждаются в дополнительной настройке, поэтому перед фиксацией прочтите комментарии в рабочем процессе.
Дополнительные сведения см. в разделе Настройка code scanning.
-
Используйте раскрывающийся список Начать фиксацию и введите сообщение о фиксации.
-
Выберите, следует ли выполнять фиксацию непосредственно в ветви по умолчанию или создайте новую ветвь и запустите запрос на вытягивание.
-
Нажмите кнопку 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
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, настроенный для выполнения запросов на вытягивание, всегда содержит как минимум две записи, указанные в разделе проверок запроса на вытягивание. Рабочий процесс включает по одной записи на каждую задачу анализа и одну запись для результатов анализа.
Имена проверок анализа code scanning имеют вид: "ИМЯ ИНСТРУМЕНТА/ИМЯ ЗАДАНИЯ (ТРИГГЕР)." Например, для CodeQL анализ кода C++ включает запись "CodeQL/Analyze (cpp) (pull_request)". Нажмите Сведения в записи анализа code scanning, чтобы просмотреть данные журнала. Это позволит устранить проблему, если задание анализа завершится сбоем. Например, при анализе скомпилированных языков с помощью code scanning это может произойти, если действие не может компилировать код.
После завершения заданий code scanning GitHub определяет, добавили ли запросы на вытягивание какие-то оповещения, и добавляет в список проверок запись "Результаты Code scanning/ИМЯ ИНСТРУМЕНТА". После того, как code scanning будет выполнено хотя бы один раз, нажмите Сведения, чтобы просмотреть результаты анализа.
Дальнейшие действия
После настройки code scanning и разрешения на выполнение его действий вы можете:
- You can customize how code scanning scans the code in your repository. Дополнительные сведения см. в разделе Управление оповещениями code scanning для репозитория.
- Просмотр оповещений, созданных для запроса на вытягивание, отправленного после настройки code scanning. Дополнительные сведения см. в разделе Рассмотрение оповещений code scanning в запросах на вытягивание.
- Настройка уведомлений для завершенных запусков. Дополнительные сведения см. в разделе Настройка уведомлений.
- Просматривать журналы, создаваемые в результате анализа code scanning. Дополнительные сведения см. в статье Просмотр журналов code scanning.
- Изучите все проблемы, возникающие с начальной конфигурацией CodeQL code scanning. Дополнительные сведения см. в разделе Устранение неполадок в рабочем процессе CodeQL.
- Настраивать то, как code scanning сканирует код в репозитории. Дополнительные сведения см. в разделе Настройка code scanning.