Сведения о Рабочий процесс анализа CodeQL и скомпилированных языках
Code scanning работает путем выполнения запросов к одной или нескольким базам данных CodeQL . Каждая база данных содержит представление кода на одном языке в репозитории. Для скомпилированных языков C/C++, C#, Go, Java, Kotlin, Rust (общедоступная предварительная версия), и Swiftпроцесс заполнения этой базы данных часто включает создание кода и извлечение данных.
Если включить code scanning, по умолчанию и расширенной настройке создается база данных CodeQL для анализа с помощью простого метода. Для C# and Javaбаза данных CodeQL создается непосредственно из базы кода без необходимости сборки (none режим сборки). Для других скомпилированных языков CodeQL создает базу кода с помощью режима сборки autobuild . Кроме того, можно использовать manual режим сборки для указания явных команд сборки для анализа только файлов, созданных этими пользовательскими командами.
Режимы сборки CodeQL
Действие CodeQL поддерживает три различных режима сборки для скомпилированных языков:
-
`none` — база данных CodeQL создается непосредственно из базы кода без создания базы кода (поддерживается для всех интерпретированных языков и дополнительно поддерживается для C# and Java). -
`autobuild` - CodeQL определяет наиболее вероятный метод сборки и использует его для попытки сборки кодовой базы и создания базы данных для анализа (поддерживается для C/C++, C#, Go, Java, Kotlin и Swift). -
`manual` - Вы определяете шаги сборки, которые будут использоваться для базы кода в рабочем процессе (поддерживается для C/C++, C#, Go, Java, Kotlin и Swift).
Для языкового autobuild поведения, требований к бегунам и рекомендациям по ручным сборкам см. Опции и шаги сборки CodeQL для скомпилированных языков.