

Amazon non CodeCatalyst è più aperta a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta [Come migrare da CodeCatalyst](migration.md).

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Tutorial: codice Lint usando un' GitHub azione
<a name="integrations-github-action-tutorial"></a>

In questo tutorial, aggiungi l'[ GitHub azione Super-Linter](https://github.com/marketplace/actions/super-linter) a un flusso di lavoro Amazon. CodeCatalyst L'azione Super-Linter ispeziona il codice, trova le aree in cui il codice presenta errori, problemi di formattazione e costrutti sospetti, quindi invia i risultati alla console). CodeCatalyst Dopo aver aggiunto il linter al flusso di lavoro, esegui il flusso di lavoro per lint un'applicazione Node.js di esempio (). `app.js` Quindi risolvete i problemi segnalati ed eseguite nuovamente il flusso di lavoro per verificare se le correzioni hanno funzionato.

**Suggerimento**  
[Prendi in considerazione l'utilizzo di Super-Linter per linkare file YAML, come i modelli.CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)

**Topics**
+ [Prerequisiti](#integrations-github-action-tutorial-prereqs)
+ [Fase 1: Creare un archivio di sorgenti](#integrations-github-action-tutorial-create-source-repo)
+ [Passaggio 2: aggiungere un file app.js](#integrations-github-action-tutorial-add-appjs)
+ [Passaggio 3: Creare un flusso di lavoro che esegua l'azione Super-Linter](#integrations-github-action-tutorial-create-workflow)
+ [Passaggio 4: Risolvi i problemi rilevati da Super-Linter](#integrations-github-action-tutorial-fix-probs)
+ [Eliminazione](#integrations-github-action-tutorial-cleanup)

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

Prima di iniziare, avrai bisogno di:
+ Uno CodeCatalyst **spazio** con un connesso Account AWS. Per ulteriori informazioni, consulta [Creazione di uno spazio](spaces-create.md).
+ Un progetto vuoto nel tuo CodeCatalyst spazio chiamato`codecatalyst-linter-project`. Scegli l'opzione **Inizia da zero** per creare questo progetto.

  ```
  ```

  Per ulteriori informazioni, consulta [Creare un progetto vuoto in Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Fase 1: Creare un archivio di sorgenti
<a name="integrations-github-action-tutorial-create-source-repo"></a>

In questo passaggio, si crea un repository di origine in. CodeCatalyst Utilizzerai questo repository per archiviare il file sorgente dell'applicazione di esempio`app.js`, per questo tutorial.

Per ulteriori informazioni sui repository dei sorgenti, consulta. [Creazione di un repository di sorgenti](source-repositories-create.md)

**Per creare un archivio di sorgenti**

1. Apri la CodeCatalyst console all'indirizzo [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Vai al tuo progetto,`codecatalyst-linter-project`.

1. Nel riquadro di navigazione, scegli **Codice**, quindi scegli **Archivi di origine.** 

1. Scegli **Aggiungi repository**, quindi scegli **Crea** repository.

1. Nel **nome del repository, inserisci:**

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

1. Scegli **Create** (Crea).

## Passaggio 2: aggiungere un file app.js
<a name="integrations-github-action-tutorial-add-appjs"></a>

In questo passaggio, aggiungi un `app.js` file al tuo repository di origine. `app.js`Contiene un codice di funzione che contiene alcuni errori che il linter troverà.

**Per aggiungere il file app.js**

1. Nella CodeCatalyst console, scegli il tuo progetto,`codecatalyst-linter-project`.

1. Nel riquadro di navigazione, scegli **Codice**, quindi scegli **Archivi di origine.**

1. Dall'elenco dei repository di origine, scegli il tuo repository,. `codecatalyst-linter-source-repository`

1. In **File**, scegli **Crea** file.

1. Nella casella di testo, inserisci il seguente codice:

   ```
   // 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. Per **Nome file**, immettere`app.js`. Mantieni le altre opzioni predefinite.

1. Scegli **Applica**.

   Ora hai creato un file chiamato`app.js`.

## Passaggio 3: Creare un flusso di lavoro che esegua l'azione Super-Linter
<a name="integrations-github-action-tutorial-create-workflow"></a>

In questo passaggio, crei un flusso di lavoro che esegua l'azione Super-Linter quando invii il codice al tuo repository di origine. Il flusso di lavoro è costituito dai seguenti elementi costitutivi, definiti in un file YAML:
+ **Un trigger**: questo trigger avvia l'esecuzione automatica del flusso di lavoro quando invii una modifica al tuo repository di origine. Per ulteriori informazioni sui trigger, consulta [L'avvio di un flusso di lavoro viene eseguito automaticamente utilizzando i trigger](workflows-add-trigger.md).
+ **Un'GitHub azione «Azioni»: all'attivazione, l'azione **GitHub Azioni**** esegue l'azione Super-Linter, che a sua volta ispeziona tutti i file nel repository di origine. Se il linter rileva un problema, l'azione del flusso di lavoro fallisce. 

**Per creare un flusso di lavoro che esegua l'azione Super-Linter**

1. Nella CodeCatalyst console, scegli il tuo progetto,. `codecatalyst-linter-project`

1. **Nel riquadro di navigazione, scegli **CI/CD**, quindi scegli Flussi di lavoro.** 

1. **Scegli Crea flusso di lavoro.**

1. Per **Source repository**, scegli`codecatalyst-linter-source-repository`.

1. Per **Branch**, scegli`main`.

1. Scegli **Create** (Crea).

1. Elimina il codice di esempio YAML.

1. Aggiungi il seguente 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
   ```

   Nel codice precedente, sostituiscilo *github-action-code* con il codice d'azione Super-Linter, come indicato nei seguenti passaggi di questa procedura.

1. Vai alla [pagina Super-Linter](https://github.com/marketplace/actions/super-linter) nel Marketplace. GitHub 

1. In `steps:` (minuscolo), trova il codice e incollalo nel CodeCatalyst flusso di lavoro sotto (maiuscolo). `Steps:`

   Modifica il codice GitHub Action per renderlo conforme agli CodeCatalyst standard, come mostrato nel codice seguente.

   Il tuo CodeCatalyst flusso di lavoro ora è simile a questo:

   ```
   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. (Facoltativo) Scegli **Convalida** per assicurarti che il codice YAML sia valido prima di eseguire il commit.

1. **Scegli **Commit**, inserisci un **messaggio di Commit**, seleziona il tuo `codecatalyst-linter-source-repository` **Repository** e scegli nuovamente Commit.**

   Ora hai creato un flusso di lavoro. L'esecuzione di un flusso di lavoro viene avviata automaticamente a causa del trigger definito nella parte superiore del flusso di lavoro.

**Per visualizzare il flusso di lavoro in corso**

1. **Nel riquadro di navigazione, scegli **CI/CD**, quindi scegli Flussi di lavoro.**

1. Scegli il flusso di lavoro che hai appena creato:. `codecatalyst-linter-workflow`

1. Nel diagramma del flusso di lavoro, scegli **SuperLinterAction**.

1. Attendi che l'azione fallisca. Questo errore è previsto perché il linter ha riscontrato problemi nel codice.

1. Lascia la CodeCatalyst console aperta e vai a. [Passaggio 4: Risolvi i problemi rilevati da Super-Linter](#integrations-github-action-tutorial-fix-probs)

## Passaggio 4: Risolvi i problemi rilevati da Super-Linter
<a name="integrations-github-action-tutorial-fix-probs"></a>

Super-Linter dovrebbe aver riscontrato problemi nel `app.js` codice e nel `README.md` file incluso nel repository dei sorgenti.

**Per risolvere i problemi rilevati da Linter**

1. Nella CodeCatalyst console, scegli la scheda **Registri**, quindi scegli **Lint** Code Base.

   Vengono visualizzati i registri generati dall'azione Super-Linter.

1. Nei log di Super-Linter, scorri verso il basso fino alla riga 90, dove trovi l'inizio dei problemi. Sembrano simili ai seguenti: 

   ```
   /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. Correggi `app.js` e `README.md` inserisci le modifiche nel tuo archivio di origine e conferma le modifiche. 
**Suggerimento**  
Per risolvere il problema`README.md`, aggiungi `markdown` al blocco di codice, in questo modo:  

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

   Le modifiche avviano automaticamente un altro flusso di lavoro. Attendi il completamento del flusso di lavoro. Se hai risolto tutti i problemi, il flusso di lavoro dovrebbe avere esito positivo.

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

Pulisci CodeCatalyst per rimuovere le tracce di questo tutorial dal tuo ambiente.

**Per pulire CodeCatalyst**

1. Apri la CodeCatalyst console all'[indirizzo https://codecatalyst.aws/](https://codecatalyst.aws/).

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

1. Eliminare`codecatalyst-linter-workflow`.

In questo tutorial, hai imparato come aggiungere l' GitHub azione Super-Linter a un CodeCatalyst flusso di lavoro per inserire del codice.