Skip to main content

Эта версия GitHub Enterprise Server будет прекращена 2026-03-17. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

О сканировании кода CodeQL для скомпилированных языков

Узнайте, как CodeQL анализирует скомпилированные языки, доступные параметры сборки и узнайте, как настроить процесс создания базы данных, если это необходимо.

Кто может использовать эту функцию?

Пользователи с доступом на запись if advanced setup is already enabled

Code scanning доступен для следующих типов репозитория:

  • Общедоступные репозитории для GitHub.com
  • Репозитории, принадлежащие организации, на GitHub Team, GitHub Enterprise Cloud или GitHub Enterprise Server, с включённым GitHub Advanced Security .

Сведения о Рабочий процесс анализа CodeQL и скомпилированных языках

Code scanning работает путем выполнения запросов к одной или нескольким базам данных CodeQL . Каждая база данных содержит представление кода на одном языке в репозитории. Для скомпилированных языков C/C++, C#, Go, Java, Kotlin, Rust (общедоступная предварительная версия), и Swiftпроцесс заполнения этой базы данных часто включает создание кода и извлечение данных.

Если включить code scanning, по умолчанию и расширенной настройке создается база данных CodeQL для анализа с помощью простого метода. Для Javaбаза данных CodeQL создается непосредственно из базы кода без необходимости сборки (none режим сборки). Для других скомпилированных языков CodeQL создает базу кода с помощью режима сборки autobuild . Кроме того, можно использовать manual режим сборки для указания явных команд сборки для анализа только файлов, созданных этими пользовательскими командами.

Режимы сборки CodeQL

Действие CodeQL поддерживает три различных режима сборки для скомпилированных языков:

  •         `none` — база данных CodeQL создается непосредственно из базы кода без создания базы кода (поддерживается для всех интерпретированных языков и дополнительно поддерживается для  Java).
    
  •         `autobuild` - CodeQL определяет наиболее вероятный метод сборки и использует его для попытки сборки кодовой базы и создания базы данных для анализа (поддерживается для C/C++, C#, Go, Java, Kotlin и Swift).
    
  •         `manual` - Вы определяете шаги сборки, которые будут использоваться для базы кода в рабочем процессе (поддерживается для C/C++, C#, Go, Java, Kotlin и Swift).
    

Для языкового autobuild поведения, требований к бегунам и рекомендациям по ручным сборкам см. Опции и шаги сборки CodeQL для скомпилированных языков.