Skip to main content

О типах настроек для сканирования кода

В зависимости от ваших потребностей, GitHub предлагает стандартную или расширенную конфигурацию для code scanning.

Сведения о настройке по умолчанию

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

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

Поддерживаемые языки

Рекомендуется включить настройку по умолчанию для подходящих репозиториев, если есть вероятность того, что репозитории будут включать по крайней мере один CodeQLподдерживаемый язык в будущем. Если включить настройку по умолчанию в репозитории, включающую никакие CodeQLподдерживаемые языки, программа установки по умолчанию не будет выполнять проверки или использовать какие-либо GitHub Actions минут. Если CodeQLподдерживаемые языки добавляются в ветвь по умолчанию репозитория, программа установки по умолчанию автоматически начнет сканирование CodeQLподдерживаемых языков и использование GitHub Actions минут. Дополнительные сведения о CodeQLподдерживаемых языках см. в разделе О проверке кода с помощью CodeQL.

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

Настройка настройки по умолчанию

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

Если вам нужен более подробный контроль над конфигурацией code scanning, необходимо настроить расширенную настройку.

Параметры конфигурации

Для существующих конфигураций настройки по умолчанию можно изменить:

  • Какие языки будут анализироваться по умолчанию.
  • Набор запросов выполняется во время анализа. Дополнительные сведения о доступных наборах запросов см. в разделе Наборы запросов CodeQL.
  • Модели угроз (public preview) для анализа. Выбор модели угроз определяет, какие источники незащищенных данных рассматриваются как риск для приложения. Во время public previewмодели угроз поддерживаются только для анализа Java/Kotlin и C#. Дополнительные сведения о моделях угроз см. в разделе "Включение локальных источников неуместных данных" в настройке по умолчанию.

Если база кода зависит от библиотеки или платформы, которая не распознается стандартными библиотеками, включенными в CodeQL, вы также можете расширить охват CodeQL в настройке по умолчанию с помощью пакетов моделей CodeQL. Дополнительные сведения см. в разделе "Расширение покрытия CodeQL с помощью пакетов модели CodeQL" по умолчанию.

Доступные средства выполнения

Вы можете использовать настройки по умолчанию для всех языков, поддерживаемых CodeQL, на самостоятельных раннерах или GitHub-хостированных раннерах.

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

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

  • Назначьте более мощные локальные модули выполнения критически важным репозиториям для ускорения анализа code scanning.
  • Запустите анализ данных code scanning на определенной платформе (например, macOS).
  • У вас есть детальный контроль над рабочей нагрузкой для ваших GitHubразмещенных средств выполнения и локальных модулей выполнения.

О продвинутой настройке

Расширенная настройка для code scanning полезна при настройке code scanning. Вы можете настроить code scanning с помощью GitHub Actions или внешней непрерывной интеграции или системы непрерывной доставки/развертывания (CI/CD).

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

С помощью GitHub Actions

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

С помощью сторонней системы CI/CD

В качестве альтернативы запуску code scanning внутри GitHub с помощью GitHub Actions вы можете анализировать код во внешней CI/CD системе, а затем загрузить результаты в GitHub.

CodeQL CLI — это автономное средство командной строки, которое можно использовать для анализа кода. Вы можете добавить CodeQL CLI в стороннюю систему или использовать другое стороннее средство статического анализа, которое может создавать результаты в виде формата обмена статическими результатами анализа (SARIF) 2.1.0. Дополнительные сведения см. в разделе [AUTOTITLE и Сведения о интерфейсе командной строки CodeQL](/code-security/code-scanning/integrating-with-code-scanning/sarif-support-for-code-scanning).

Оповещения для code scanning, создаваемые внешним образом, отображаются так же, как и для code scanning, создаваемых в GitHub.

Дальнейшие шаги

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

Для настройки расширенной настройки см. Настройка расширенной настройки для сканирования кода.