Dropstone Docs

GitLab

Gunakan Dropstone dalam masalah dan permintaan penggabungan GitLab.

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

Dalam kedua kasus, Dropstone akan berjalan di 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 yang dibuat komunitas untuk Dropstone: nagyv/gitlab-dropstone.


Fitur

  • Gunakan konfigurasi khusus per pekerjaan: Konfigurasikan Dropstone dengan direktori konfigurasi khusus, misalnya ./config/#custom-directory untuk mengaktifkan atau menonaktifkan fungsionalitas per invokasi 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 CI tipe File di bawah Settings > CI/CD > Variables. Pastikan untuk menandainya sebagai "Masked and hidden".

  2. Tambahkan berikut ini 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 # The variable name for your Dropstone authentication JSON
          command: optional-custom-command
          message: "Your prompt here"
    

Untuk input dan kasus penggunaan lainnya lihat dokumentasi untuk komponen ini.


GitLab Duo

Dropstone terintegrasi dengan alur kerja GitLab Anda. Sebutkan @dropstone dalam komentar, dan Dropstone akan menjalankan tugas dalam pipeline GitLab CI Anda.


Fitur

  • Triase masalah: Minta Dropstone untuk melihat masalah dan menjelaskannya kepada Anda.
  • Perbaiki dan implementasikan: Minta Dropstone untuk memperbaiki masalah atau mengimplementasikan fitur. Ini akan membuat cabang baru dan menaikkan permintaan penggabungan dengan perubahan.
  • Aman: Dropstone berjalan di runner GitLab Anda.

Pengaturan

Dropstone berjalan dalam pipeline GitLab CI/CD Anda, berikut yang Anda butuhkan untuk menyiapkannya:

Tip:

Lihat dokumentasi GitLab untuk instruksi terkini.

  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 "
    You are an AI assistant helping with GitLab operations.

    Context: $AI_FLOW_CONTEXT
    Task: $AI_FLOW_INPUT
    Event: $AI_FLOW_EVENT

    Please execute the requested task using the available GitLab tools.
    Be thorough in your analysis and provide clear explanations.

    Use the glab CLI to access data from GitLab. The glab CLI is already authenticated.

    If you are asked to summarize an MR or issue, or provide more information,
    post back a note to the MR/Issue so the user can see it.
    "
  - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
  - echo "Checking for git changes and pushing if any exist"
  - |
    if ! git diff --quiet || ! git diff --cached --quiet || [ -n "$(git ls-files --others --exclude-standard)" ]; then
      echo "Git changes detected, adding and pushing..."
      git add .
      if git diff --cached --quiet; then
        echo "No staged changes to commit"
      else
        echo "Committing changes to branch: $CI_WORKLOAD_REF"
        git commit --message "Dropstone changes"
        echo "Pushing changes up to $CI_WORKLOAD_REF"
        git push "https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/$CI_PROJECT_PATH.git" $CI_WORKLOAD_REF
        echo "Changes successfully pushed"
      fi
    else
      echo "No git changes detected, skipping 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 tentang cara Anda dapat menggunakan Dropstone di GitLab.

Tip:

Anda dapat mengonfigurasi frasa pemicu yang berbeda dari @dropstone.

  • Jelaskan masalah

    Tambahkan komentar ini dalam masalah GitLab.

    @dropstone explain this issue
    

    Dropstone akan membaca masalah dan membalas dengan penjelasan yang jelas.

  • Perbaiki masalah

    Dalam masalah GitLab, katakan:

    @dropstone fix this
    

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

  • Tinjau permintaan penggabungan

    Tinggalkan komentar berikut pada permintaan penggabungan GitLab.

    @dropstone review this merge request
    

    Dropstone akan meninjau permintaan penggabungan dan memberikan umpan balik.

Ctrl+I