1
0
mirror of synced 2026-01-20 21:02:43 -05:00
Files
docs/translations/es-ES/content/github/finding-security-vulnerabilities-and-errors-in-your-code/running-codeql-code-scanning-in-your-ci-system.md
Vanessa Yuen 5336b9a35c translations batch (#17637)
* New Crowdin translations by Github Action

* fix frontmatter errors in translation

* fix release notes

* revert broken translation to main

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2021-02-02 19:56:26 +00:00

16 KiB

title, shortTitle, intro, product, redirect_from, versions
title shortTitle intro product redirect_from versions
Ejecurar el escaneo de código de CodeQL en tu sistema de IC Ejecución en tu IC 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 %}
/github/finding-security-vulnerabilities-and-errors-in-your-code/running-code-scanning-in-your-ci-system
free-pro-team enterprise-server
* >=2.22

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

Utilizar el {% data variables.product.prodname_code_scanning %} de {% data variables.product.prodname_codeql %} con tu sistema de IC

Si utilizas un sistema de integración contínua o de desliegue/entrega contínua (IC/EC) diferente al de {% data variables.product.prodname_actions %}, puedes utilizar tu sistema actual para ejecutar el análisis de {% data variables.product.prodname_codeql %} de {% data variables.product.prodname_dotcom %} y cargar los resultados a {% data variables.product.prodname_dotcom %}. Para hacerlo, utiliza el {% data variables.product.prodname_codeql_runner %}.

Acerca de {% data variables.product.prodname_codeql_runner %}

{% 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 %}".

Puedes utilizar el {% data variables.product.prodname_codeql_runner %} para ejecutar el {% data variables.product.prodname_code_scanning %} en el código que estás procesando en un sistema de integración continua (IC) de terceros. Como alternativa, puedes utilizar {% data variables.product.prodname_actions %} para ejecutar el {% data variables.product.prodname_code_scanning %} en {% data variables.product.product_location %}. Para obtener más información, consulta la sección "Habilitar el {% data variables.product.prodname_code_scanning %} para 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_location %}. Estos resultados se muestran como alertas del {% data variables.product.prodname_code_scanning %} en el repositorio.

{% note %}

Notas: {% 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 %}
  • El {% data variables.product.prodname_codeql_runner %} no debe confundirse con el CLI de {% data variables.product.prodname_codeql %}. El CLI de {% data variables.product.prodname_codeql %}es una interface de línea de comandos que te permite crear bases de datos de {% data variables.product.prodname_codeql %} para la investigación de seguridad y ejecutar consultas de {% data variables.product.prodname_codeql %}. Para obtener más información, consulta la sección "CLI de {% data variables.product.prodname_codeql %}". {% endnote %}

Descargar el {% data variables.product.prodname_codeql_runner %}

Puedes descargar el {% data variables.product.prodname_codeql_runner %} desde https://github.com/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, podrías utilizar la API de REST para obtener el ejecutor directamente desde GitHub, por ejemplo:

wget https://github.com/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 security_events o una {% data variables.product.prodname_github_app %} con el permiso de escritura de security_events. 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:

  1. Dar acceso a {% data variables.product.prodname_dotcom_the_website %} a los servidores de IC para que el {% data variables.product.prodname_codeql_runner %} pueda descargar el paquete automáticamente.
  2. Descargar/extraer manualmente el paquete, almacenarlo con otros recursos centrales, y utilizar el marcador de --codeql-path para especificar la ubicación del paquete en las llamadas para inicializar el {% data variables.product.prodname_codeql_runner %}. {% if enterpriseServerVersions contains currentVersion %}
  3. Puedes replicar el repositorio de github/codeql-action en {% data variables.product.product_location %}. A menos de que especifiques el marcador de --codeql-path , el ejecutor verificará automáticamente que el paquete esté en esta ubicación y en {% data variables.product.prodname_dotcom_the_website %}.{% endif %}

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:

  1. init que 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.
  2. analyze que se requiere para llenar las bases de datos de {% data variables.product.prodname_codeql %}, analizarlas y cargar los resultados a {% data variables.product.product_location %}.

Para ambos comandos, debes especificar la URL de {% data variables.product.product_location %}, el repositorio OWNER/NAME, y el token de acceso personal o de GitHub Apps que se utilizará para autenticación. También tendrás que especificar la ubicación del paquete de CodeQL a menos de que el servidor de IC tenga acceso para descargarlo directamente desde el repositorio github/codeql-action en {% data variables.product.prodname_dotcom_the_website %}{% if enterpriseServerVersions contains currentVersion %} o el que está replicado en {% data variables.product.product_location %}{% endif %}.

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).

  1. Verifica el repositorio a analizar.

  2. Posiciónate en el directorio donde se seleccionó el repositorio.

  3. 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.
    
  4. Llena las bases de datos de {% data variables.product.prodname_codeql_runner %}, analízalas, y carga los resultados a{% data variables.product.product_name %}.

    $ /path/to-runner/codeql-runner-linux analyze --repository octo-org/example-repo
        --github-url {% data variables.command_line.git_url_example %} --github-auth TOKEN
        --commit 5b6a3078b31dc346e5ce7b86837d6abbe7a18bbd --ref refs/heads/main
    > Finalizing database creation
    > ...
    > POST /repos/octo-org/example-repo/code-scanning/sarifs - 202 in 786ms
    > Successfully uploaded results
    

El servidor tiene acceso para descargar el paquete de {% data variables.product.prodname_codeql %} directamente del repositorio de github/codeql-action en {% data variables.product.prodname_dotcom_the_website %}{% if enterpriseServerVersions contains currentVersion %} o en el que está replicado en {% data variables.product.product_location %}{% endif %}, así que no se necesita utilizar el marcador --codeql-path. Cuando se complete el análisis, el {% data variables.product.prodname_codeql_runner %} cargará los resultados a la vista del {% data variables.product.prodname_code_scanning %}. Para obtener más información, consulta la sección "Administrar las alertas de {% data variables.product.prodname_code_scanning %} para tu repositorio".

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.

  1. Verifica el repositorio a analizar.

  2. Posiciónate en el directorio donde se seleccionó el repositorio.

  3. 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".
    
  4. Ejecuta el script que generó la acción init para configurar el ambiente para monitorear la compilación.

    $ . /srv/checkout/example-repo-2/codeql-runner/codeql-env.sh
    
  5. Compila el código.

  6. Llena las bases de datos de {% data variables.product.prodname_codeql %}, analízalas, y carga los resultados a GitHub.

    $ /path/to-runner/codeql-runner-linux analyze --repository octo-org/example-repo-2
        --github-url {% data variables.command_line.git_url_example %} --github-auth TOKEN
        --commit ae7b655ef30b50fb726ae7b3daa79571a39d194d --ref refs/heads/main
    > Finalizing database creation
    > ...
    > POST /repos/octo-org/example-repo-2/code-scanning/sarifs - 202 in 573ms
    > Successfully uploaded results
    

{% 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 %}

Leer más