19 KiB
title, shortTitle, intro, product, redirect_from, versions, type, topics, ms.openlocfilehash, ms.sourcegitcommit, ms.translationtype, ms.contentlocale, ms.lasthandoff, ms.locfileid
| title | shortTitle | intro | product | redirect_from | versions | type | topics | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid | |||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Запуск средства выполнения CodeQL в системе CI | Run CodeQL runner | {% data variables.code-scanning.codeql_runner %} можно использовать для выполнения {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} в сторонней системе непрерывной интеграции. | {% data reusables.gated-features.code-scanning %} |
|
|
how_to |
|
7e60376ed165a3af2da7f000c37d326cb33ade99 | b617c4a7a1 |
MT | ru-RU | 11/11/2022 | 148161097 |
{% ifversion codeql-runner-supported %}
{% data reusables.code-scanning.deprecation-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %}
Сведения о {% data variables.code-scanning.codeql_runner %}
{% data variables.code-scanning.codeql_runner %} — это средство, которое можно использовать для запуска {% data variables.product.prodname_code_scanning %} в коде, обрабатываемом в сторонней системе непрерывной интеграции (CI). {% data reusables.code-scanning.about-code-scanning %} Дополнительные сведения см. в статье Сведения о {% data variables.product.prodname_code_scanning %} с {% data variables.product.prodname_codeql %}.
Во многих случаях проще настроить {% data variables.product.prodname_code_scanning %} {% data variables.product.prodname_codeql %} с помощью {% data variables.product.prodname_codeql_cli %} непосредственно в системе CI.
Вы также можете использовать {% data variables.product.prodname_actions %} для запуска {% data variables.product.prodname_code_scanning %} в {% data variables.product.product_name %}. Дополнительные сведения см. в разделе Настройка {% data variables.product.prodname_code_scanning %} для репозитория.
{% data variables.code-scanning.codeql_runner %} — это программа командной строки, которая выполняет анализ {% data variables.product.prodname_codeql %} при извлечении репозитория {% data variables.product.prodname_dotcom %}. Вы добавляете средство выполнения в свою стороннюю систему, а затем вызываете это средство выполнения для анализа кода и отправки результатов в {% data variables.product.product_name %}. Эти результаты отображаются в репозитории как оповещения {% data variables.product.prodname_code_scanning %}.
{% note %}
Примечание. {% ifversion fpt or ghec %}
- {% data variables.code-scanning.codeql_runner %} использует интерфейс командной строки {% data variables.product.prodname_codeql %} для анализа кода и, следовательно, имеет те же условия лицензии. Его можно бесплатно использовать в общедоступных репозиториях, которые хранятся на {% data variables.product.prodname_dotcom_the_website %}, а также можно использовать в частных репозиториях, принадлежащих клиентам с лицензией {% data variables.product.prodname_advanced_security %}. Дополнительные сведения см. в разделах Условия {% data variables.product.product_name %} {% data variables.product.prodname_codeql %} и Интерфейс командной строки {% data variables.product.prodname_codeql %}. {% else %}
- {% data variables.code-scanning.codeql_runner %} доступен клиентам с лицензией {% data variables.product.prodname_advanced_security %}. {% endif %} {% ifversion ghae %}
- {% data variables.code-scanning.codeql_runner %} не следует путать с интерфейсом командной строки {% data variables.product.prodname_codeql %}. CLI {% data variables.product.prodname_codeql %} — это интерфейс командной строки, который позволяет создавать базы данных {% data variables.product.prodname_codeql %} для исследования безопасности и выполнять запросы {% data variables.product.prodname_codeql %}. Дополнительные сведения см. в разделе {% data variables.product.prodname_codeql_cli %}. {% endif %} {% endnote %}
Скачивание {% data variables.code-scanning.codeql_runner %}
{% data variables.code-scanning.codeql_runner %} можно скачать из https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases. В некоторых операционных системах может потребоваться изменить разрешения для скачанного файла, прежде чем его можно будет запустить.
В Linux
chmod +x codeql-runner-linux
Действия для MacOS.
chmod +x codeql-runner-macos
sudo xattr -d com.apple.quarantine codeql-runner-macos
В Windows изменение разрешений для файла codeql-runner-win.exe обычно не требуется.
Добавление {% data variables.code-scanning.codeql_runner %} в систему CI
Скачав {% data variables.code-scanning.codeql_runner %} и убедившись, что он может быть выполнен, следует сделать средство выполнения доступным для каждого сервера CI, который планируется использовать для {% data variables.product.prodname_code_scanning %}. Например, можно настроить каждый сервер для копирования средства выполнения из центрального внутреннего расположения. Кроме того, можно использовать REST API для получения средства выполнения непосредственно из {% data variables.product.prodname_dotcom %}, например:
wget https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases/latest/download/codeql-runner-linux
chmod +x codeql-runner-linux
Помимо этого, каждому серверу CI также потребуется следующее.
- {% data variables.product.prodname_github_app %} или {% data variables.product.pat_generic %} для использования {% data variables.code-scanning.codeql_runner %}. Необходимо использовать маркер доступа с областью
repoили {% data variables.product.prodname_github_app %} с разрешением на записьsecurity_events, а также разрешениями на чтениеmetadataиcontents. Дополнительные сведения см. в разделах Создание {% data variables.product.prodname_github_apps %}и Создание {% data variables.product.pat_generic %}. - Доступ к пакету {% data variables.product.prodname_codeql %}, связанному с этим выпуском {% data variables.code-scanning.codeql_runner %}. Этот пакет содержит запросы и библиотеки, необходимые для анализа {% data variables.product.prodname_codeql %}, а также интерфейс командной строки {% data variables.product.prodname_codeql %}, который используется средством выполнения внутренним образом. Дополнительные сведения см. в разделе "{% data variables.product.prodname_codeql %} CLI".
Существуют следующие варианты предоставления доступа к пакету {% data variables.product.prodname_codeql %}.
- Разрешите серверам CI доступ к https://{% ifversion fpt or ghec %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action, чтобы {% data variables.code-scanning.codeql_runner %} мог скачать пакет автоматически.
- Скачайте или извлеките пакет вручную, сохраните его вместе с другими центральными ресурсами и используйте
--codeql-pathфлаг , чтобы указать расположение пакета в вызовах для инициализации {% data variables.code-scanning.codeql_runner %}.
Вызов {% data variables.code-scanning.codeql_runner %}
Необходимо вызвать {% data variables.code-scanning.codeql_runner %} из расположения возврата репозитория, который требуется проанализировать. При этом используются две следующие основные команды.
initтребуется для инициализации средства выполнения и создания базы данных {% data variables.product.prodname_codeql %} для каждого анализируемого языка. Эти базы данных заполняются и анализируются последующими командами.analyzeтребуется для заполнения баз данных {% data variables.product.prodname_codeql %}, анализа их и отправки результатов в {% data variables.product.product_name %}.
Для обеих команд необходимо указать URL-адрес {% data variables.product.product_name %}, владельца/имя репозитория, а также {% data variables.product.prodname_github_apps %} или {% data variables.product.pat_generic %} для проверки подлинности. Кроме того, необходимо указать расположение пакета CodeQL, если сервер CI не имеет доступа для его загрузки непосредственно из репозитория github/codeql-action.
Вы можете настроить, где {% data variables.code-scanning.codeql_runner %} хранит пакет CodeQL для последующего анализа на сервере с помощью флага --tools-dir и где он хранит временные файлы во время анализа с помощью --temp-dir.
Для просмотра ссылки на командную строку для средства выполнения используйте флаг -h. Например, чтобы вывести список всех команд, выполните codeql-runner-OS -h, а чтобы вывести список всех флагов, доступных для команды init, выполните codeql-runner-OS init -h (где OS зависит от используемого исполняемого файла). Дополнительные сведения см. в разделе Настройка {% data variables.product.prodname_code_scanning %} в системе CI.
{% data reusables.code-scanning.upload-sarif-alert-limit %}
Простой пример
В этом примере запускается анализ {% data variables.product.prodname_codeql %} на сервере CI Linux для репозитория octo-org/example-repo, размещенного в {% data variables.command_line.git_url_example %}. Процесс очень прост, так как репозиторий содержит только языки, которые можно анализировать с помощью {% data variables.product.prodname_codeql %} напрямую, без сборки (то есть Go, JavaScript, Python и TypeScript).
В этом примере сервер имеет доступ к загрузке пакета {% data variables.product.prodname_codeql %} непосредственно из репозитория github/codeql-action, поэтому нет необходимости использовать флаг --codeql-path.
-
Извлеките репозиторий для анализа.
-
Перейдите в каталог, в который извлечен репозиторий.
-
Инициализируйте {% data variables.code-scanning.codeql_runner %} и создайте базы данных {% data variables.product.prodname_codeql %} для обнаруженных языков.
$ echo "$TOKEN" | /path/to-runner/codeql-runner-linux init --repository octo-org/example-repo --github-url {% data variables.command_line.git_url_example %} --github-auth-stdin > Cleaning temp directory /srv/checkout/example-repo/codeql-runner > ... > Created CodeQL database at /srv/checkout/example-repo/codeql-runner/codeql_databases/javascript.
{% data reusables.code-scanning.codeql-runner-analyze-example %}
Пример со скомпилированным языком
Этот пример аналогичен предыдущему, но на этот раз репозиторий содержит код на C/C++, C# или Java. Чтобы создать базу данных {% data variables.product.prodname_codeql %} для этих языков, интерфейс командной строки должен выполнять мониторинг сборки. В конце процесса инициализации средство выполнения сообщает команду, необходимую для настройки среды перед сборкой кода. Вы должны выполнить эту команду, прежде чем вызывать обычный процесс сборки CI, а затем выполнить команду analyze.
-
Извлеките репозиторий для анализа.
-
Перейдите в каталог, в который извлечен репозиторий.
-
Инициализируйте {% data variables.code-scanning.codeql_runner %} и создайте базы данных {% data variables.product.prodname_codeql %} для обнаруженных языков.
$ echo "$TOKEN" | /path/to-runner/codeql-runner-linux init --repository octo-org/example-repo-2 --github-url {% data variables.command_line.git_url_example %} --github-auth-stdin > Cleaning temp directory /srv/checkout/example-repo-2/codeql-runner > ... > CodeQL environment output to "/srv/checkout/example-repo-2/codeql-runner/codeql-env.json" and "/srv/checkout/example-repo-2/codeql-runner/codeql-env.sh". Please export these variables to future processes so that CodeQL can monitor the build, for example by running ". /srv/checkout/example-repo-2/codeql-runner/codeql-env.sh". -
Получите скрипт, созданный действием
initдля настройки среды для мониторинга сборки. Обратите внимание на начальную точку и пробел в следующем фрагменте кода.$ . /srv/checkout/example-repo-2/codeql-runner/codeql-env.sh -
Выполните сборку кода. В macOS перед командой сборки необходимо указать переменную среды
$CODEQL_RUNNER. Дополнительные сведения см. в разделе Устранение неполадок {% data variables.code-scanning.codeql_runner %} в системе CI.
{% data reusables.code-scanning.codeql-runner-analyze-example %}
{% note %}
Примечание: Если вы используете контейнерную сборку, необходимо запустить {% data variables.code-scanning.codeql_runner %} в контейнере, в котором выполняется задача сборки.
{% endnote %}
Дополнительные материалы
- Настройка {% data variables.code-scanning.codeql_runner %} в системе CI
- Устранение неполадок {% data variables.code-scanning.codeql_runner %} в системе CI
{% else %}
Сведения о {% data variables.code-scanning.codeql_runner %}
{% data variables.code-scanning.codeql_runner %} устарел. {% data variables.product.prodname_codeql_cli %} версии 2.7.6 имеет полное равенство функций.
Сведения о переходе на {% data variables.product.prodname_codeql_cli %} см. в разделе Переход со средства выполнения CodeQL на CLI CodeQL.
Дополнительные материалы
- Объявление нерекомендуемым средства выполнения CodeQL в блоге GitHub
{% endif %}