Dropstone Docs

GitLab

Используйте Dropstone в проблемах и запросах слияния GitLab.

Dropstone интегрируется с вашим рабочим процессом GitLab через конвейер GitLab CI/CD или с GitLab Duo.

В обоих случаях Dropstone будет работать на ваших GitLab runners.


GitLab CI

Dropstone работает в обычном конвейере GitLab. Вы можете встроить его в конвейер как CI компонент

Здесь мы используем созданный сообществом CI/CD компонент для Dropstone: nagyv/gitlab-dropstone.


Возможности

  • Используйте пользовательскую конфигурацию для каждого задания: Настройте Dropstone с помощью пользовательского каталога конфигурации, например ./config/#custom-directory, чтобы включить или отключить функциональность для каждого вызова Dropstone.
  • Минимальная настройка: CI компонент настраивает Dropstone в фоновом режиме, вам нужно только создать конфигурацию Dropstone и начальное приглашение.
  • Гибкость: CI компонент поддерживает несколько входных параметров для настройки его поведения

Настройка

  1. Сохраните ваш JSON аутентификации Dropstone как переменную CI типа File в разделе Settings > CI/CD > Variables. Убедитесь, что отметили их как "Masked and hidden".

  2. Добавьте следующее в ваш файл .gitlab-ci.yml.

    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"
    

Для получения дополнительной информации о входных параметрах и вариантах использования ознакомьтесь с документацией этого компонента.


GitLab Duo

Dropstone интегрируется с вашим рабочим процессом GitLab. Упомяните @dropstone в комментарии, и Dropstone будет выполнять задачи в вашем конвейере GitLab CI.


Возможности

  • Сортировка проблем: Попросите Dropstone разобраться в проблеме и объяснить её вам.
  • Исправление и реализация: Попросите Dropstone исправить проблему или реализовать функцию. Он создаст новую ветку и откроет запрос слияния с изменениями.
  • Безопасность: Dropstone работает на ваших GitLab runners.

Настройка

Dropstone работает в вашем конвейере GitLab CI/CD, вот что вам нужно для его настройки:

Совет:

Ознакомьтесь с документацией GitLab для получения актуальных инструкций.

  1. Настройте вашу среду GitLab
  2. Установите CI/CD
  3. Получите ключ API Dropstone (см. Быстрый старт)
  4. Создайте учетную запись сервиса
  5. Настройте переменные CI/CD
  6. Создайте файл конфигурации потока. Пример:
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

Вы можете обратиться к документации GitLab Duo Agent Platform для получения подробных инструкций.


Примеры

Вот несколько примеров того, как вы можете использовать Dropstone в GitLab.

Совет:

Вы можете настроить другую фразу триггера вместо @dropstone.

  • Объясните проблему

    Добавьте этот комментарий в проблему GitLab.

    @dropstone explain this issue
    

    Dropstone прочитает проблему и ответит с четким объяснением.

  • Исправьте проблему

    В проблеме GitLab скажите:

    @dropstone fix this
    

    Dropstone создаст новую ветку, реализует изменения и откроет запрос слияния с изменениями.

  • Проверьте запросы слияния

    Оставьте следующий комментарий на запросе слияния GitLab.

    @dropstone review this merge request
    

    Dropstone проверит запрос слияния и предоставит обратную связь.

Ctrl+I