Menggunakan antarmuka command line dengan clasp

Untuk mengembangkan dan mengelola project Google Apps Script dari terminal, bukan editor Apps Script, gunakan alat open source clasp.

Codelab clasp memberikan ringkasan semua clasp fitur.

Fitur

clasp menyertakan fitur berikut:

Mengembangkan secara lokal

clasp memungkinkan Anda mengembangkan project Apps Script secara lokal. Tulis kode di komputer Anda sendiri dan upload ke Apps Script setelah selesai. Anda juga dapat mendownload project Apps Script yang ada untuk mengeditnya secara offline. Gunakan alat pengembangan favorit Anda seperti git saat mem-build project Apps Script.

Mengelola versi deployment

Buat, perbarui, dan lihat beberapa deployment project Anda.

Menyusun kode

clasp memungkinkan Anda mengatur kode ke dalam direktori, yang akan dipertahankan saat Anda menguploadnya ke script.google.com. Contoh:

# On script.google.com:
├── tests/slides.gs
└── tests/sheets.gs

# Locally:
├── tests/
│   ├─ slides.gs
│   └─ sheets.gs

Jenis project

Anda dapat menggunakan clasp untuk mengelola project skrip mandiri dan terikat container.

Project mandiri

Project mandiri muncul sebagai file terpisah di Google Drive Anda. Anda dapat membuat skrip mandiri baru menggunakan perintah clasp create.

Project terikat container

Project terikat container dilampirkan ke file Google Dokumen, Spreadsheet, Slide, atau Google Formulir. Anda dapat membuat skrip terikat container baru yang dilampirkan ke file baru menggunakan perintah clasp create. Anda juga dapat melampirkan skrip baru ke file yang ada menggunakan flag --parentId.

Jenis project lainnya

clasp juga mendukung pembuatan skrip untuk aplikasi web dan API.

Persyaratan

clasp ditulis dalam Node.js dan didistribusikan menggunakan alat npm. Sebelum menggunakan clasp, Anda harus menginstal Node.js versi 20.0.0 atau yang lebih baru. Penginstalan Node.js memerlukan hak istimewa administratif.

Penginstalan

Setelah menginstal Node.js, gunakan perintah npm berikut untuk menginstal clasp:

npm install @google/clasp -g

Setelah penginstalan, gunakan perintah clasp dari direktori mana pun di komputer Anda.

Menggunakan clasp

Gunakan clasp untuk menangani berbagai tugas dari command line. Bagian ini menjelaskan operasi umum yang akan digunakan saat mengembangkan dengan clasp.

Login

Perintah ini akan login dan mengotorisasi pengelolaan project Apps Script Akun Google Anda. Setelah dijalankan, Anda akan diminta untuk login ke Akun Google tempat project Apps Script Anda disimpan.

clasp login

Logout

Perintah ini akan logout dari alat command line. Login kembali menggunakan clasp login untuk melakukan autentikasi ulang dengan Google sebelum terus menggunakan clasp.

clasp logout

Membuat project Apps Script baru

Perintah ini akan membuat skrip baru di direktori saat ini dengan judul skrip opsional.

clasp create [scriptTitle] [--type <projectType>] [--parentId <parentId>]

Perintah ini menggunakan parameter opsional berikut:

  • scriptTitle: Judul project skrip.
  • --type <projectType>: Jenis project yang akan dibuat. Nilai yang diizinkan adalah standalone, docs, sheets, slides, forms, webapp, dan api.
  • --parentId <parentId>: ID file Google Drive yang ada (Dokumen, Spreadsheet, Slide, atau Formulir) yang akan digunakan untuk mengikat project skrip baru.

Perintah ini juga membuat dua file di direktori saat ini:

  • File .clasp.json yang menyimpan ID skrip.
  • File manifes project appsscript.json yang berisi metadata project.

Meng-clone project yang ada

Perintah ini akan meng-clone project yang ada di direktori saat ini. Skrip harus dibuat atau dibagikan ke Akun Google Anda. Anda menentukan project skrip yang akan di-clone dengan memberikan ID skripnya. Anda dapat meng-clone project mandiri dan terikat container.

Untuk menemukan ID Skrip project:

  1. Buka project Apps Script.
  2. Di sebelah kiri, klik Project Settings .
  3. Di bagian IDs, salin Script ID.

    clasp clone

Mendownload project skrip

Perintah ini akan mendownload project Apps Script dari Google Drive ke sistem file komputer Anda.

clasp pull

Mengupload project skrip

Perintah ini akan mengupload semua file project skrip dari komputer Anda ke Drive.

