# Ajustes y argumentos suplementarios

GitHub Actions Importer tiene varios argumentos y configuraciones complementarios para adaptar el proceso de migración a sus necesidades.

En este artículo se proporciona información general sobre cómo configurar los argumentos y opciones complementarios de GitHub Actions Importer, como parámetros opcionales, argumentos de ruta y configuración de red.

## Parámetros opcionales

GitHub Actions Importer tiene varios parámetros opcionales que puede usar para personalizar el proceso de migración.

### Limitación de las acciones permitidas

Las opciones siguientes se pueden usar para limitar qué acciones se permiten en los flujos de trabajo convertidos. Cuando se usa de forma combinada, estas opciones expanden la lista de acciones permitidas. Si no se proporciona ninguna de estas opciones, se permiten todas las acciones.

* `--allowed-actions` especifica una lista de acciones que se van a permitir en los flujos de trabajo convertidos. Se admite caracteres comodín. No se permitirá ninguna otra acción que no sea la proporcionada.

  Por ejemplo:

  ```shell
  --allowed-actions actions/checkout@v6 actions/upload-artifact@* my-org/*
  ```

  Puedes proporcionar una lista vacía para no permitir todas las acciones. Por ejemplo: `--allowed-actions=`.

* `--allow-verified-actions` especifica que se permiten todas las acciones de creadores comprobados.

* `--allow-github-created-actions` especifica que se permiten acciones publicadas desde las organizaciones `github` o `actions`.

  Por ejemplo, estas acciones incluyen `github/super-linter` y `actions/checkout`.

  Esta opción es equivalente a `--allowed-actions actions/* github/*`.

### Uso de un archivo de credenciales para la autenticación

El `--credentials-file` parámetro especifica la ruta de acceso a un archivo que contiene credenciales para distintos servidores a los que GitHub Actions Importer se puede autenticar. Esto resulta útil cuando los scripts de compilación (como `.travis.yml` o `jenkinsfile`) se almacenan en varias GitHub Enterprise Server instancias.

Un archivo de credenciales debe ser un archivo YAML que contenga una lista de combinaciones de servidor y token de acceso. 
GitHub Actions Importer usa las credenciales de la dirección URL que coincide más estrechamente con la solicitud de red que se está realizando.

Por ejemplo:

```yaml
- url: https://github.com
  access_token: ghp_mygeneraltoken
- url: https://github.com/specific_org/
  access_token: ghp_myorgspecifictoken
- url: https://jenkins.org
  access_token: abc123
  username: marty_mcfly
```

Para el archivo de credenciales anterior, GitHub Actions Importer usa el token `ghp_mygeneraltoken` de acceso para autenticar todas las solicitudes de red en `https://github.com`, a _menos que_ la solicitud de red sea para un repositorio de la `specific_org` organización. En ese caso, en su lugar se usa el token `ghp_myorgspecifictoken` para autenticarse.

#### Proveedores de código fuente alternativos

GitHub Actions Importer puede obtener automáticamente el código fuente de repositorios que no sean GitHub. Un archivo de credenciales puede especificar `provider`, la dirección URL del proveedor y las credenciales necesarias para recuperar el código fuente.

Por ejemplo:

```yaml
- url: https://gitlab.com
  access_token: super_secret_token
  provider: gitlab
```

En el ejemplo anterior, GitHub Actions Importer usa el token `super_secret_token` para recuperar cualquier código fuente hospedado en `https://gitlab.com`.

Los valores admitidos para `provider` son:

* `github` (valor predeterminado)
* `gitlab`
* `bitbucket_server`
* `azure_devops`

### Control de características opcionales

Puede usar la `--features` opción para limitar las características usadas en los flujos de trabajo que GitHub Actions Importer crea. Esto resulta útil para excluir la sintaxis más reciente GitHub Actions de los flujos de trabajo al migrar a una instancia anterior GitHub Enterprise Server . Al usar la `--features` opción , debe especificar la versión de GitHub Enterprise Server a la que va a migrar.

Por ejemplo:

```shell
gh actions-importer dry-run ... --features ghes-3.3
```

Los valores admitidos para `--features` son los siguientes:

* `all` (valor predeterminado)
* `ghes-latest`
* `ghes-<number>`, donde `<number>` es la versión de GitHub Enterprise Server, `3.0` o posterior. Por ejemplo: `ghes-3.3`.

