|
Opción
|
Requerido
|
Uso
|
<database>
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el nombre y ubicación de un directorio a crear para la base de datos de {% data variables.product.prodname_codeql %}. El comando fallará si intentas sobrescribir un directorio existente.
|
|
`--language`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el identificador del lenguaje para el cual se creará la base de datos, debe ser uno de entre: {% data reusables.code-scanning.codeql-languages-keywords %} (utiliza javascript para analizar el código en TypeScript).
|
|
`--source-root`
|
|
Opcional. Utilízalo si ejecutas el CLI fuera de la raíz de verificación del repositorio. Predeterminadamente, el comando de database create asume que el directorio actual es el directorio raíz de los archivos fuente, utiliza esta opción para especificar una ubicación diferente.
|
|
`--command`
|
|
Opcional para los lenguajes compilados. Utilízalo si quieres anular la detección y creación automática del sistema de compilación. Especifica el comando de creación o script que invoca el compilador. Los comandos se ejecutan desde la carpeta actual o, cuando se define, desde `--source-root`. No utilices esta opción para analizar Python ni JavaScript/TypeScript.
|
Para obtener más información, consulta la sección [Crear bases de datos de {% data variables.product.prodname_codeql %}](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/) en la documentación del {% data variables.product.prodname_codeql_cli %}.
##### Ejemplo básico
```
$ codeql database create /codeql-dbs/example-repo --language=javascript \
--source-root /checkouts/example-repo
> Initializing database at /codeql-dbs/example-repo.
> Running command [/codeql-home/codeql/javascript/tools/autobuild.cmd]
in /checkouts/example-repo.
> [build-stdout] Single-threaded extraction.
> [build-stdout] Extracting
...
> Finalizing database at /codeql-dbs/example-repo.
> Successfully created database at /codeql-dbs/example-repo.
```
Para obtener más información y ejemplos, consulta la sección [Crear bases de datos de {% data variables.product.prodname_codeql %}](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases) en la documentación del {% data variables.product.prodname_codeql_cli %}.
#### Analizar una base de datos de {% data variables.product.prodname_codeql %}
1. Crea una base de datos de {% data variables.product.prodname_codeql %} (se explica anteriormente).
2. Ejecuta `codeql database analyze` en la base de datos y especifica qué consultas quieres utilizar.
```shell
codeql database analyze <database> --format=<format> \
--output=<output> <queries>
```
|
Opción
|
Requerido
|
Uso
|
<database>
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica la ruta del directorio que contiene la base de datos de {% data variables.product.prodname_codeql %} a analizar.
|
<queries>
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica las consultas a ejecutar. Para ejecturar las consultas estándar que se utilizan para el {% data variables.product.prodname_code_scanning %}, utiliza: <language>-code-scanning.qls donde <language> es el código corto para el lenguaje de la base de datos. Para ver el resto de las suites de consulta que se incluyen en el paquete de {% data variables.product.prodname_codeql_cli %}, revisa /extraction-root/codeql/qlpacks/codeql-<language>/codeql-suites. Para obtener más información sobre cómo crear tu suite de consultas, dirígete a la sección "Crear suites de consultas de CodeQL en la documentación para el {% data variables.product.prodname_codeql_cli %}.
|
|
`--format`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el formato del archivo de resultados que generó el comando. Para cargar a {% data variables.product.company_short %}, este debe ser: {% if currentVersion == "free-pro-team@latest" %}sarif-latest{% else %}sarifv2.1.0{% endif %}. Para obtener más información, consulta la sección "Soporte de SARIF para {% data variables.product.prodname_code_scanning %}".
|
|
`--output`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica dónde guardar el archivo de resultados SARIF.{% if currentVersion == "free-pro-team@latest" %}
|
--sarif-category
|
|
Opcional. Especifica una categoría para incluir en el archivo de resultados SARIF para este análisis. La categoría puede utilizarse pra distinguir análisis múltiples de la misma herramienta y confirmación, pero que se llevan a cabo en lenguajes diferentes o en partes diferentes del código. Este valor aparecerá en pa propiedad <run>.automationId de SARIF v1, la propiedad de <run>.automationLogicalId de SARIF v2, y la propiedad <run>.automationDetails.id de SARIF v2.1.0. |{% endif %}
|
|
`--threads`
|
|
Opcional. Utilízala si quieres usar más de un subproceso para ejecutar consultas. El valor predeterminado es 1. Puedes especificar más subprcesos para agilizar la ejecución de la consulta. Para configurar la cantidad de subprocesos en la cantidad de procesadores lógicos, especifica 0.
|
Para obtener más información, consulta la sección [Analizar las bases de datos con el {% data variables.product.prodname_codeql_cli %}](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/) en la documentación del {% data variables.product.prodname_codeql_cli %}.
##### Ejemplo básico
```
$ codeql database analyze /codeql-dbs/example-repo \
javascript-code-scanning.qls --format={% if currentVersion == "free-pro-team@latest" %}sarif-latest{% else %}sarifv2.1.0{% endif %} \
--output=/temp/example-repo-js.sarif
> Running queries.
> Compiling query plan for /codeql-home/codeql/qlpacks/
codeql-javascript/AngularJS/DisablingSce.ql.
...
> Shutting down query evaluator.
> Interpreting results.
```
#### Cargar resultados en {% data variables.product.product_name %}
{% data reusables.code-scanning.upload-sarif-alert-limit %}
Antes de que puedas cargar resultados a {% data variables.product.product_name %}, debes determinar la mejor forma de pasar la {% data variables.product.prodname_github_app %} o el token de acceso personal que creaste anteriormente al {% data variables.product.prodname_codeql_cli %} (consulta la sección anterior de [Generar un token para autenticarse con {% data variables.product.product_name %}](#generating-a-token-for-authentication-with-github)). Te recomendamos que revises las instrucciones de tu sistema de IC sobre el uso seguro del almacenamiento de secretos. El {% data variables.product.prodname_codeql_cli %} es compatible con:
- Pasar el token al CLI a través de una entrada estándar utilizando la opción `--github-auth-stdin` (recomendado).
- Guardar el secreto en la variable de ambiente `GITHUB_TOKEN` y ejecutando el CLI sin incluir la opción `--github-auth-stdin`.
Cuando decidas cuál será el método más seguro y confiable para tu servidor de IC, ejecuta `codeql github upload-results` en el archivo de resultados SARIF e incluye `--github-auth-stdin`, a menos de que el token esté disponible en la variable de ambiente `GITHUB_TOKEN`.
```shell
echo "$UPLOAD_TOKEN" | codeql github upload-results --repository=<repository-name> \
--ref=<ref> --commit=<commit> --sarif=<file> \
{% if currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@next" %}--github-url=<URL> {% endif %}--github-auth-stdin
```
|
Opción
|
Requerido
|
Uso
|
|
`--repository`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el OWNER/NAME del repositorio al cual quieres cargar los datos. El propietario debe ser una organización dentro de una empresa que tenga una licencia de {% data variables.product.prodname_GH_advanced_security %} y la {% data variables.product.prodname_GH_advanced_security %} debe estar habilitada para el repositorio{% if currentVersion == "free-pro-team@latest" %}, a menos de que este sea público{% endif %}. Para obtener más información, consulta la sección "Administrar la configuración de seguridad y análisis para tu repositorio".
|
|
`--ref`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el nombre de la ref que verificaste y analizaste para que los resultados puedan empatarse con el código correcto. Para una rama, utiliza: refs/heads/BRANCH-NAME, para la confirmación de encabezado de una solicitud de cambios utiliza refs/pulls/NUMBER/head o, para la confirmación de fusión que genera {% data variables.product.product_name %} para una solicitud de cambios, utiliza refs/pulls/NUMBER/merge.
|
|
`--commit`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el SHA completo de la confirmación que analizaste.
|
|
`--sarif`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica el archivo SARIF a cargar.{% if currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@next" %}
|
|
`--github-url`
|
{% octicon "check-circle-fill" aria-label="Required" %}
|
Especifica la URL de {% data variables.product.product_name %}.{% endif %}
|
|
`--github-auth-stdin`
|
|
Opcional. Utilízala para pasar al CLI la {% data variables.product.prodname_github_app %} o token de acceso personal que creaste para autenticarse con la API de REST de {% data variables.product.company_short %} a través de una entrada estándar. Esto no se necesita si el comando tiene acceso a una variable de ambiente de GITHUB_TOKEN que se configuró con este token.
|
Para obtener más información, consulta la sección [resultados de carga de github](https://codeql.github.com/docs/codeql-cli/manual/github-upload-results/) en la documentación del {% data variables.product.prodname_codeql_cli %}.
##### Ejemplo básico
```
$ echo $UPLOAD_TOKEN | codeql github upload-results --repository=my-org/example-repo \
--ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
--sarif=/temp/example-repo-js.sarif {% if currentVersion ver_gt "enterprise-server@3.0" or currentVersion == "github-ae@next" %}--github-url={% data variables.command_line.git_url_example %} \
{% endif %}--github-auth-stdin
```
No hay salida para este comando a menos de que la carga no sea exitosa. El símbolo de sistema regresa cuando la carga se completa e inicia el procesamiento de datos. En bases de código más pequeñas, debes poder explorar las alertas del {% data variables.product.prodname_code_scanning %} en {% data variables.product.product_name %} poco tiempo después. Las alertas se muestran directamente en la solicitud de cambios o en la pestaña de **Seguridad** para las ramas que dependen del código que se verificó. Para obtener más información, consulta las secciones "[Clasificar las alertas del {% data variables.product.prodname_code_scanning %} en las solicitudes de cambio](/code-security/secure-coding/triaging-code-scanning-alerts-in-pull-requests)" y "[Administrar las alertas del {% data variables.product.prodname_code_scanning %} de tu repositorio](/code-security/secure-coding/managing-code-scanning-alerts-for-your-repository)".
### Leer más
- [Crear bases de datos de CodeQL](https://codeql.github.com/docs/codeql-cli/creating-codeql-databases/)
- [Analizar bases de datos con el CL de CodeQL](https://codeql.github.com/docs/codeql-cli/analyzing-databases-with-the-codeql-cli/)