GitLab
Используйте Dropstone в задачах и merge request'ах GitLab.
Dropstone интегрируется с вашим рабочим процессом GitLab через конвейер GitLab CI/CD или с помощью GitLab Duo.
В обоих случаях Dropstone будет работать на ваших раннерах GitLab.
GitLab CI
Dropstone работает в обычном конвейере GitLab. Вы можете встроить его в конвейер как компонент CI.
Здесь мы используем компонент CI/CD для Dropstone, созданный сообществом: nagyv/gitlab-dropstone.
Возможности
- Индивидуальная конфигурация для каждой задачи: Настройте Dropstone с помощью пользовательского каталога конфигурации, например
./config/#custom-directory, чтобы включать или отключать функциональность для каждого вызова Dropstone. - Минимальная настройка: Компонент CI настраивает Dropstone в фоновом режиме, вам нужно только создать конфигурацию Dropstone и начальный промпт.
- Гибкость: Компонент CI поддерживает несколько входных параметров для настройки его поведения.
Настройка
-
Сохраните ваш JSON-файл аутентификации Dropstone как переменную окружения CI типа File в разделе Settings > CI/CD > Variables. Убедитесь, что они помечены как "Masked and hidden".
-
Добавьте следующее в ваш файл
.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 # Имя переменной для вашего JSON-файла аутентификации Dropstone command: optional-custom-command message: "Ваш промпт здесь"
Для получения дополнительных входных параметров и примеров использования ознакомьтесь с документацией этого компонента.
GitLab Duo
Dropstone интегрируется с вашим рабочим процессом GitLab.
Упомяните @dropstone в комментарии, и Dropstone выполнит задачи в вашем конвейере GitLab CI.
Возможности
- Триаж задач: Попросите Dropstone изучить задачу и объяснить её вам.
- Исправление и реализация: Попросите Dropstone исправить задачу или реализовать функцию. Он создаст новую ветку и откроет merge request с изменениями.
- Безопасность: Dropstone работает на ваших раннерах GitLab.
Настройка
Dropstone работает в вашем конвейере GitLab CI/CD. Вот что вам понадобится для его настройки:
Tip
Ознакомьтесь с документацией GitLab для актуальных инструкций.
- Настройте ваше окружение GitLab
- Настройте CI/CD
- Получите API-ключ Dropstone (см. Quickstart)
- Создайте сервисный аккаунт
- Настройте переменные CI/CD
- Создайте файл конфигурации потока. Пример:
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.
Tip
Вы можете настроить другую триггерную фразу вместо @dropstone.
-
Объяснение задачи
Добавьте этот комментарий в задачу GitLab.
@dropstone explain this issueDropstone прочитает задачу и ответит понятным объяснением.
-
Исправление задачи
В задаче GitLab напишите:
@dropstone fix thisDropstone создаст новую ветку, реализует изменения и откроет merge request с изменениями.
-
Ревью merge request'ов
Оставьте следующий комментарий на merge request в GitLab.
@dropstone review this merge requestDropstone проведёт ревью merge request'а и предоставит обратную связь.