Puede ver la lista de indicadores de características disponibles para GitHub Actions Importer ejecutando el comando `list-features`. Por ejemplo:

```shell copy
gh actions-importer list-features
```

Debería ver una salida similar a la siguiente.

<!-- markdownlint-disable search-replace -->

```shell
Available feature flags:

actions/cache (disabled):
        Control usage of actions/cache inside of workflows. Outputs a comment if not enabled.
        GitHub Enterprise Server >= ghes-3.5 required.

composite-actions (enabled):
        Minimizes resulting workflow complexity through the use of composite actions. See https://docs.github.com/en/actions/creating-actions/creating-a-composite-action for more information.
        GitHub Enterprise Server >= ghes-3.4 required.

reusable-workflows (disabled):
        Avoid duplication by re-using existing workflows. See https://docs.github.com/en/actions/using-workflows/reusing-workflows for more information.
        GitHub Enterprise Server >= ghes-3.4 required.

workflow-concurrency-option-allowed (enabled):
        Allows the use of the `concurrency` option in workflows. See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#concurrency for more information.
        GitHub Enterprise Server >= ghes-3.2 required.

Enable features by passing --enable-features feature-1 feature-2
Disable features by passing --disable-features feature-1 feature-2
```

<!-- markdownlint-enable search-replace -->

Para alternar las banderas de funciones, puedes utilizar cualquiera de los siguientes métodos:
* Usa las opciones `--enable-features` y `--disable-features` al ejecutar un comando `gh actions-importer`.
* Usa una variable de entorno para cada marca de característica.

Puedes usar las opciones `--enable-features` y `--disable-features` para seleccionar características específicas para habilitar o deshabilitar durante el comando.
Por ejemplo, el siguiente comando deshabilita el uso de `actions/cache` y `composite-actions`:

```shell
gh actions-importer dry-run ... --disable-features=composite-actions actions/cache
```

Puedes usar el comando `configure --features` para configurar interactivamente las marcas de características y escribirlas automáticamente en tu entorno:

```shell
$ gh actions-importer configure --features

✔ Which features would you like to configure?: actions/cache, reusable-workflows
✔ actions/cache (disabled): Enable
? reusable-workflows (disabled):
› Enable
  Disable
```

### Deshabilitación del almacenamiento en caché de respuestas de red

De forma predeterminada, GitHub Actions Importer almacena en caché las respuestas de las solicitudes de red para reducir la carga de red y reducir el tiempo de ejecución. Puede usar la opción `--no-http-cache` para deshabilitar la caché de red. Por ejemplo:

```shell
gh actions-importer forecast ... --no-http-cache
```

## Argumentos de ruta

Al ejecutar GitHub Actions Importer, los argumentos de ruta de acceso son relativos al disco del contenedor, por lo que no se admiten rutas de acceso absolutas relativas a la máquina host del contenedor. Cuando GitHub Actions Importer se ejecuta, el directorio del `/data` contenedor se monta en el directorio donde GitHub Actions Importer se ejecuta.

Por ejemplo, el comando siguiente, cuando se usa en el `/Users/mona` directorio , genera el GitHub Actions Importer resumen de auditoría en el `/Users/mona/out` directorio:

```shell
gh actions-importer audit --output-dir /data/out
```

## Uso de un proxy

Para acceder a los servidores configurados con un proxy HTTP, debe establecer las siguientes variables de entorno con la dirección URL del proxy:

* `OCTOKIT_PROXY`: para cualquier GitHub servidor.
* `HTTP_PROXY` (o `HTTPS_PROXY`): para cualquier otro servidor.

Por ejemplo:

```shell
export OCTOKIT_PROXY=https://proxy.example.com:8443
export HTTPS_PROXY=$OCTOKIT_PROXY
```

Si el proxy necesita autenticación, se debe incluir un nombre de usuario y una contraseña en la dirección URL del proxy. Por ejemplo: `https://username:password@proxy.url:port`.

## Deshabilitación de la comprobación del certificado SSL

De forma predeterminada, GitHub Actions Importer comprueba los certificados SSL al realizar solicitudes de red. Puedes deshabilitar la comprobación del certificado SSL con la opción `--no-ssl-verify`. Por ejemplo:

```shell
gh actions-importer audit --output-dir ./output --no-ssl-verify
```

## Aviso legal

Algunas partes se han adaptado a partir de https://github.com/github/gh-actions-importer/ con licencia MIT:

```text
MIT License

Copyright (c) 2022 GitHub

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
```