{"meta":{"title":"Сканирование кода CodeQL для скомпилированных языков","intro":"Поймите, как CodeQL анализируют скомпилированные языки, какие доступные варианты сборки доступны, и узнайте, как можно настраивать процесс генерации базы данных, если это необходимо.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/code-security","title":"Безопасность и качество кода"},{"href":"/ru/code-security/concepts","title":"Concepts"},{"href":"/ru/code-security/concepts/code-scanning","title":"Проверка кода"},{"href":"/ru/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/ru/code-security/concepts/code-scanning/codeql/codeql-for-compiled-languages","title":"CodeQL для скомпилированных языков"}],"documentType":"article"},"body":"# Сканирование кода CodeQL для скомпилированных языков\n\nПоймите, как CodeQL анализируют скомпилированные языки, какие доступные варианты сборки доступны, и узнайте, как можно настраивать процесс генерации базы данных, если это необходимо.\n\n## О Рабочий процесс анализа CodeQL языках и компилированных языках\n\nCode scanning Работает, выполняя запросы к одной или нескольким CodeQL базам данных. Каждая база данных содержит представление кода на одном языке в репозитории. Для скомпилированных языков C/C++, C#, Go, Java, Kotlin, Rust, и Swiftпроцесс заполнения этой базы данных часто включает создание кода и извлечение данных.\n\nПри включении code scanning, и по умолчанию, и в расширенной установке создаются CodeQL база данных для анализа с использованием самого простого доступного метода. Для C/C++, C#, Java и Rust, CodeQL база данных генерируется непосредственно из кодовой базы без необходимости сборки (`none` режим сборки). Для других скомпилированных языков CodeQL кодовая база строится в режиме `autobuild` сборки. Кроме того, можно использовать `manual` режим сборки для указания явных команд сборки для анализа только файлов, созданных этими пользовательскими командами.\n\nВы можете использовать кэширование CodeQL зависимостей, чтобы хранить зависимости в кэше GitHub Actions вместо скачивания их из реестров. См. [раздел «О кэшировании зависимостей» для CodeQL](#about-dependency-caching-for-codeql) дальнейшей статьи в этой статье.\n\n## CodeQL Режимы сборки\n\nДействие CodeQL поддерживает три различных режима сборки для скомпилированных языков:\n\n* `none` - CodeQL база данных создаётся непосредственно из кодовой базы без её построения (поддерживается для всех интерпретируемых языков и дополнительно поддерживается для C/C++, C#, Java и Rust).\n* `autobuild`\n\n- CodeQL обнаруживает наиболее вероятный метод сборки и использует его для попытки построить кодовую базу и создать базу данных для анализа (поддерживается для C/C++, C#, Go, Java, Kotlin и Swift).\n\n* `manual` - Вы определяете шаги сборки для кодовой базы в рабочем процессе (поддерживается для C/C++, C#, Go, Java, Kotlin и Swift).\n\nДля языкового `autobuild` поведения, требований к бегунам и рекомендациям по ручным сборкам см. [Опции и шаги сборки CodeQL для скомпилированных языков](/ru/code-security/reference/code-scanning/codeql/build-options-for-compiled-languages).\n\n## О кэшировании зависимостей для CodeQL\n\nВы можете использовать кэширование CodeQL зависимостей, чтобы хранить зависимости в кэше GitHub Actions вместо скачивания их из реестров. Это снижает риск потери оповещений, когда сторонние реестры не работают хорошо, и может привести к улучшению производительности проектов, имеющих большое количество зависимостей или работающих с медленными реестрами. Дополнительные сведения о том, как кэширование зависимостей может ускорить рабочие процессы, см. в статье [Справочник по кэшированию зависимостей](/ru/actions/reference/workflows-and-actions/dependency-caching).\n\nКэширование зависимостей работает во всех режимах сборки и поддерживается Java, Go и C#.\n\n> \\[!NOTE]\n> Использование кэширования зависимостей хранит CodeQL-специфические кэши, которые будут подчиняться квотам кэша для репозитория. См [. раздел AUTOTITLE](/ru/actions/reference/workflows-and-actions/dependency-caching#usage-limits-and-eviction-policy)."}