Сведения о настройке code scanning в нескольких репозиториях
Существует два способа одновременной настройки code scanning в нескольких репозиториях. Оптимальный метод зависит от потребностей в анализе репозиториев.
- Репозитории могут быть настроены по умолчанию для CodeQL и принадлежат организации.
- Группа репозиториев имеет аналогичные потребности в конфигурации для расширенной установки CodeQL.
Кроме того, GitHub Actions необходимо включить для organization or enterprise.
Подходящие репозитории для установки по умолчанию CodeQL
Примечание: Возможность включения и отключения настройки по умолчанию для code scanning для подходящих репозиториев в организации в настоящее время находится в бета-версии и может быть изменена. Если во время бета-версии вы отключите CodeQL code scanning для всех репозиториев, это изменение не будет отражено в сведениях о покрытии, отображаемых в обзоре безопасности для организации. В этом представлении для репозиториев по-прежнему будет включено code scanning.
Вы можете использовать страницу параметров организации для "Безопасность и анализ кода", чтобы включить code scanning для любых репозиториев в организации, которые имеют право на установку по умолчанию CodeQL.
Критерии соответствия для включения на уровне организации
Репозиторий должен соответствовать всем следующим критериям, чтобы иметь право на настройку по умолчанию. В противном случае необходимо использовать расширенную настройку.
- Code scanning еще не включен.
- GitHub Actions включены.
- Использует Go, JavaScript/TypeScript, Python или Ruby.
- Не использует другие языки, поддерживаемые CodeQL, но может включать другие языки, например R. Дополнительные сведения о языках, поддерживаемых CodeQL, см. в разделе О проверке кода с помощью CodeQL.
- Общедоступная или включена GitHub Advanced Security.
Дополнительные сведения о настройке по умолчанию см. в разделе Настройка проверки кода для репозитория. Сведения об изменении параметров безопасности и анализа для организации см. в разделе Управление параметрами безопасности и анализа для организации.
Поиск репозиториев, подходящих для установки по умолчанию
Страница покрытия безопасности, которая является частью обзора безопасности, позволяет легко фильтровать репозитории в вашей организации, чтобы показать репозитории, которые могут быть настроены по умолчанию.
code-scanning-default-setup:eligible is:public
показывает репозитории с языками, подходящими для настройки по умолчанию, и подходящими, так как они видны для общественности.code-scanning-default-setup:eligible advanced-security:enabled
отображаются частные или внутренние репозитории с языками, подходящими для настройки по умолчанию, и подходящими, так как для них включен GitHub Advanced Security.code-scanning-default-setup:eligible is:private,internal advanced-security:not-enabled
показывает частные или внутренние репозитории с языками, подходящими для установки по умолчанию, но не включающими GitHub Advanced Security. После включения GitHub Advanced Security для этих репозиториев их также можно добавить в настройку по умолчанию.code-scanning-default-setup:not-eligible
отображаются репозитории, для которых либо уже настроена расширенная настройка, либо в которых языки не подходят для установки по умолчанию.
Дополнительные сведения о странице покрытия безопасности см. в разделе Оценка внедрения функций безопасности кода.
Использование скрипта для настройки расширенной установки
Для репозиториев, которые не поддерживают настройку по умолчанию, можно использовать скрипт массовой настройки для настройки расширенной настройки в нескольких репозиториях.
- Определите группу репозиториев, которые можно проанализировать с помощью той же конфигурации code scanning. Например, все репозитории, которые создают артефакты Java с помощью рабочей среды.
- Создайте и протестируйте рабочий процесс GitHub Actions, чтобы вызвать действие CodeQL с соответствующей конфигурацией. Дополнительные сведения см. в разделе Настройка проверки кода для репозитория.
- Используйте один из примеров скриптов, создайте пользовательский скрипт, чтобы добавить рабочий процесс в каждый репозиторий в группе.
- Пример PowerShell:
jhutchings1/Create-ActionsPRs
репозиторий - Пример NodeJS:
nickliffen/ghas-enablement
репозиторий
- Пример PowerShell: