

Amazon CodeCatalyst tidak lagi terbuka untuk pelanggan baru. Pelanggan yang sudah ada dapat terus menggunakan layanan ini seperti biasa. Lihat informasi yang lebih lengkap di [Cara bermigrasi dari CodeCatalyst](migration.md).

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Tutorial: Kode lint menggunakan Action GitHub
<a name="integrations-github-action-tutorial"></a>

Dalam tutorial ini, Anda menambahkan [Super-Linter GitHub Action ke alur kerja](https://github.com/marketplace/actions/super-linter) Amazon CodeCatalyst . Tindakan Super-Linter memeriksa kode, menemukan area di mana kode memiliki kesalahan, masalah pemformatan, dan konstruksi yang mencurigakan, dan kemudian mengeluarkan hasilnya ke konsol). CodeCatalyst Setelah menambahkan linter ke alur kerja Anda, Anda menjalankan alur kerja untuk lint contoh aplikasi Node.js (). `app.js` Anda kemudian memperbaiki masalah yang dilaporkan dan menjalankan alur kerja lagi untuk melihat apakah perbaikan berhasil.

**Tip**  
[Pertimbangkan untuk menggunakan Super-Linter untuk lint file YAMAL, seperti template.CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html)

**Topics**
+ [Prasyarat](#integrations-github-action-tutorial-prereqs)
+ [Langkah 1: Buat repositori sumber](#integrations-github-action-tutorial-create-source-repo)
+ [Langkah 2: Tambahkan file app.js](#integrations-github-action-tutorial-add-appjs)
+ [Langkah 3: Buat alur kerja yang menjalankan tindakan Super-Linter](#integrations-github-action-tutorial-create-workflow)
+ [Langkah 4: Perbaiki masalah yang ditemukan Super-Linter](#integrations-github-action-tutorial-fix-probs)
+ [Bersihkan](#integrations-github-action-tutorial-cleanup)

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

Sebelum Anda mulai, Anda akan membutuhkan:
+  CodeCatalyst **Ruang** dengan terhubung Akun AWS. Untuk informasi selengkapnya, lihat [Membuat ruang](spaces-create.md).
+ Proyek kosong di CodeCatalyst ruang Anda disebut`codecatalyst-linter-project`. Pilih opsi **Mulai dari awal** untuk membuat proyek ini.

  ```
  ```

  Untuk informasi selengkapnya, lihat [Membuat proyek kosong di Amazon CodeCatalyst](projects-create.md#projects-create-empty).

## Langkah 1: Buat repositori sumber
<a name="integrations-github-action-tutorial-create-source-repo"></a>

Pada langkah ini, Anda membuat repositori sumber di. CodeCatalyst Anda akan menggunakan repositori ini untuk menyimpan contoh file sumber aplikasi,`app.js`, untuk tutorial ini.

Untuk informasi selengkapnya tentang repositori sumber, lihat. [Membuat repositori sumber](source-repositories-create.md)

**Untuk membuat repositori sumber**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

1. Arahkan ke proyek Anda,`codecatalyst-linter-project`.

1. Di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**. 

1. Pilih **Tambahkan repositori**, lalu pilih **Buat** repositori.

1. Dalam **nama Repositori, masukkan:**

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

1. Pilih **Buat**.

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

Pada langkah ini, Anda menambahkan `app.js` file ke repositori sumber Anda. Kode `app.js` berisi fungsi yang memiliki beberapa kesalahan yang akan ditemukan linter.

**Untuk menambahkan file app.js**

1. Di CodeCatalyst konsol, pilih proyek Anda,`codecatalyst-linter-project`.

1. Di panel navigasi, pilih **Kode**, lalu pilih **Repositori sumber**.

1. Dari daftar repositori sumber, pilih repositori Anda,. `codecatalyst-linter-source-repository`

1. Di **File**, pilih **Buat file**.

1. Di kotak teks, masukkan kode berikut:

   ```
   // 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. Untuk **nama File**, masukkan`app.js`. Simpan opsi default lainnya.

1. Pilih **Terapkan**.

   Anda sekarang telah membuat file bernama`app.js`.

## Langkah 3: Buat alur kerja yang menjalankan tindakan Super-Linter
<a name="integrations-github-action-tutorial-create-workflow"></a>

Pada langkah ini, Anda membuat alur kerja yang menjalankan tindakan Super-Linter saat Anda mendorong kode ke repositori sumber Anda. Alur kerja terdiri dari blok bangunan berikut, yang Anda tentukan dalam file YAMAL:
+ **Pemicu - Pemicu** ini memulai alur kerja yang dijalankan secara otomatis saat Anda mendorong perubahan ke repositori sumber Anda. Untuk informasi lebih lanjut tentang menggunakan pemicu, lihat [Memulai alur kerja berjalan secara otomatis menggunakan pemicu](workflows-add-trigger.md).
+ Tindakan **'GitHub Tindakan'** — Pada pemicu, tindakan Tindakan menjalankan **GitHub tindakan** Super-Linter, yang pada gilirannya memeriksa semua file di repositori sumber Anda. Jika linter menemukan masalah, tindakan alur kerja gagal. 

**Untuk membuat alur kerja yang menjalankan tindakan Super-Linter**

1. Di CodeCatalyst konsol, pilih proyek Anda,`codecatalyst-linter-project`.

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.** 

1. Pilih **Buat alur kerja**.

1. Untuk **repositori Sumber, pilih**. `codecatalyst-linter-source-repository`

1. Untuk **Cabang**, pilih`main`.

1. Pilih **Buat**.

1. Hapus kode sampel YAMAL.

1. Tambahkan YAML berikut:

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

   Dalam kode sebelumnya, ganti *github-action-code* dengan kode tindakan Super-Linter, seperti yang diinstruksikan dalam langkah-langkah berikut dari prosedur ini.

1. Buka [halaman Super-Linter](https://github.com/marketplace/actions/super-linter) di Marketplace GitHub .

1. Di bawah `steps:` (huruf kecil), temukan kode dan tempelkan ke CodeCatalyst alur kerja di bawah `Steps:` (huruf besar).

   Sesuaikan kode GitHub Action agar sesuai dengan CodeCatalyst standar, seperti yang ditunjukkan pada kode berikut.

    CodeCatalyst Alur kerja Anda sekarang terlihat seperti ini:

   ```
   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. (Opsional) Pilih **Validasi** untuk memastikan kode YAMAL valid sebelum melakukan.

1. Pilih **Komit**, masukkan **pesan Komit**, pilih `codecatalyst-linter-source-repository` **Repositori** Anda, dan pilih **Komit** lagi.

   Anda sekarang telah membuat alur kerja. Jalankan alur kerja dimulai secara otomatis karena pemicu yang ditentukan di bagian atas alur kerja.

**Untuk melihat alur kerja yang sedang berjalan**

1. **Di panel navigasi, pilih **CI/CD, lalu pilih Alur** kerja.**

1. Pilih alur kerja yang baru saja Anda buat:`codecatalyst-linter-workflow`.

1. Dalam diagram alur kerja, pilih **SuperLinterAction**.

1. Tunggu sampai tindakan gagal. Kegagalan ini diharapkan karena linter menemukan masalah dalam kode.

1. Biarkan CodeCatalyst konsol terbuka dan pergi ke[Langkah 4: Perbaiki masalah yang ditemukan Super-Linter](#integrations-github-action-tutorial-fix-probs).

## Langkah 4: Perbaiki masalah yang ditemukan Super-Linter
<a name="integrations-github-action-tutorial-fix-probs"></a>

Super-Linter seharusnya menemukan masalah dalam `app.js` kode, serta `README.md` file yang disertakan dalam repositori sumber Anda.

**Untuk memperbaiki masalah linter ditemukan**

1. Di CodeCatalyst konsol, pilih tab **Log**, lalu pilih **Lint Code Base**.

   Log yang dihasilkan tindakan Super-Linter ditampilkan.

1. Di log Super-Linter, gulir ke bawah ke sekitar baris 90, di mana Anda menemukan awal masalah. Mereka terlihat mirip dengan yang berikut: 

   ```
   /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. Perbaiki `app.js` dan `README.md` di repositori sumber Anda dan komit perubahan Anda. 
**Tip**  
Untuk memperbaikinya`README.md`, tambahkan `markdown` ke blok kode, seperti ini:  

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

   Perubahan Anda memulai alur kerja lain berjalan secara otomatis. Tunggu alur kerja selesai. Jika Anda memperbaiki semua masalah, alur kerja harus berhasil.

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

Bersihkan CodeCatalyst untuk menghapus jejak tutorial ini dari lingkungan Anda.

**Untuk membersihkan CodeCatalyst**

1. Buka CodeCatalyst konsol di [https://codecatalyst.aws/](https://codecatalyst.aws/).

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

1. Hapus`codecatalyst-linter-workflow`.

Dalam tutorial ini, Anda belajar cara menambahkan Super-Linter GitHub Action ke CodeCatalyst alur kerja untuk lint beberapa kode.