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 и какие средства будут использоваться, на уровне репозитория. 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 вручную

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

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

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

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

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

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

  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 в нескольких репозиториях одновременно с помощью скрипта. Если вы хотите использовать сценарий для создания запросов на вытягивание, которые добавляют рабочий процесс 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.

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

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

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

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

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

После завершения заданий code scanning GitHub определяет, были ли оповещения добавлены запросом на вытягивание, и добавляет запись "Code scanning results/TOOL NAME" в список проверок. После того, как code scanning будет выполнено хотя бы один раз, нажмите Сведения, чтобы просмотреть результаты анализа.

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

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