1
0
mirror of synced 2026-01-29 12:00:58 -05:00
Files
docs/translations/es-ES/content/code-security/secure-coding/configuring-codeql-runner-in-your-ci-system.md
James M. Greene 885da5b3d3 Local run of Translations patching process over batch (#19360)
* 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>
2021-05-18 15:07:05 +00:00

24 KiB

title, shortTitle, intro, product, miniTocMaxHeadingLevel, redirect_from, versions, topics
title shortTitle intro product miniTocMaxHeadingLevel redirect_from versions topics
Configuring CodeQL runner in your CI system Configuring CodeQL runner Puedes configurar la forma en la que {% data variables.product.prodname_codeql_runner %} escanea el código en tu proyecto y en la que carga los resultados a {% data variables.product.prodname_dotcom %}. {% data reusables.gated-features.code-scanning %} 4
/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning-in-your-ci-system
/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-codeql-code-scanning-in-your-ci-system
/code-security/secure-coding/configuring-codeql-code-scanning-in-your-ci-system
free-pro-team enterprise-server github-ae
* >=3.0 *
Security

{% data reusables.code-scanning.beta-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %}

Acerca de configurar el {% data variables.product.prodname_code_scanning %} de {% data variables.product.prodname_codeql %} en tu sistema de IC

Para integrar el {% data variables.product.prodname_code_scanning %} en tu sistema de IC, puedes utilizar el {% data variables.product.prodname_codeql_runner %}. Para obtener más información, consulta la sección "Ejecutar el {% data variables.product.prodname_codeql_runner %} en tu sistema de IC".

En general, se invoca el {% data variables.product.prodname_codeql_runner %} de la siguiente manera.

$ /path/to-runner/codeql-runner-OS <COMMAND> <FLAGS>

/path/to-runner/ depende de si descargaste el {% data variables.product.prodname_codeql_runner %} en tu sistema de IC. codeql-runner-OS depende del sistema operativo que utilices. Hay tres versiones del {% data variables.product.prodname_codeql_runner %}, codeql-runner-linux, codeql-runner-macos, y codeql-runner-win, para sistemas Linux, macOS y Windows respectivamente.

Para personalizar la forma en la que el {% data variables.product.prodname_codeql_runner %} escanea tu código, puedes utilizar marcadores, tales como --languages y --queries,o puedes especificar configuraciones personalizadas en un archivo de configuración por separado.

Escanear las solicitudes de extracción

El escanear el código cada que se crea una solicitud de cambios previene que los desarrolladores introduzcan vulnerabilidades y errores nuevos a este.

Para escanear una solicitud de cambios, ejecuta el comando analyze y utiliza el marcador --ref para especificar la solicitud de cambios. La referencia es refs/pull/<PR-number>/head o refs/pull/<PR-number>/merge, dependiendo de si seleccionaste la confirmación HEAD de la rama de la solicitud de cambios o una confirmación de fusión con la rama base.

$ /path/to-runner/codeql-runner-linux analyze --ref refs/pull/42/merge

{% note %}

Nota: Si analizas código con una herramienta de terceros y quieres que los resultados aparezcan como verificaciones de solicitudes de cambios, debes ejecutar el comando upload y utilizar el marcador --ref para especificar la solicitud de cambios en vez de la rama. La referencia es refs/pull/<PR-number>/head o refs/pull/<PR-number>/merge.

{% endnote %}

Invalidar la detección automática de lenguaje

El {% data variables.product.prodname_codeql_runner %} detecta automáticamente y escanea el código que se ha escrito en los lenguajes compatibles.

{% data reusables.code-scanning.codeql-languages-bullets %}

{% data reusables.code-scanning.specify-language-to-analyze %}

Para anular la detección automática de lenguajes, ejecuta el comando init con el marcador --languages, seguido de una lista separada por comas de las palabras clave de los lenguajes. The keywords for the supported languages are {% data reusables.code-scanning.codeql-languages-keywords %}.

$ /path/to-runner/codeql-runner-linux init --languages cpp,java

Ejecutar consultas adicionales

{% data reusables.code-scanning.run-additional-queries %}

{% data reusables.code-scanning.codeql-query-suites %}

Para agregar una o más consultas, pasa una lista separada por comas de las rutas al marcador --queries del comando init. También puedes especificar consultas adicionales en un archivo de configuración.

Si también estás usando un archivo de configuración para los ajustes personalizados y también estás especificando consultas adicionales con el marcador de --queries, el {% data variables.product.prodname_codeql_runner %} utilizará consultas adicionales que se especifican con el marcador --queries en vez de con cualquier otro en el archivo de configuración. Si quieres ejecutar el conjunto combinado de consultas adicionales que se especifican con el marcador y en el archivo de configuración, usa un prefijo en el valor que se pasa a --queries con el símbolo +. Para encontrar ejemplos de archivos de configuración, consulta la sección "Ejemplos de archivos de configuración".

En el siguiente ejemplo, el símbolo + garantiza que el {% data variables.product.prodname_codeql_runner %} utilizará consultas adicionales junto con cualquier otra consulta que se especifique en el archivo de configuración referenciado.

$ /path/to-runner/codeql-runner-linux init --config-file .github/codeql/codeql-config.yml 
    --queries +security-and-quality,octo-org/python-qlpack/show_ifs.ql@main

Utilizar una herramienta de escaneo de código de terceros

En vez de pasar información adicional a los comandos de {% data variables.product.prodname_codeql_runner %}, puedes especificar ajustes personalizados en un archivo de configuración por separado.

El archivo de configuración es un archivo de YAML. Utiliza una sintaxis similar a aquella del flujo de trabajo para {% data variables.product.prodname_actions %}, de acuerdo como se ilustra en los siguientes ejemplos. Para obtener más información, consulta la sección "Sintaxis de flujo de trabajo para {% data variables.product.prodname_actions %}".

Utiliza el marcador --config-file del comando init para especificar el archivo de configuración. El valor de --config-file es la ruta al archivo de configuración que quieres utilizar. Este ejemplo carga el archivo de configuración .github/codeql/codeql-config.yml.

$ /path/to-runner/codeql-runner-linux init --config-file .github/codeql/codeql-config.yml

{% data reusables.code-scanning.custom-configuration-file %}

Ejemplos de archivos de configuración

{% data reusables.code-scanning.example-configuration-files %}

Configurar {% data variables.product.prodname_code_scanning %} para los lenguajes compilados

Para los lenguajes C/C++, C#, y Java, {% data variables.product.prodname_codeql %} compila el código antes de analizarlo. {% data reusables.code-scanning.analyze-go %}

Para varios sistemas de compilación comunes, el {% data variables.product.prodname_codeql_runner %} puede compilar el código automáticamente. Para intentar compilar el código automáticamente, ejecuta autobuild entre los pasos de init y analyze. Nota que, si tu repositorio necesita una versión específica de una herramienta de compilación, puede que necesites instalar dicha herramienta manualmente primero.

El proceso de autobuild solo intenta siempre compilar un solo lenguaje compilado para un repositorio. El lenguaje que se selecciona automáticamente para su análisis es aquél presente en más archivos. Si quieres elegir un lenguaje explícitamente, utiliza el marcador --language del comando autobuild.

$ /path/to-runner/codeql-runner-linux autobuild --language csharp

Si el comando autobuild no puede compilar tu código, tú mismo puedes ejecutar los pasos de compilación entre los pasos de init y analyze. Para obtener más información, consulta la sección "Ejecutar el {% data variables.product.prodname_codeql_runner %} en tu sistema de IC".

Puedes escribir un archivo de configuración para {% data variables.product.prodname_code_scanning %}.

Predeterminadamente, el {% data variables.product.prodname_codeql_runner %} carga los resultados del {% data variables.product.prodname_code_scanning %} cuando ejecutas el comando analyze. También puedes cargar archivos de SARIF por separado si utilizas el comando upload.

Una vez que hayas cargado los datos, {% data variables.product.prodname_dotcom %} mostrará las alertas en tu repositorio.

Referencia de comandos de {% data variables.product.prodname_codeql_runner %}

El {% data variables.product.prodname_codeql_runner %} es compatible con los siguientes comandos y marcadores.

init

Inicializa el {% data variables.product.prodname_codeql_runner %} y crea una base de datos de {% data variables.product.prodname_codeql %} para analizar cada lenguaje.

Marcador Requerido Valor de entrada
--repositorio Nombre del repositorio a inicializar.
--github-url URL de la instancia de {% data variables.product.prodname_dotcom %} donde se hospeda tu repositorio.
--github-auth Un token de {% data variables.product.prodname_github_apps %} o un token de acceso personal.
--languages Lista separada por comas de los lenguajes a analizar. Predeterminadamente, el {% data variables.product.prodname_codeql_runner %} detecta y analiza todos los lenguajes compatibles en el repositorio.
--queries Lista separada por comas de las consultas adicionales a ejecutar, adicionalmente a la suite predeterminada de consultas de seguridad.
--config-file Ruta al archivo de configuración personalizado.
--codeql-path Ruta a una copia del CLI ejecutable de {% data variables.product.prodname_codeql %} a utilizar. Predeterminadamente, el {% data variables.product.prodname_codeql_runner %} descarga una copia.
--temp-dir Directorio donde se almacenan los archivos temporales. El predeterminado es ./codeql-runner.
--tools-dir Directorio donde las herramientas de {% data variables.product.prodname_codeql %} y otros archivos se almacenan entre ejecuciones. El predeterminado es un subdirectorio del directorio principal.
--checkout-path La ruta a la confirmación de salida de tu repositorio. El predeterminado es el directorio de trabajo.
--debug Ninguno. Imprime una salida más verbosa.
-h, --help Ninguno. Muestra la ayuda para el comando.

autobuild

Intenta compilar el código para los lenguajes compilados de C/C++, C#, y Java. Para estos lenguajes, {% data variables.product.prodname_codeql %} compila el código antes de analizarlo. Ejecuta autobuild entre los pasos de init y analyze.

Marcador Requerido Valor de entrada
--language El lenguaje a compilar. Predeterminadamente, el {% data variables.product.prodname_codeql_runner %} compila el lenguaje con más archivos.
--temp-dir Directorio donde se almacenan los archivos temporales. El predeterminado es ./codeql-runner.
--debug Ninguno. Imprime una salida más verbosa.
-h, --help Ninguno. Muestra la ayuda para el comando.

analyze

Analiza el código en las bases de datos de {% data variables.product.prodname_codeql %} y carga los resultados a {% data variables.product.product_name %}.

Marcador Requerido Valor de entrada
--repositorio Nombre del repositorio que se analizará.
--commit SHA de la confirmación que se analizará. En Git y en Azure DevOps, este corresponde al valor de git rev-parse HEAD. En Jenkins, este corresponde a $GIT_COMMIT.
--ref Nombre de la referencia a analizar, por ejemplo refs/heads/main o refs/pull/42/merge. Tanto en Git como en Jenkins, esto corresponde al valor de git symbolic-ref HEAD. En Azure DevOps, esto corresponde a $(Build.SourceBranch).
--github-url URL de la instancia de {% data variables.product.prodname_dotcom %} donde se hospeda tu repositorio.
--github-auth Un token de {% data variables.product.prodname_github_apps %} o un token de acceso personal.
--checkout-path La ruta a la confirmación de salida de tu repositorio. El predeterminado es el directorio de trabajo.
--no-upload Ninguno. Impide que el {% data variables.product.prodname_codeql_runner %} cargue los resultados a {% data variables.product.product_name %}.
--output-dir Directorio en donde se almacenan los archivos SARIF de salida. El predeterminado está en el directorio de archivos temporales.
--ram Cantidad de memoria a utilizar cuando ejecutes consultas. El valor predeterminado es utilizar toda la memoria disponible.
--no-add-snippets Ninguno. Excluye los fragmentos de código de la salida de SARIF.
--category Category to include in the SARIF results file for this analysis. A category can be used to distinguish multiple analyses for the same tool and commit, but performed on different languages or different parts of the code. This value will appear in the <run>.automationDetails.id property in SARIF v2.1.0.
{% endif %}
--threads Cantidad de hilos a utilizar cuando se ejecutan las consultas. El valor predeterminado es utilizar todos los núcleos disponibles.
--temp-dir Directorio donde se almacenan los archivos temporales. El predeterminado es ./codeql-runner.
--debug Ninguno. Imprime una salida más verbosa.
-h, --help Ninguno. Muestra la ayuda para el comando.

cargar

Carga los archivos SARIF a {% data variables.product.product_name %}.

{% note %}

Nota: Si analizas el código con el ejecutor de CodeQL, el comando analyze carga los resultados de SARIF predeterminadamente. Puedes utilizar el comando upload para cargar los resultados SARIF que generaron otras herramientas.

{% endnote %}

Marcador Requerido Valor de entrada
--sarif-file El archivo SARIF a cargar, o un directorio que contiene varios archivos SARIF.
--repositorio Nombre del repositorio que se analizó.
--commit SHA de la confirmación que se analizó. En Git y en Azure DevOps, este corresponde al valor de git rev-parse HEAD. En Jenkins, este corresponde a $GIT_COMMIT.
--ref Nombre de la referencia que se analizó, por ejemplo, refs/heads/main o refs/pull/42/merge. Tanto en Git como en Jenkins, esto corresponde al valor de git symbolic-ref HEAD. En Azure DevOps, esto corresponde a $(Build.SourceBranch).
--github-url URL de la instancia de {% data variables.product.prodname_dotcom %} donde se hospeda tu repositorio.
--github-auth Un token de {% data variables.product.prodname_github_apps %} o un token de acceso personal.
--checkout-path La ruta a la confirmación de salida de tu repositorio. El predeterminado es el directorio de trabajo.
--debug Ninguno. Imprime una salida más verbosa.
-h, --help Ninguno. Muestra la ayuda para el comando.