clasp push

Mencantumkan versi project

Perintah ini akan mencantumkan nomor dan deskripsi setiap versi project skrip.

clasp versions

Men-deploy project yang dipublikasikan

Deploy project skrip sebagai aplikasi web, add-on Google Workspace, atau file yang dapat dieksekusi. Buat deployment di editor skrip, di manifes project, atau menggunakan clasp.

Untuk men-deploy project dengan clasp, buat versi project Apps Script yang tidak dapat diubah terlebih dahulu. Versi adalah "snapshot" project skrip dan mirip dengan rilis bercabang hanya baca.

clasp version [description]

Perintah ini akan menampilkan nomor versi yang baru dibuat. Gunakan nomor tersebut untuk men-deploy dan membatalkan deployment instance project Anda:

clasp deploy [version] [description]
clasp undeploy <deploymentId>

Perintah ini akan memperbarui deployment yang ada dengan versi dan deskripsi baru:

clasp redeploy <deploymentId> <version> <description>

Mencantumkan deployment

Perintah ini akan mencantumkan ID deployment, versi, dan deskripsi project skrip.

clasp deployments

Membuka project di editor Apps Script

Perintah ini akan membuka project skrip di editor Apps Script. Editor akan diluncurkan sebagai tab baru di browser web default Anda.

clasp open-script

Berkontribusi pada project open source clasp

Berkontribusilah pada clasp di GitHub.

CI/CD untuk Apps Script dengan clasp dan GitHub Actions

Panduan ini membahas cara menyiapkan linting, pengujian, dan deployment otomatis untuk project Google Apps Script menggunakan clasp dan GitHub Actions.

1. Prasyarat

Sebelum memulai, selesaikan langkah-langkah penyiapan di Persyaratan.

Anda juga memerlukan:

  • Repositori GitHub.
  • Apps Script API diaktifkan di script.google.com/home/usersettings.

2. Autentikasi di CI

Karena runner CI tidak dapat membuka browser untuk OAuth, Anda menyimpan kredensial sebagai GitHub Secrets:

Rahasia Nilai
CLASPRC_JSON Isi ~/.clasprc.json (dibuat oleh clasp login)
CLASP_JSON Isi .clasp.json (pemetaan ID skrip Anda)

Token refresh di .clasprc.json memberikan akses ke project Apps Script Anda. Perlakukan token tersebut sebagai kredensial sensitif dan lakukan rotasi secara berkala.

Tambahkan .clasprc.json dan .clasp.json ke .gitignore Anda. File ini berisi kredensial dan tidak boleh di-commit.

3. Alur Kerja CI — Lint dan Uji di PR

.github/workflows/ci.yml:

name: CI
on:
  pull_request:
    branches: [main]

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6.3
      - uses: actions/setup-node@v6.3
        with:
          node-version: "20"
          cache: npm
      - run: npm ci
      - run: npm run lint

4. Alur Kerja CD — Deploy saat Penggabungan

.github/workflows/deploy.yml:

name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: "20"
          cache: npm
      - run: npm ci
      - run: npm run lint && npm test
      - name: Setup clasp credentials
        run: |

          echo '${{ secrets.CLASPRC_JSON }}' > ~/.clasprc.json
          echo '${{ secrets.CLASP_JSON }}' > .clasp.json

      - name: Push and version
        run: |
          npx @google/clasp push --force
          npx @google/clasp version "$(git rev-parse --short HEAD)"

Flag --force akan menimpa kode jarak jauh tanpa konfirmasi. Setelah pipeline ini diterapkan, hindari pengeditan manual di editor Apps Script — repositori akan menjadi sumber ketepatan tunggal.

5. Deployment Multi-Lingkungan

Untuk lingkungan pengembangan/staging/produksi yang terpisah, buat project Apps Script yang berbeda untuk setiap lingkungan dan simpan konfigurasinya sebagai secret terpisah (CLASP_JSON_DEV, CLASP_JSON_STAGING, CLASP_JSON_PROD). Dalam alur kerja, tulis secret yang sesuai ke .clasp.json berdasarkan cabang yang di-deploy.

Pemecahan masalah

Error Perbaiki
"Script API not enabled" Aktifkan di script.google.com/home/usersettings
"401 Unauthorized" Jalankan kembali clasp login secara lokal, perbarui secret CLASPRC_JSON
"ENOENT .clasp.json" Verifikasi langkah kredensial menulis file sebelum clasp push
Push berhasil, tetapi kode tidak berubah Konfirmasi scriptId dalam secret cocok dengan project target Anda

Bacaan Lebih Lanjut