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 с лучшими параметрами для репозитория. Настройка по умолчанию использует GitHub Actions для выполнения анализа CodeQL без необходимости фиксировать файл рабочего процесса в репозитории.

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

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

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

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

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

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

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

    Снимок экрана: раздел "Code scanning" параметров "Безопасность и анализ кода". Кнопка "Настройка по умолчанию" выделена оранжевым контуром.

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

    Примечания.

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

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

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

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

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

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

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

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

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

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

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

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

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

    Снимок экрана: заголовок репозитория с вкладками. Вкладка "Параметры" выделена темно-оранжевым контуром.

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

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

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

    Снимок экрана: раздел "Code scanning" параметров "Безопасность и анализ кода". Кнопка "Расширенная настройка" выделена оранжевым контуром.

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

Сведения о массовом включении см. в разделе Configuring code scanning at scale using CodeQL.

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