Traffine I/O

Bahasa Indonesia

2023-03-03

Mengintegrasikan Black dengan GitHub Actions

Pengenalan

Dalam artikel ini, saya akan menjelaskan secara rinci mengenai integrasi Black dengan GitHub Actions.

Menyiapkan GitHub Action untuk Black

Untuk menyiapkan GitHub Action yang menggunakan Black untuk memformat kode Python Anda, ikuti langkah-langkah berikut:

  1. Buat File Workflow

Di repositori Anda, buat direktori dengan nama .github, dan di dalamnya, buat direktori lain dengan nama workflows. Di dalam direktori workflows, buat file baru dengan nama black.yml. File ini akan mendefinisikan workflow.

  1. Definisikan Workflow

Pada file black.yml, tentukan workflow-nya. Berikut contoh konfigurasi workflow:

.github/workflows/black.yml
name: Pemformatan Kode dengan Black

on: [push, pull_request]

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - name: Periksa kode
        uses: actions/checkout@v2

      - name: Siapkan Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.x'

      - name: Pasang Black
        run: pip install black

      - name: Periksa pemformatan kode dengan Black
        run: black --check .

Mari kita bahas apa yang dilakukan konfigurasi ini:

  • Workflow ini diberi nama "Pemformatan Kode dengan Black".
  • Workflow ini akan berjalan saat terjadi peristiwa push dan pull_request.
  • Terdapat satu pekerjaan (job) dengan nama format.
  • Pekerjaan ini berjalan pada versi Ubuntu terbaru.
  • Workflow ini akan memeriksa kode Anda.
  • Mengatur Python versi 3.x.
  • Memasang Black.
  • Menjalankan Black dalam mode periksa untuk memeriksa apakah kode diformat dengan benar.
  1. Commit dan Push File Workflow

Commit file .github/workflows/black.yml ke repositori Anda dan push ke GitHub.

bash
$ git add .github/workflows/black.yml
$ git commit -m "Add Black formatting check workflow"
$ git push

Mengelola Hasil Workflow

Setelah Anda melakukan push pada file workflow, GitHub Actions akan mulai menjalankan workflow pada peristiwa yang telah ditentukan (misalnya, push dan pull request pada contoh ini). Jika Black menemukan kode yang tidak diformat dengan benar, workflow akan gagal.

  • Jika workflow gagal, Anda harus menjalankan Black secara lokal untuk memformat kode, melakukan commit perubahan, dan melakukan push.
bash
$ black .
$ git add .
$ git commit -m "Format code with Black"
$ git push
  • Jika workflow berhasil, berarti kode Anda telah diformat dengan benar sesuai dengan aturan Black.

Mengotomatiskan Pemformatan Kode

Dalam beberapa kasus, Anda mungkin ingin mengotomatiskan proses pemformatan kode dengan Black sebagai bagian dari workflow GitHub Actions. Ini berarti, selain memeriksa apakah kode sesuai dengan gaya Black, workflow akan secara otomatis memformat kode tersebut dan melakukan push perubahan kembali ke repositori.

Meskipun pendekatan ini dapat menghemat waktu, penting untuk menggunakannya dengan hati-hati. Mengirim perubahan secara otomatis ke repositori dapat menghasilkan hasil yang tidak terduga, terutama jika ada banyak kontributor yang sedang bekerja pada proyek tersebut secara bersamaan.

Berikut adalah langkah-langkah untuk mengatur GitHub Action untuk pemformatan kode otomatis:

  1. Buat Personal Access Token (PAT)

Untuk melakukan push perubahan dari workflow kembali ke repositori Anda, Anda memerlukan Personal Access Token (PAT) GitHub. PAT akan memiliki izin untuk melakukan tindakan atas nama pengguna GitHub Anda.

Untuk membuat PAT, pergi ke Pengaturan GitHub Anda, kemudian pilih ""Developer settings" > "Personal access tokens". Klik "Generate new token", beri token nama yang deskriptif, dan pilih izin yang diperlukan. Untuk kasus penggunaan ini, Anda setidaknya memerlukan izin repo. Klik "Generate token" dan pastikan untuk menyimpan token tersebut di tempat yang aman - Anda tidak akan dapat melihatnya lagi.

  1. Tambahkan PAT sebagai Secret

Selanjutnya, Anda perlu menambahkan PAT sebagai secret (rahasia) ke repositori Anda agar dapat diakses oleh GitHub Action. Pergi ke pengaturan repositori Anda, kemudian pilih "Secrets" > "New repository secret". Masukkan nama untuk secret (misalnya BLACK_FORMATTER_TOKEN) dan tempelkan PAT Anda sebagai nilai.

  1. Modifikasi File Workflow

Sesuaikan file workflow Anda untuk memformat kode dengan Black dan melakukan push perubahan jika diperlukan. Berikut adalah contoh workflow yang telah dimodifikasi:

.github/workflows/black.yml
name: Automated Code Formatting with Black

on: [push, pull_request]

jobs:
  format:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
        with:
          token: ${{ secrets.BLACK_FORMATTER_TOKEN }}  # Use the PAT to check out code

      - name: Set up Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.x'

      - name: Install Black
        run: pip install black

      - name: Format code with Black
        run: black .

      - name: Commit and push changes
        run: |
          git config --local user.email "action@github.com"
          git config --local user.name "GitHub Action"
          git commit -am "Format code with Black" || exit 0  # The exit 0 is used to prevent the workflow from failing if no changes are made
          git push
  1. Commit dan Push File Workflow

Commit file .github/workflows/black.yml yang telah dimodifikasi ke repositori Anda dan push ke GitHub.

bash
$ git add .github/workflows/black.yml
$ git commit -m "Modify workflow for automated formatting"
$ git push

Setelah langkah-langkah ini, workflow tidak hanya akan memeriksa pemformatan kode, tetapi juga secara otomatis memformat kode dan melakukan push perubahan kembali ke repositori jika diperlukan.

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!