* New Crowdin translations by Github Action * Reset broken translated files to English * Ran script/i18n/homogenize-frontmatter.js * Ran script/fix-translation-errors.js * Reverted translated files with parsing and rendering errors * fix malformed liquid * add next directory to exclude list * currentversion -> currentVersion * fix liquid errors * fix liquid errors * Reset broken translated files to English * Ran script/i18n/homogenize-frontmatter.js * Revert /ja/github/authenticating-to-github/about-authentication-with-saml-single-sign-on * Reset known broken translation files LAST * Run script/i18n/homogenize-frontmatter.js Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: Rachael Sewell <rachmari@github.com> Co-authored-by: Kevin Heis <heiskr@users.noreply.github.com>
15 KiB
title, shortTitle, intro, product, redirect_from, versions, topics
| title | shortTitle | intro | product | redirect_from | versions | topics | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Running CodeQL runner in your CI system | Running CodeQL runner | Puedes utilizar el {% data variables.product.prodname_codeql_runner %} para llevar a cabo el {% data variables.product.prodname_code_scanning %} de {% data variables.product.prodname_codeql %} en un sistema de integración contínua de terceros. | {% data reusables.gated-features.code-scanning %} |
|
|
|
{% data reusables.code-scanning.beta-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %}
Acerca de {% data variables.product.prodname_codeql_runner %}
The {% data variables.product.prodname_codeql_runner %} is a tool you can use to run {% data variables.product.prodname_code_scanning %} on code that you're processing in a third-party continuous integration (CI) system. {% data reusables.code-scanning.about-code-scanning %} Para obtener más información, consulta la sección "Acerca del {% data variables.product.prodname_code_scanning %}".
{% if currentVersion == "free-pro-team@latest" or currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@next" %} In many cases it is easier to set up {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} using the {% data variables.product.prodname_codeql_cli %} directly in your CI system. The runner is more complex and less forgiving to set up than the CLI, and is recommended only if you need its capability to analyze multiple compiled languages with a single build, or to integrate with complex build processes. For more information, see "About CodeQL code scanning in your CI system". {% endif %}
Alternatively, you can use {% data variables.product.prodname_actions %} to run {% data variables.product.prodname_code_scanning %} within {% data variables.product.product_name %}. Para obtener más información, consulta la sección "Configurar el {% data variables.product.prodname_code_scanning %} en un repositorio".
El {% data variables.product.prodname_codeql_runner %} es una herramienta de línea de comandos que ejecuta un análisis de {% data variables.product.prodname_codeql %} en un control de un repositorio de {% data variables.product.prodname_dotcom %}. Agregas el ejecutor a tu sistema de terceros y luego lo llamas para que analice el código y cargue los resultados a {% data variables.product.product_name %}. Estos resultados se muestran como alertas del {% data variables.product.prodname_code_scanning %} en el repositorio.
{% note %}
Nota: {% if currentVersion == "free-pro-team@latest" %}
- El {% data variables.product.prodname_codeql_runner %} utiliza el CLI de {% data variables.product.prodname_codeql %} para analizar el código y, por lo tanto, tiene las mismas condiciones de licencia. Se puede utilizar gratuitamente en los repositorios que mantiene {% data variables.product.prodname_dotcom_the_website %}, y está disponible para utilizarse en aquellos que pertenecen a los clientes con una licencia de {% data variables.product.prodname_advanced_security %}. Para obtener información, consulta la sección "Términos y condiciones del {% data variables.product.prodname_codeql %} de {% data variables.product.product_name %}" y CLI de {% data variables.product.prodname_codeql %}". {% else %}
- El {% data variables.product.prodname_codeql_runner %} se encuentra disponible para los clientes con una licencia de {% data variables.product.prodname_advanced_security %}. {% endif %} {% if currentVersion ver_lt "enterprise-server@3.1" or currentVersion == "github-ae@latest" %}
- El {% data variables.product.prodname_codeql_runner %} no debe confundirse con el CLI de {% data variables.product.prodname_codeql %}. The {% data variables.product.prodname_codeql %} CLI is a command-line interface that lets you create {% data variables.product.prodname_codeql %} databases for security research and run {% data variables.product.prodname_codeql %} queries. Para obtener más información, consulta "{% data variables.product.prodname_codeql_cli %}." {% endif %} {% endnote %}
Descargar el {% data variables.product.prodname_codeql_runner %}
Puedes descargar el {% data variables.product.prodname_codeql_runner %} desde https://{% if currentVersion == "free-pro-team@latest" %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action/releases. En algunos sistemas operativos, puede que necesites cambiar permisos para el archivo de descarga antes de que lo puedas ejecutar.
En Linux:
chmod +x codeql-runner-linux
En macOS:
chmod +x codeql-runner-macos
sudo xattr -d com.apple.quarantine codeql-runner-macos
En Windows, el archivo codeql-runner-win.exe habitualmente no necesita que se hagan cambios a los permisos.
Agregar el {% data variables.product.prodname_codeql_runner %} a tu sistema de IC
Una vez que descargas el {% data variables.product.prodname_codeql_runner %} y verificas que puede ejecutarse, debes poner el ejecutor disponible para cada servidor de IC que pretendas utilizar para el {% data variables.product.prodname_code_scanning %}. Por ejemplo, podrías configurar cada servidor para que copie el ejecutor desde una ubicación interna y central. Como alternativa, puedes utilizar la API de REST para obtener el ejecutor directamente de {% data variables.product.prodname_dotcom %}, por ejemplo:
wget https://{% if currentVersion == "free-pro-team@latest" %}github.com{% else %}<em>HOSTNAME</em>{% endif %}/github/codeql-action/releases/latest/download/codeql-runner-linux
chmod +x codeql-runner-linux
Además, cada servidor de IC necesitará también:
- Un token de acceso personal o de {% data variables.product.prodname_github_app %} para que utilice el {% data variables.product.prodname_codeql_runner %}. Debes utilizar un token de acceso con el alcance
repo, o una {% data variables.product.prodname_github_app %} con el permiso de escriturasecurity_events, y los permisos de lecturametadataycontents. Para obtener más información, consulta las secciones "Crear {% data variables.product.prodname_github_apps %}" y "Crear un token de acceso personal". - Acceso al paquete de {% data variables.product.prodname_codeql %} asociado con este lanzamiento del {% data variables.product.prodname_codeql_runner %}. Este paquete contiene consultas y bibliotecas necesarias para el análisis de {% data variables.product.prodname_codeql %}, adicionado con el CLI de {% data variables.product.prodname_codeql %}, el cual utiliza internamente el ejecutor. Para obtener más información, consulta la sección "CLI de {% data variables.product.prodname_codeql %}".
Las opciones para proporcionar acceso al paquete de {% data variables.product.prodname_codeql %} son:
- Permite que los servidores de IC accedan a https://{% if currentVersion == "free-pro-team@latest" %}github.com{% else %}HOSTNAME{% endif %}/github/codeql-action para que el {% data variables.product.prodname_codeql_runner %} pueda descargar el paquete automáticamente.
- Descarga/extrae manualmente el paquete, almacénalo con otros recursos centrales y utiliza el
--codeql-pathpara especificar la ubicación del paquete en los llamados para inicializar el {% data variables.product.prodname_codeql_runner %}.
Llamar al {% data variables.product.prodname_codeql_runner %}
Debes llamar al {% data variables.product.prodname_codeql_runner %} desde la ubicación de verificación del repositorio que quieres analizar. Los dos comandos principales son:
initque se requiere para inicializar el ejecutor y para crear una base de datos de {% data variables.product.prodname_codeql %} para que se analice cada lenguaje. Estas bases de datos se llenan y analizan mediante comandos subsecuentes.analyzeque se requiere para llenar las bases de datos de {% data variables.product.prodname_codeql %}, analizarlas y cargar los resultados a {% data variables.product.product_name %}.
Para ambos comandos, debes especificar la URL de {% data variables.product.product_name %}, el PROPIETARIO/NOMBRE del repositorio, y el token de {% data variables.product.prodname_github_apps %} o de acceso personal a utilizar para la autenticación. También necesitas especificar la ubicación del paquete de CodeQL, a menos de que el servidor de IC tenga acceso para descargarlo directamente del repositorio de github/codeql-action.
Puedes configurar la ubicación en la que {% data variables.product.prodname_codeql_runner %} almacenará el paquete de CodeQL para un análisis futuro un un servidor utilizando el marcador --tools-dir , así como en dónde almacena archivos temporales utilizando el marcador --temp-dir.
Para ver la referencia de línea de comandos para el ejecutor, utiliza el marcador -h. Por ejemplo, para listar todos los comandos, ejecuta: codeql-runner-OS -h, o para listar todos los marcadores disponibles para el comando init, ejecuta: codeql-runner-OS init -h (en donde el OS variará de acuerdo con el ejecutable que estés utilizando). Para obtener más información, consulta la sección "Configurar el {% data variables.product.prodname_code_scanning %} en tu sistema de IC".
{% data reusables.code-scanning.upload-sarif-alert-limit %}
Ejemplo básico
Este ejemplo ejecuta un análisis de {% data variables.product.prodname_codeql %} en un servidor de IC con Linux para el repositorio de octo-org/example-repo en {% data variables.command_line.git_url_example %}. El proceso es muy simple, ya que el repositorio contiene únicamente los lenguajes que puede analizar {% data variables.product.prodname_codeql %} directamente, sin que se tenga que compilar (es decir, Go, JavaScript, Python, y TypeScript).
En este ejemplo, el servidor tiene acceso para descargar el paquete de {% data variables.product.prodname_codeql %} directamente desde el repositorio github/codeql-action, así que no hay necesidad de utilizar el marcador --codeql-path.
-
Verifica el repositorio a analizar.
-
Posiciónate en el directorio donde se seleccionó el repositorio.
-
Inicializa el {% data variables.product.prodname_codeql_runner %} y crea bases de datos de {% data variables.product.prodname_codeql %} para los lenguajes detectados.
$ /path/to-runner/codeql-runner-linux init --repository octo-org/example-repo --github-url {% data variables.command_line.git_url_example %} --github-auth TOKEN > 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 %}
Ejemplo de lenguaje compilado
Este ejemplo es similar al anterior, sin embargo, esta vez el repositorio tiene código en C/C++, C#, o Java. Para crear una base de datos de {% data variables.product.prodname_codeql %} para estos lenguajes, el CLI necesita monitorear la compilación. Al final del proceso de inicialización, el ejecutor reportará el comando que necesitas configurar en el ambiente antes de compilar el código. Necesitas ejecutar este comando antes de llamar al proceso normal de compilación de IC y luego ejecutar el comando analyze.
-
Verifica el repositorio a analizar.
-
Posiciónate en el directorio donde se seleccionó el repositorio.
-
Inicializa el {% data variables.product.prodname_codeql_runner %} y crea bases de datos de {% data variables.product.prodname_codeql %} para los lenguajes detectados.
$ /path/to-runner/codeql-runner-linux init --repository octo-org/example-repo-2 --github-url {% data variables.command_line.git_url_example %} --github-auth TOKEN > 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". -
Proporciona el script que generó la acción
initpara configurar el ambiente para monitorear la compilación. Toma en cuenta el primer punto y espacio en el siguiente extracto de código.$ . /srv/checkout/example-repo-2/codeql-runner/codeql-env.sh -
Compila el código. En macOS, necesitarás agregar un prefijo al comando de la compilación con la variable de ambiente
$CODEQL_RUNNER. For more information, see "Troubleshooting {% data variables.product.prodname_codeql_runner %} in your CI system#no-code-found-during-the-build)."
{% data reusables.code-scanning.codeql-runner-analyze-example %}
{% note %}
Nota: Si utilizas una compilación que usa contenedores, necesitarás ejecutar el {% data variables.product.prodname_codeql_runner %} en el contenedor donde toma lugar tu tarea de compilaión.
{% endnote %}