

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Tutorial: código Lint usando uma GitHub ação
<a name="integrations-github-action-tutorial"></a>

Neste tutorial, você adiciona a [ GitHub ação Super-Linter](https://github.com/marketplace/actions/super-linter) a um fluxo de trabalho da Amazon CodeCatalyst . A ação Super-Linter inspeciona o código, encontra áreas em que o código tem erros, problemas de formatação e construções suspeitas e, em seguida, envia os resultados para o console). CodeCatalyst Depois de adicionar o linter ao fluxo de trabalho, você executa o fluxo de trabalho para aplicar o código lint a uma aplicação Node.js de exemplo (`app.js`). Depois, você corrige os problemas relatados e executa o fluxo de trabalho novamente para ver se as correções funcionaram.

**dica**  
Pense em usar o Super-Linter para aplicar o código lint a arquivos YAML, como [modelos do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html).

**Topics**
+ [Pré-requisitos](#integrations-github-action-tutorial-prereqs)
+ [Etapa 1: criar um repositório de origem](#integrations-github-action-tutorial-create-source-repo)
+ [Etapa 2: adicionar um arquivo app.js](#integrations-github-action-tutorial-add-appjs)
+ [Etapa 3: criar um fluxo de trabalho que execute a ação Super-Linter](#integrations-github-action-tutorial-create-workflow)
+ [Etapa 4: corrigir problemas encontrados pelo Super-Linter](#integrations-github-action-tutorial-fix-probs)
+ [Limpeza](#integrations-github-action-tutorial-cleanup)

## Pré-requisitos
<a name="integrations-github-action-tutorial-prereqs"></a>

Antes de começar, você precisa de:
+ Um CodeCatalyst **espaço** com um conectado Conta da AWS. Para obter mais informações, consulte [Criar um espaço](spaces-create.md).
+ Um projeto vazio em seu CodeCatalyst espaço chamado`codecatalyst-linter-project`. Selecione a opção **Começar do zero** para criar esse projeto.

  ```
  ```

  Para obter mais informações, consulte [Criando um projeto vazio na Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Etapa 1: criar um repositório de origem
<a name="integrations-github-action-tutorial-create-source-repo"></a>

Nesta etapa, você cria um repositório de origem no CodeCatalyst. Você usará esse repositório para armazenar o arquivo de origem da aplicação de exemplo, `app.js`, para este tutorial.

Para ter mais informações sobre repositórios de origem, consulte [Criar um repositório de origem](source-repositories-create.md).

**Como criar um repositório de origem**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Navegue até o projeto, `codecatalyst-linter-project`.

1. No painel de navegação, selecione **Código** e, em seguida, selecione **Repositórios de origem**. 

1. Escolha **Adicionar repositório** e selecione **Criar repositório**.

1. Em **Nome do repositório**, insira:

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

1. Escolha **Criar**.

## Etapa 2: adicionar um arquivo app.js
<a name="integrations-github-action-tutorial-add-appjs"></a>

Nesta etapa, você vai adicionar um arquivo `app.js` ao repositório de origem. O `app.js` contém um código de função que contém alguns erros que o linter encontrará.

**Para adicionar o arquivo app.js**

1. No CodeCatalyst console, escolha seu projeto,`codecatalyst-linter-project`.

1. No painel de navegação, selecione **Código** e, depois, selecione **Repositórios de origem**.

1. Na lista de repositórios de origem, escolha o seu repositório, `codecatalyst-linter-source-repository`.

1. Em **Arquivos**, selecione **Criar arquivo**.

1. Na caixa de texto, insira o código a seguir:

   ```
   // 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. Em **Nome do arquivo**, insira `app.js`. Mantenha as outras opções padrão.

1. Selecione **Confirmar**.

   Agora você criou um chamado `app.js`.

## Etapa 3: criar um fluxo de trabalho que execute a ação Super-Linter
<a name="integrations-github-action-tutorial-create-workflow"></a>

Nesta etapa, você vai criar um fluxo de trabalho que executa a ação Super-Linter ao enviar código para o repositório de origem. O fluxo de trabalho consiste nos seguintes componentes, que você define em um arquivo YAML:
+ **Um gatilho** – Esse gatilho inicia a execução automática do fluxo de trabalho quando você envia uma alteração ao seu repositório de origem. Para ter mais informações sobre gatilhos, consulte [Início da execução automática de um fluxo de trabalho usando gatilhos](workflows-add-trigger.md).
+ **Uma ação “GitHub Ações”** — No gatilho, a ação **GitHub Ações** executa a ação Super-Linter, que por sua vez inspeciona todos os arquivos em seu repositório de origem. Se o linter encontrar um problema, a ação do fluxo de trabalho falhará. 

**Para criar um fluxo de trabalho que execute a ação Super-Linter**

1. No CodeCatalyst console, escolha seu projeto,`codecatalyst-linter-project`.

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**. 

1. Selecione **Criar fluxo de trabalho**.

1. Em **Repositório de origem**, selecione `codecatalyst-linter-source-repository`.

1. Em **Ramificação**, selecione `main`.

1. Escolha **Criar**.

1. Exclua o código de amostra YAML.

1. Adicione o seguinte YAML:

   ```
   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
   ```

   No código anterior, *github-action-code* substitua pelo código de ação Super-Linter, conforme instruído nas etapas a seguir deste procedimento.

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

1. Em `steps:` (minúsculas), localize o código e cole-o no CodeCatalyst fluxo de trabalho em `Steps:` (maiúsculas).

   Ajuste o código de GitHub ação para se adequar aos CodeCatalyst padrões, conforme mostrado no código a seguir.

   Seu CodeCatalyst fluxo de trabalho agora tem a seguinte aparência:

   ```
   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) Selecione **Validar** para garantir que o código YAML seja válido antes de confirmar.

1. Selecione **Confirmar**, insira uma **Mensagem de confirmação**, escolha seu **repositório** do `codecatalyst-linter-source-repository` e selecione **Confirmar** novamente.

   Agora você criou um fluxo de trabalho. A execução de um fluxo de trabalho é iniciada automaticamente devido ao gatilho definido na parte superior do fluxo de trabalho.

**Para visualizar a execução do fluxo de trabalho em andamento**

1. No painel de navegação, escolha **CI/CD** e **Fluxos de trabalho**.

1. Escolha o fluxo de trabalho que você acabou de criar: `codecatalyst-linter-workflow`.

1. No diagrama do fluxo de trabalho, escolha **SuperLinterAction**.

1. Aguarde a falha da ação. Essa falha é esperada porque o linter encontrou problemas no código.

1. Deixe o CodeCatalyst console aberto e vá para[Etapa 4: corrigir problemas encontrados pelo Super-Linter](#integrations-github-action-tutorial-fix-probs).

## Etapa 4: corrigir problemas encontrados pelo Super-Linter
<a name="integrations-github-action-tutorial-fix-probs"></a>

O Super-Linter deve ter encontrado problemas no código `app.js`, bem como no arquivo `README.md` incluído no seu repositório de origem.

**Para corrigir os problemas encontrados pelo linter**

1. No CodeCatalyst console, escolha a guia **Logs** e, em seguida, escolha **Lint Code Base**.

   Os logs gerados pela ação Super-Linter são exibidos.

1. Nos logs do Super-Linter, role para baixo até a linha 90, onde você encontra o início dos problemas. Eles são semelhantes a: 

   ```
   /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` e `README.md` no repositório de origem e confirme as alterações. 
**dica**  
Para corrigir o `README.md`, adicione `markdown` ao bloco de código, assim:  

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

   Suas alterações iniciam outro fluxo de trabalho executado automaticamente. Aguarde a conclusão do fluxo de trabalho. Se você corrigiu todos os problemas, o fluxo de trabalho deverá ser bem-sucedido.

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

Faça uma limpeza CodeCatalyst para remover vestígios deste tutorial do seu ambiente.

**Para limpar CodeCatalyst**

1. Abra o CodeCatalyst console em [https://codecatalyst.aws/](https://codecatalyst.aws/).

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

1. Exclua `codecatalyst-linter-workflow`.

Neste tutorial, você aprendeu como adicionar a GitHub ação Super-Linter a um CodeCatalyst fluxo de trabalho para codificar alguns códigos.