Dropstone CLI

GitLab

Gunakan Dropstone dalam isu dan permintaan penggabungan GitLab.

Dropstone terintegrasi dengan alur kerja GitLab Anda melalui pipeline GitLab CI/CD Anda atau dengan GitLab Duo.

Dalam kedua kasus tersebut, Dropstone akan berjalan pada runner GitLab Anda.


GitLab CI

Dropstone bekerja dalam pipeline GitLab biasa. Anda dapat membangunnya ke dalam pipeline sebagai komponen CI

Di sini kami menggunakan komponen CI/CD buatan komunitas untuk Dropstone: nagyv/gitlab-dropstone.


Fitur

  • Gunakan konfigurasi kustom per pekerjaan: Konfigurasikan Dropstone dengan direktori konfigurasi kustom, misalnya ./config/#custom-directory untuk mengaktifkan atau menonaktifkan fungsionalitas per pemanggilan Dropstone.
  • Pengaturan minimal: Komponen CI menyiapkan Dropstone di latar belakang, Anda hanya perlu membuat konfigurasi Dropstone dan prompt awal.
  • Fleksibel: Komponen CI mendukung beberapa input untuk menyesuaikan perilakunya

Pengaturan

  1. Simpan JSON autentikasi Dropstone Anda sebagai variabel lingkungan CI tipe File di bawah Settings > CI/CD > Variables. Pastikan untuk menandainya sebagai "Masked and hidden".

  2. Tambahkan kode berikut ke file .gitlab-ci.yml Anda.

    include:
      - component: $CI_SERVER_FQDN/nagyv/gitlab-dropstone/dropstone@2
        inputs:
          config_dir: ${CI_PROJECT_DIR}/dropstone-config
          auth_json: $DROPSTONE_AUTH_JSON # Nama variabel untuk JSON autentikasi Dropstone Anda
          command: optional-custom-command
          message: "Prompt Anda di sini"
    

Untuk lebih banyak input dan kasus penggunaan, lihat dokumentasi untuk komponen ini.


GitLab Duo

Dropstone terintegrasi dengan alur kerja GitLab Anda. Sebut @dropstone dalam sebuah komentar, dan Dropstone akan mengeksekusi tugas-tugas dalam pipeline GitLab CI Anda.


Fitur

  • Triase isu: Minta Dropstone untuk memeriksa sebuah isu dan menjelaskannya kepada Anda.
  • Perbaiki dan implementasikan: Minta Dropstone untuk memperbaiki isu atau mengimplementasikan fitur. Dropstone akan membuat cabang baru dan mengajukan permintaan penggabungan dengan perubahan tersebut.
  • Aman: Dropstone berjalan pada runner GitLab Anda.

Pengaturan

Dropstone berjalan dalam pipeline GitLab CI/CD Anda, berikut yang perlu Anda siapkan:

Tip

Lihat dokumentasi GitLab untuk instruksi terbaru.

  1. Konfigurasikan lingkungan GitLab Anda
  2. Siapkan CI/CD
  3. Dapatkan kunci API Dropstone (lihat Quickstart)
  4. Buat akun layanan
  5. Konfigurasikan variabel CI/CD
  6. Buat file konfigurasi alur. Contoh:
image: node:22-slim
commands:
  - echo "Installing Dropstone"
  - curl -fsSL https://dropstone.io/install | bash
  - echo "Installing glab"
  - export GITLAB_TOKEN=$GITLAB_TOKEN_DROPSTONE
  - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
  - curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
  - apt-get install --yes glab
  - echo "Configuring glab"
  - echo $GITLAB_HOST
  - echo "Creating Dropstone auth configuration"
  - mkdir --parents ~/.local/share/dropstone
  - |
    cat > ~/.local/share/dropstone/auth.json << EOF
    {
      "dropstone": {
        "type": "api",
        "key": "$DROPSTONE_API_KEY"
      }
    }
    EOF
  - echo "Configuring git"
  - git config --global user.email "dropstone@gitlab.com"
  - git config --global user.name "Dropstone"
  - echo "Testing glab"
  - glab issue list
  - echo "Running Dropstone"
  - |
    dropstone run "
    Anda adalah asisten AI yang membantu operasi GitLab.

    Konteks: $AI_FLOW_CONTEXT
    Tugas: $AI_FLOW_INPUT
    Peristiwa: $AI_FLOW_EVENT

    Silakan jalankan tugas yang diminta menggunakan alat GitLab yang tersedia.
    Bersikaplah teliti dalam analisis Anda dan berikan penjelasan yang jelas.

    Gunakan CLI glab untuk mengakses data dari GitLab. CLI glab sudah diautentikasi.

    Jika Anda diminta untuk merangkum MR atau isu, atau memberikan informasi lebih lanjut,
    kirimkan kembali catatan ke MR/Isu agar pengguna dapat melihatnya.
    "
  - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
  - echo "Memeriksa perubahan git dan mendorong jika ada"
  - |
    if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
      echo "Perubahan git terdeteksi, menambahkan dan mendorong..."
      git add .
      if git diff --cached --quiet; then
        echo "Tidak ada perubahan yang di-stage untuk di-commit"
      else
        echo "Melakukan commit perubahan ke cabang: $CI_WORKLOAD_REF"
        git commit --message "Perubahan Dropstone"
        echo "Mendorong perubahan ke $CI_WORKLOAD_REF"
        git push "https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/$CI_PROJECT_PATH.git" $CI_WORKLOAD_REF
        echo "Perubahan berhasil didorong"
      fi
    else
      echo "Tidak ada perubahan git yang terdeteksi, melewati push"
    fi
variables:
  - DROPSTONE_API_KEY
  - GITLAB_TOKEN_DROPSTONE
  - GITLAB_HOST

Anda dapat merujuk ke dokumentasi GitLab Duo Agent Platform untuk instruksi terperinci.


Contoh

Berikut adalah beberapa contoh cara menggunakan Dropstone di GitLab.

Tip

Anda dapat mengonfigurasi frasa pemicu yang berbeda selain @dropstone.

  • Jelaskan sebuah isu

    Tambahkan komentar ini di isu GitLab.

    @dropstone jelaskan isu ini
    

    Dropstone akan membaca isu tersebut dan membalas dengan penjelasan yang jelas.

  • Perbaiki sebuah isu

    Di isu GitLab, katakan:

    @dropstone perbaiki ini
    

    Dropstone akan membuat cabang baru, mengimplementasikan perubahan, dan membuka permintaan penggabungan dengan perubahan tersebut.

  • Tinjau permintaan penggabungan

    Tinggalkan komentar berikut pada permintaan penggabungan GitLab.

    @dropstone tinjau permintaan penggabungan ini
    

    Dropstone akan meninjau permintaan penggabungan tersebut dan memberikan umpan balik.

Ctrl+I