Skip to main content
Мы публикуем частые обновления нашей документации, и перевод этой страницы может все еще выполняться. Актуальные сведения см. в документации на английском языке.

Настройка проверки кода для репозитория

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

Кто может использовать эту функцию

If you have write permissions to a repository, you can configure code scanning for that repository.

Code scanning доступно в репозиториях, принадлежащих организациям, в GitHub Enterprise Server. Для этой функции требуется лицензия на GitHub Advanced Security. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

Примечание: Администратор сайта должен включить 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 вручную

  1. На экземпляр GitHub Enterprise Server перейдите на главную страницу репозитория. 1. Под именем репозитория щелкните Безопасность. Вкладка "Безопасность"

  2. Справа от пункта "Оповещения Code scanning"щелкните Настроить code scanning . Если code scanning отсутствует, попросите владельца организации или администратора репозитория включить GitHub Advanced Security. Дополнительные сведения см. в разделах Управление параметрами безопасности и анализа для организации и Управление параметрами безопасности и анализа для репозитория. Кнопка "Настройка code scanning" справа от параметра "Code scanning" в обзоре безопасности

  3. В разделе "Начало работы с code scanning" щелкните Настройка этого рабочего процесса в Рабочий процесс анализа CodeQL или стороннем рабочем процессе. Кнопка "Настроить этот рабочий процесс" в разделе "Начало работы с code scanning"Рабочие процессы отображается только в том случае, если они актуальны для языков программирования, обнаруженных в репозитории. Рабочий процесс анализа CodeQL отображается всегда, но кнопка "Настроить этот рабочий процесс" включена, только если анализ CodeQL поддерживает языки, присутствующих в репозитории.

  4. Чтобы настроить работу code scanning по сканированию кода, измените рабочий процесс.

    Как правило, вы можете зафиксировать Рабочий процесс анализа CodeQL, не изменяя его. Однако многие из сторонних рабочих процессов нуждаются в дополнительной настройке, поэтому перед фиксацией прочтите комментарии в рабочем процессе.

    Дополнительные сведения см. в разделе Настройка code scanning.

  5. Используйте раскрывающийся список Начать фиксацию и введите сообщение о фиксации. Начать фиксацию

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

  7. Нажмите кнопку 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 для репозитория можно отслеживать выходные данные действий по мере их выполнения.

  1. Щелкните Действия под именем репозитория. Вкладка "Действия" на главной панели навигации по репозиторию

    Вы увидите список, содержащий запись, соответствующую рабочему процессу code scanning. Текст записи — это название, которое вы присвоили своему сообщению о фиксации.

    Список действий с рабочим процессом code scanning

  2. Нажмите запись, соответствующую рабочему процессу code scanning

  3. Нажмите на название задания слева. Например, Анализ (ЯЗЫК)

    Выходные данные журнала из рабочего процесса code scanning

  4. Просматривайте журнал результатов действий в рабочем процессе по мере их выполнения.

  5. После завершения всех заданий можно просмотреть сведения о всех обнаруженных оповещениях code scanning. Дополнительные сведения см. в разделе Управление оповещениями code scanning для репозитория.

Примечание. Если вы создали запрос на вытягивание, чтобы добавить рабочий процесс code scanning в репозиторий, оповещения из этого запроса на вытягивание не будут отображаться непосредственно на странице Code scanning, пока запрос не будет объединен. Если были найдены какие-либо оповещения, вы можете просмотреть их перед слиянием запроса на вытягивание, щелкнув ссылку Число оповещений, найденных на баннере на странице Code scanning.

Щелкните ссылку "Найдено оповещений: n"

Общие сведения о проверках запросов на вытягивание

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

Имена проверок анализа code scanning имеют вид: "ИМЯ ИНСТРУМЕНТА/ИМЯ ЗАДАНИЯ (ТРИГГЕР)." Например, для CodeQL анализ кода C++ включает запись "CodeQL/Analyze (cpp) (pull_request)". Нажмите Сведения в записи анализа code scanning, чтобы просмотреть данные журнала. Это позволит устранить проблему, если задание анализа завершится сбоем. Например, при анализе скомпилированных языков с помощью code scanning это может произойти, если действие не может компилировать код.

Проверки запросов на вытягивание code scanning

После завершения заданий code scanning GitHub определяет, добавили ли запросы на вытягивание какие-то оповещения, и добавляет в список проверок запись "Результаты Code scanning/ИМЯ ИНСТРУМЕНТА". После того, как code scanning будет выполнено хотя бы один раз, нажмите Сведения, чтобы просмотреть результаты анализа.

Дальнейшие действия

После настройки code scanning и разрешения на выполнение его действий вы можете: