{"meta":{"title":"CodeQL CLI","intro":"Вы можете использовать CodeQL CLI его для локального запуска CodeQL процессов в программных проектах или для генерации code scanning результатов для загрузки в GitHub.","product":"Безопасность и качество кода","breadcrumbs":[{"href":"/ru/enterprise-cloud@latest/code-security","title":"Безопасность и качество кода"},{"href":"/ru/enterprise-cloud@latest/code-security/concepts","title":"Concepts"},{"href":"/ru/enterprise-cloud@latest/code-security/concepts/code-scanning","title":"Проверка кода"},{"href":"/ru/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql","title":"CodeQL"},{"href":"/ru/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql/codeql-cli","title":"CodeQL CLI"}],"documentType":"article"},"body":"# CodeQL CLI\n\nВы можете использовать CodeQL CLI его для локального запуска CodeQL процессов в программных проектах или для генерации code scanning результатов для загрузки в GitHub.\n\nРазработчики программного обеспечения и исследователи безопасности могут защитить свой код с помощью CodeQL анализа. Дополнительные сведения см. в CodeQLразделе [Сканирование кода с помощью CodeQL](/ru/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql/codeql-code-scanning#about-codeql).\n\nЭто CodeQL CLI автономный инструмент командной строки, который можно использовать для анализа кода. Её основная цель — генерировать представление базы данных кода, базы CodeQL данных. Когда база данных готова, вы можете делать к ней интерактивный запрос или запускать набор запросов для генерации результатов в формате SARIF и загрузки их в GitHub.\n\nВы можете использовать CodeQL CLI это, чтобы:\n\n* Запускайте анализы CodeQL с помощью запросов, предоставленных инженерами GitHub и сообществом открытый код\n* Генерируйте оповещения о сканировании кода, которые можно загрузить для отображения в GitHub\n* Создайте CodeQL базы данных для использования в CodeQL расширении.Visual Studio Code\n* Разрабатывайте и тестируйте пользовательские CodeQL запросы для использования в собственном анализе\n\nОни CodeQL CLI могут проанализировать:\n\n* Динамические языки, например, JavaScript и Python.\n* Например, компилированные языки, C/C++, C#, Go, Java, Kotlin, Rust, и Swift\n* Базы кода написаны на нескольких языках.\n\n## О том, как использовать CodeQL CLI для code scanning\n\nВы можете использовать CodeQL CLI их для запуска code scanning кода, который вы обрабатываете в сторонней системе непрерывной интеграции (CI).\nCode scanning — это функция, используемая для анализа кода в репозитории GitHub для поиска уязвимостей системы безопасности и ошибок кодирования. Все проблемы, выявленные анализом, отображаются в репозитории. Для обзора использования сканирования кода с внешними CI-системами см. [Использование сканирования кода с существующей системой CI](/ru/enterprise-cloud@latest/code-security/how-tos/find-and-fix-code-vulnerabilities/integrate-with-existing-tools/use-with-existing-ci-system). Рекомендуемые характеристики (оперативная память, ядра процессора и диск) для анализа CodeQL см. [Рекомендуемое оборудование для запуска CodeQL](/ru/enterprise-cloud@latest/code-security/reference/code-scanning/codeql/hardware-resources-for-codeql).\n\nВ качестве альтернативы можно использовать GitHub Actions или Azure DevOps конвейеры для сканирования кода с помощью CodeQL CLI. Для получения дополнительной информации см. [Настройка настройки по умолчанию для сканирования кода](/ru/enterprise-cloud@latest/code-security/how-tos/find-and-fix-code-vulnerabilities/configure-code-scanning/configure-code-scanning) или [Configure GitHub Advanced Security for Azure DevOps](https://learn.microsoft.com/en-us/azure/devops/repos/security/configure-github-advanced-security-features) в Microsoft Learn.\n\nДля обзора всех вариантов использования CodeQL анализа для сканирования кода см. [Сканирование кода с помощью CodeQL](/ru/enterprise-cloud@latest/code-security/concepts/code-scanning/codeql/codeql-code-scanning).\n\n> \\[!NOTE]\n>\n> * CodeQL CLI можно использовать в общедоступных репозиториях, которые хранятся на GitHub.com, и доступны для использования в частных репозиториях, принадлежащих клиентам с лицензией GitHub Code Security . Дополнительные сведения см. в разделе [GitHub CodeQL условия](https://securitylab.github.com/tools/codeql/license) и [CodeQL CLI](https://codeql.github.com/docs/codeql-cli/).\n> * В настоящее время CodeQL CLI несовместим с дистрибутивами Linux не на основе glibc, такими как Alpine Linux (на основе musl).\n\n## О генерации результатов сканирования кода с помощью CodeQL CLI\n\nЕсли вы решите запускать CodeQL CLI его напрямую, сначала нужно установить CodeQL CLI локально. Если вы планируете использовать CodeQL CLI их с внешней CI-системой, вам нужно сделать CodeQL CLI её доступной для серверов в вашей CI-системе.\n\nПосле CodeQL CLI настройки вы можете использовать три разные команды для генерации результатов и загрузки их в GitHub:\n\n1. `database create` создать CodeQL базу данных, представляющую иерархическую структуру каждого поддерживаемого языка программирования в репозитории. Дополнительные сведения см. в разделе [Подготовка кода для анализа CodeQL](/ru/enterprise-cloud@latest/code-security/tutorials/customize-code-scanning/prepare-code-for-analysis).\n2. `database analyze` для выполнения запросов для анализа каждой CodeQL базы данных и суммирования результатов в файле SARIF. Дополнительные сведения см. в разделе [Анализ кода с помощью запросов CodeQL](/ru/enterprise-cloud@latest/code-security/tutorials/customize-code-scanning/analyze-code).\n3. `github upload-results` загрузить полученные SARIF-файлы туда GitHub , где результаты сопоставляются с веткой или pull-запросом и отображаются в виде code scanning оповещений. Дополнительные сведения см. в разделе [Загрузка результатов анализа CodeQL на GitHub](/ru/enterprise-cloud@latest/code-security/tutorials/customize-code-scanning/upload-results).\n\n> \\[!NOTE]\n> Отправка данных SARIF для отображения в виде code scanning приводит к поддержке GitHub для репозиториев, принадлежащих организации, с GitHub Code Security включено, а также общедоступные репозитории на GitHub.com. Дополнительные сведения см. в разделе [Управление параметрами безопасности и анализа для репозитория](/ru/enterprise-cloud@latest/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository).\n\n### Пример конфигурации CI для CodeQL анализа\n\nЭто пример полной серии команд для , CodeQL CLI которые можно использовать для анализа кодовой базы с двумя поддерживаемыми языками, а затем загрузки результатов в GitHub.\n\n```shell\n# Create CodeQL databases for Java and Python in the 'codeql-dbs' directory\n# Call the normal build script for the codebase: 'myBuildScript'\n\ncodeql database create codeql-dbs --source-root=src \\\n    --db-cluster --language=java,python --command=./myBuildScript\n\n# Analyze the CodeQL database for Java, 'codeql-dbs/java'\n# Tag the data as 'java' results and store in: 'java-results.sarif'\n\ncodeql database analyze codeql-dbs/java java-code-scanning.qls \\\n    --format=sarif-latest --sarif-category=java --output=java-results.sarif\n\n# Analyze the CodeQL database for Python, 'codeql-dbs/python'\n# Tag the data as 'python' results and store in: 'python-results.sarif'\n\ncodeql database analyze codeql-dbs/python python-code-scanning.qls \\\n    --format=sarif-latest --sarif-category=python --output=python-results.sarif\n\n# Upload the SARIF file with the Java results: 'java-results.sarif'\n# The GitHub App or personal access token created for authentication\n# with GitHub's REST API is available in the `GITHUB_TOKEN` environment variable.\n\ncodeql github upload-results \\\n    --repository=my-org/example-repo \\\n    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \\\n    --sarif=java-results.sarif\n\n# Upload the SARIF file with the Python results: 'python-results.sarif'\n\ncodeql github upload-results \\\n    --repository=my-org/example-repo \\\n    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \\\n    --sarif=python-results.sarif\n```\n\n### Извлечение базы данных\n\nИспользуется CodeQL CLI специальные программы, называемые экстракторами, для извлечения информации из исходного кода программной системы в базу данных, к которой можно задавать запросы. Вы можете настроить поведение экстракторов, настроив настройки экстрактора через CodeQL CLI. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/reference/code-scanning/codeql/codeql-cli/extractor-options).\n\n## О лицензии GitHub CodeQL\n\n**Уведомление о лицензии.** Если у вас нет лицензии на GitHub Code Security, то, установив этот продукт, вы соглашаетесь с [GitHub CodeQL условий.](https://github.com/github/codeql-cli-binaries/blob/main/LICENSE.md)\n\nСведения о том, как можно попробовать GitHub Advanced Security бесплатно, см. в разделе [Настройка пробной версии GitHub Advanced Security](/ru/enterprise-cloud@latest/code-security/tutorials/trialing-github-advanced-security/trial-advanced-security).\n\n## О CodeQL CLI базах данных\n\nCodeQL CLI Команда database bundle может быть использована для создания переносимого архива CodeQL базы данных.\n\nКопия пакета баз данных может использоваться для обмена информацией по устранению неполадок с членами вашей команды или с Служба поддержки GitHub. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line/create-database-bundles).\n\n## Начало работы\n\nСамый простой способ начать смотрите [Настройка интерфейса командной строки CodeQL](/ru/enterprise-cloud@latest/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line/set-up-codeql-cli).\n\nБолее продвинутые варианты настройки доступны, если они нужны. Например, если вы:\n\n* Хочу внести вклад в открытый код общие запросы CodeQL и предпочитаю работать напрямую с исходным кодом CodeQL. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line/check-out-source-code).\n* Нужно установить несколько версий CodeQL CLI параллельно. Например, если одна кодовая база требует определённой версии, а другая использует последнюю. Вы можете скачать каждую версию и распаковывать оба архива CLI в одной родительской директории.\n* Вы исследуете или разрабатываете запросы и хотите скачать базы данных с GitHub.com. См [. раздел AUTOTITLE](/ru/enterprise-cloud@latest/code-security/how-tos/find-and-fix-code-vulnerabilities/scan-from-the-command-line/download-databases)."}