

Amazon ya no CodeCatalyst está abierto a nuevos clientes. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cómo migrar desde CodeCatalyst](migration.md).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial: código de Lint mediante una acción GitHub
<a name="integrations-github-action-tutorial"></a>

En este tutorial, añadirás la [ GitHub acción Super-Linter](https://github.com/marketplace/actions/super-linter) a un flujo de trabajo de Amazon CodeCatalyst . La acción Super-Linter inspecciona el código, encuentra áreas en las que el código contiene errores, problemas de formato y construcciones sospechosas y, a continuación, envía los resultados a la consola). CodeCatalyst Después de añadir el linter al flujo de trabajo, ejecute el flujo de trabajo para hacer una revisión lint de una aplicación de Node.js de muestra (`app.js`). A continuación, corrija los problemas detectados y vuelva a ejecutar el flujo de trabajo para comprobar si las soluciones han funcionado.

**sugerencia**  
Valore la posibilidad de usar Super-Linter para hacer una revisión lint en archivos YAML, como [plantillas de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).

**Topics**
+ [Requisitos previos](#integrations-github-action-tutorial-prereqs)
+ [Paso 1: crear un repositorio de código fuente](#integrations-github-action-tutorial-create-source-repo)
+ [Paso 2: añadir un archivo app.js](#integrations-github-action-tutorial-add-appjs)
+ [Paso 3: crear un flujo de trabajo que ejecute la acción Super-Linter](#integrations-github-action-tutorial-create-workflow)
+ [Paso 4: solucionar los problemas encontrados por Super-Linter](#integrations-github-action-tutorial-fix-probs)
+ [Limpieza](#integrations-github-action-tutorial-cleanup)

## Requisitos previos
<a name="integrations-github-action-tutorial-prereqs"></a>

Antes de comenzar, necesitará lo siguiente:
+ Un CodeCatalyst **espacio con un conectado.** Cuenta de AWS Para obtener más información, consulte [Creación de un espacio](spaces-create.md).
+ Se llama un proyecto vacío en tu CodeCatalyst espacio`codecatalyst-linter-project`. Use la opción **Empezar desde cero** para crear este proyecto.

  ```
  ```

  Para obtener más información, consulte [Crear un proyecto vacío en Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Paso 1: crear un repositorio de código fuente
<a name="integrations-github-action-tutorial-create-source-repo"></a>

En este paso, crearás un repositorio de origen en CodeCatalyst. Utilizará este repositorio para almacenar el archivo fuente de la aplicación de muestra (`app.js`) para este tutorial.

Para obtener más información sobre los repositorios de código fuente, consulte [Creación de un repositorio de código fuente](source-repositories-create.md).

**Creación de un repositorio de código fuente**

1. Abra la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vaya a su proyecto, `codecatalyst-linter-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**. 

1. Elija **Agregar repositorio** y, a continuación, elija **Crear repositorio**.

1. En **Nombre del repositorio**, escriba:

   ```
   codecatalyst-linter-source-repository
   ```

1. Seleccione **Crear**.

## Paso 2: añadir un archivo app.js
<a name="integrations-github-action-tutorial-add-appjs"></a>

En este paso, añadirá un archivo `app.js` al repositorio de código fuente. El `app.js` contiene un código de función con algunos errores que el linter encontrará.

**Adición del archivo app.js**

1. En la CodeCatalyst consola, elige tu proyecto,`codecatalyst-linter-project`.

1. En el panel de navegación, elija **Código** y, a continuación, elija **Repositorios de origen**.

1. En la lista de repositorios de código fuente, elija su repositorio, `codecatalyst-linter-source-repository`.

1. En **Archivos**, elija **Crear archivo**.

1. En el cuadro de texto, introduzca el siguiente código:

   ```
   // const axios = require('axios')
   // const url = 'http://checkip.amazonaws.com/';
   let response;
   /**
    *
    * Event doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html#api-gateway-simple-proxy-for-lambda-input-format
    * @param {Object} event - API Gateway Lambda Proxy Input Format
    *
    * Context doc: https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html 
    * @param {Object} context
    *
    * Return doc: https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-lambda-proxy-integrations.html
    * @returns {Object} object - API Gateway Lambda Proxy Output Format
    *
    */
   exports.lambdaHandler = async (event, context) => {
     try {
       // const ret = await axios(url);
       response = {
         statusCode: 200,
         'body': JSON.stringify({
           message: 'hello world'
           // location: ret.data.trim()
         })
       }
     } catch (err) {
       console.log(err)
       return err
     }
   
       return response
   }
   ```

1. En **Nombre del archivo**, escriba `app.js`. Conserve las otras opciones predeterminadas.

1. Elija **Confirmar**.

   Ahora ha creado un archivo llamado `app.js`.

## Paso 3: crear un flujo de trabajo que ejecute la acción Super-Linter
<a name="integrations-github-action-tutorial-create-workflow"></a>

En este paso, creará un flujo de trabajo que ejecuta la acción Super-Linter al insertar código en el repositorio de código fuente. El flujo de trabajo consta de los siguientes componentes básicos, que se definen en un archivo YAML:
+ **Un desencadenador**: este desencadenador inicia la ejecución automática del flujo de trabajo cuando se introduce un cambio en el repositorio de código fuente. Para obtener más información acerca de los desencadenadores, consulte [Inicio de un flujo de trabajo y ejecución automática mediante desencadenadores](workflows-add-trigger.md).
+ **Una acción GitHub de «Acciones»**: al activarse, la acción **GitHub Acciones** ejecuta la acción Super-Linter, que a su vez inspecciona todos los archivos del repositorio de origen. Si el linter encuentra un problema, habrá un error en la acción del flujo de trabajo. 

**Creación de un flujo de trabajo que ejecute la acción Super-Linter**

1. En la CodeCatalyst consola, elige tu proyecto,. `codecatalyst-linter-project`

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**. 

1. Seleccione **Crear flujo de trabajo**.

1. En **Repositorio de código fuente**, elija `codecatalyst-linter-source-repository`.

1. En **Ramificación**, elija `main`.

1. Seleccione **Crear**.

1. Elimine el código de ejemplo de YAML.

1. Añada el YAML siguiente:

   ```
   Name: codecatalyst-linter-workflow
   SchemaVersion: "1.0"
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     SuperLinterAction:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           github-action-code
   ```

   En el código anterior, *github-action-code* sustitúyalo por el código de acción de Super-Linter, tal y como se indica en los pasos siguientes de este procedimiento.

1. Ve a la [página de Super-Linter](https://github.com/marketplace/actions/super-linter) en Marketplace. GitHub 

1. En `steps:` (minúsculas), busca el código y pégalo en el CodeCatalyst flujo de trabajo (mayúsculas). `Steps:`

   Ajusta el código de GitHub acción para que se ajuste a CodeCatalyst los estándares, como se muestra en el código siguiente.

   Su CodeCatalyst flujo de trabajo ahora tiene el siguiente aspecto:

   ```
   Name: codecatalyst-linter-workflow
   SchemaVersion: "1.0"
   Triggers:
     - Type: PUSH
       Branches:
         - main
   Actions:
     SuperLinterAction:
       Identifier: aws/github-actions-runner@v1
       Configuration:
         Steps:
           - name: Lint Code Base
             uses: github/super-linter@v4
             env:
               VALIDATE_ALL_CODEBASE: "true"
               DEFAULT_BRANCH: main
   ```

1. (Opcional) Seleccione **Validar** para asegurarse de que el código de YAML del flujo de trabajo es válido antes de confirmarlo.

1. Seleccione **Confirmar**, introduzca un **mensaje de confirmación**, seleccione su **repositorio** `codecatalyst-linter-source-repository` y vuelva a seleccionar **Confirmar**.

   Ahora ha creado un flujo de trabajo. La ejecución del flujo de trabajo se inicia automáticamente debido al desencadenador definido en la parte superior del flujo de trabajo.

**Consulta de la ejecución del flujo de trabajo en curso**

1. En el panel de navegación, elija **CI/CD** y, a continuación, elija **Flujos de trabajo**.

1. Elija el flujo de trabajo que acaba de crear: `codecatalyst-linter-workflow`.

1. En el diagrama de flujo de trabajo, elija **SuperLinterAction**.

1. Espere a que la acción tenga un error. Este error era esperable, ya que linter encontró problemas en el código.

1. Deje la CodeCatalyst consola abierta y vaya a[Paso 4: solucionar los problemas encontrados por Super-Linter](#integrations-github-action-tutorial-fix-probs).

## Paso 4: solucionar los problemas encontrados por Super-Linter
<a name="integrations-github-action-tutorial-fix-probs"></a>

Super-Linter debería haber encontrado problemas en el código `app.js`, así como en el archivo `README.md` incluido en el repositorio de código fuente.

**Resolución de los problemas encontrados por linter**

1. En la CodeCatalyst consola, selecciona la pestaña **Registros** y, a continuación, selecciona **Lint Code Base**.

   Aparecerán los registros generados por la acción Super-Linter.

1. En los registros de Super-Linter, desplácese hacia abajo, hasta aproximadamente la línea 90, donde encontrará el origen de los problemas. Tendrán un aspecto similar al siguiente: 

   ```
   /github/workspace/hello-world/app.js:3:13: Extra semicolon.
   /github/workspace/hello-world/app.js:9:92: Trailing spaces not allowed.
   /github/workspace/hello-world/app.js:21:7: Unnecessarily quoted property 'body' found.
   /github/workspace/hello-world/app.js:31:1: Expected indentation of 2 spaces but found 4.
   /github/workspace/hello-world/app.js:32:2: Newline required at end of file but not found.
   ```

1. Corrija `app.js` y `README.md` en el repositorio de código fuente y confirme los cambios. 
**sugerencia**  
Para corregir `README.md`, añada `markdown` al bloque de código de la siguiente manera:  

   ```
   ```markdown
   Setup examples:
   ...
   ```
   ```

   Los cambios inician otro flujo de trabajo que se ejecuta automáticamente. Espere a que el flujo de trabajo finalice. Si ha solucionado todos los problemas, el flujo de trabajo debería funcionar correctamente.

## Limpieza
<a name="integrations-github-action-tutorial-cleanup"></a>

Limpie CodeCatalyst para eliminar los rastros de este tutorial de su entorno.

**Para limpiar en CodeCatalyst**

1. Abre la CodeCatalyst consola en [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Elimine `codecatalyst-linter-source-repository`.

1. Elimine `codecatalyst-linter-workflow`.

En este tutorial, has aprendido a añadir la GitHub acción Super-Linter a un CodeCatalyst flujo de trabajo para imprimir código.