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.com. Code scanning также доступно в частных репозиториях, принадлежащих организациям, которые используют GitHub Enterprise Cloud и имеют лицензию на GitHub Advanced Security. Дополнительные сведения см. в разделе Сведения о GitHub Advanced Security.

Параметры настройки code scanning

Вы сами решаете, как будут формироваться оповещения code scanning и какие средства будут использоваться, на уровне репозитория. GitHub обеспечивает полную интегрированную поддержку анализа CodeQL и поддерживает анализ с использованием сторонних средств. Дополнительные сведения см. в следующих маркерах и разделе Сведения о code scanning.

Автоматическая настройка code scanning

Настройка по умолчанию для code scanning автоматически настраивает code scanning с лучшими параметрами для репозитория. Репозиторий может быть настроен по умолчанию, если он использует GitHub Actions и содержит только следующие языки, поддерживаемые CodeQL: JavaScript/TypeScript, Python или Ruby. Хотя вы можете использовать настройку по умолчанию, если репозиторий содержит языки, которые не поддерживаются CodeQL, например R, необходимо использовать расширенную настройку, если вы включаете языки, поддерживаемые CodeQL, отличные от перечисленных ранее. Дополнительные сведения о языках, поддерживаемых CodeQL, см. в разделе Сведения о code scanning с CodeQL.

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

Попробуйте выполнить настройку по умолчанию, если вам не нужно выполнять дополнительные запросы, изменять расписание сканирования или сканировать язык, который в настоящее время не поддерживается установкой по умолчанию.

  1. На GitHub.com перейдите на главную страницу репозитория. 1. Нажмите Параметры под именем репозитория. Кнопка параметров репозитория

  2. В разделе "Безопасность" на боковой панели щелкните Безопасность и анализ кода.

  3. В разделе "Code scanning" выберите Настройка , а затем щелкните По умолчанию.

    Снимок экрана: раздел "Code scanning" с акцентом на параметре установки "По умолчанию"

  4. В окне конфигурации по умолчанию CodeQL просмотрите параметры репозитория, а затем щелкните Включить CodeQL.

    Снимок экрана: всплывающее окно "CodeQL по умолчанию" с акцентом на кнопке "Включить CodeQL"

    Примечания.

    • В окне конфигурации по умолчанию CodeQL отображаются сведения о настройке по умолчанию, включая анализируемые языки, наборы запросов для выполнения и события, запускающие новую проверку. Если вы хотите изменить, какие наборы запросов будут выполняться, какие события будут активировать новую проверку или другие функции code scanning, необходимо использовать расширенную настройку. Дополнительные сведения см. в разделе Создание расширенной установки.
    • При переключении на настройку по умолчанию из расширенной установки вы увидите предупреждение о том, что настройка по умолчанию переопределит существующие конфигурации. После включения CodeQL обязательно удалите или отключите существующий файл рабочего процесса. В противном случае рабочий процесс продолжит регулярно выполняться без отправки результатов code scanning, используя GitHub Actions минут.
    • Если вы хотите увидеть настройку по умолчанию CodeQL после настройки, выберите , а затем щелкните View CodeQL.

Создание расширенной установки

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

Настройка code scanning с помощью начальных рабочих процессов

Примечание. Начальные рабочие процессы для Advanced Security консолидированы в категории "Безопасность" на вкладке Действия в репозитории. Эта новая конфигурация пока доступна только в бета-версии и может быть изменена.

Начальные рабочие процессы GitHub предоставляет начальные рабочие процессы для таких функций обеспечения безопасности, как code scanning. Предложенные рабочие процессы можно использовать для создания рабочих процессов code scanning вместо того, чтобы начинать с нуля. Code scanning доступны для репозитория, только если включена функция code scanning.

При использовании действий для запуска code scanning используются минуты. Дополнительные сведения см. в статье Сведения о выставлении счетов за Dependabot alerts.

  1. На GitHub.com перейдите на главную страницу репозитория. 1. Щелкните Действия под именем репозитория. Вкладка "Действия" на главной панели навигации по репозиторию
  2. Если в репозитории уже настроен и запущен хотя бы один рабочий процесс, щелкните Создать рабочий процесс и перейдите к шагу 5. Если рабочие процессы для репозитория не настроены, переходите к следующему шагу. Снимок экрана: кнопка "Новый рабочий процесс"
  3. Прокрутите экран вниз до категории "Безопасность" и нажмите Настроить под рабочим процессом, который вы хотите настроить, или Просмотреть все, чтобы просмотреть все доступные рабочие процессы безопасности. Снимок экрана: раздел "Безопасность рабочих процессов действий"
  4. В правой части страницы рабочих процессов нажмите Документация и настройте рабочий процесс в соответствии со своими потребностями, следуя инструкциям на экране. Снимок экрана: вкладка "Документация" для начальных рабочих процессов. Дополнительные сведения см. в разделах "Использование начальных рабочих процессов" и "Настройка code scanning".

Настройка code scanning вручную

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

При использовании действий для запуска code scanning используются минуты. Дополнительные сведения см. в статье Сведения о выставлении счетов за Dependabot alerts.

Примечание: Вы можете настроить code scanning для любого общедоступного репозитория, в котором у вас есть доступ на запись.

  1. На GitHub.com перейдите на главную страницу репозитория. 1. Нажмите Параметры под именем репозитория. Кнопка параметров репозитория

  2. В разделе "Безопасность" на боковой панели щелкните Безопасность и анализ кода.

  3. В разделе "Code scanning" выберите Настройка , а затем нажмите кнопку Дополнительно.

    Примечание: Если вы переходите на расширенную настройку code scanning из настройки по умолчанию, в разделе "Code scanning" выберите , а затем щелкните Перейти на расширенный. Во всплывающем окне щелкните Отключить CodeQL.

    Снимок экрана: раздел "Code scanning" с акцентом на параметре настройки "Дополнительно"

  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 и разрешения на выполнение его действий вы можете: