GitLab
Verwenden Sie Dropstone in GitLab-Issues und Merge Requests.
Dropstone integriert sich in Ihren GitLab-Workflow über Ihre GitLab CI/CD-Pipeline oder mit GitLab Duo.
In beiden Fällen wird Dropstone auf Ihren GitLab-Runnern ausgeführt.
GitLab CI
Dropstone funktioniert in einer regulären GitLab-Pipeline. Sie können es als CI-Komponente in eine Pipeline integrieren.
Hier verwenden wir eine von der Community erstellte CI/CD-Komponente für Dropstone: nagyv/gitlab-dropstone.
Features
- Benutzerdefinierte Konfiguration pro Job: Konfigurieren Sie Dropstone mit einem benutzerdefinierten Konfigurationsverzeichnis, z. B.
./config/#custom-directory, um Funktionen pro Dropstone-Aufruf zu aktivieren oder zu deaktivieren. - Minimales Setup: Die CI-Komponente richtet Dropstone im Hintergrund ein, Sie müssen nur die Dropstone-Konfiguration und die anfängliche Eingabeaufforderung erstellen.
- Flexibel: Die CI-Komponente unterstützt mehrere Eingaben zum Anpassen ihres Verhaltens.
Setup
-
Speichern Sie Ihre Dropstone-Authentifizierungs-JSON als Dateityp-CI-Umgebungsvariable unter Settings > CI/CD > Variables. Stellen Sie sicher, dass Sie sie als „Masked and hidden" markieren.
-
Fügen Sie Folgendes zu Ihrer
.gitlab-ci.yml-Datei hinzu.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"
Weitere Eingaben und Anwendungsfälle finden Sie in der Dokumentation für diese Komponente.
GitLab Duo
Dropstone integriert sich in Ihren GitLab-Workflow.
Erwähnen Sie @dropstone in einem Kommentar, und Dropstone führt Aufgaben in Ihrer GitLab CI-Pipeline aus.
Features
- Issues triagieren: Bitten Sie Dropstone, ein Issue zu untersuchen und es Ihnen zu erklären.
- Beheben und implementieren: Bitten Sie Dropstone, ein Issue zu beheben oder ein Feature zu implementieren. Es wird einen neuen Branch erstellen und einen Merge Request mit den Änderungen öffnen.
- Sicher: Dropstone wird auf Ihren GitLab-Runnern ausgeführt.
Setup
Dropstone wird in Ihrer GitLab CI/CD-Pipeline ausgeführt. Hier ist das, was Sie zum Einrichten benötigen:
Tip:
Schauen Sie sich die GitLab-Dokumentation für aktuelle Anweisungen an.
- Konfigurieren Sie Ihre GitLab-Umgebung
- Richten Sie CI/CD ein
- Rufen Sie einen Dropstone API-Schlüssel ab (siehe Quickstart)
- Erstellen Sie ein Dienstkonto
- Konfigurieren Sie CI/CD-Variablen
- Erstellen Sie eine Flow-Konfigurationsdatei. Beispiel:
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
Sie können sich auf die GitLab Duo Agent Platform-Dokumentation für detaillierte Anweisungen beziehen.
Beispiele
Hier sind einige Beispiele, wie Sie Dropstone in GitLab verwenden können.
Tip:
Sie können eine andere Trigger-Phrase als @dropstone konfigurieren.
-
Ein Issue erklären
Fügen Sie diesen Kommentar in einem GitLab-Issue hinzu.
@dropstone explain this issueDropstone wird das Issue lesen und mit einer klaren Erklärung antworten.
-
Ein Issue beheben
Sagen Sie in einem GitLab-Issue:
@dropstone fix thisDropstone wird einen neuen Branch erstellen, die Änderungen implementieren und einen Merge Request mit den Änderungen öffnen.
-
Merge Requests überprüfen
Hinterlassen Sie den folgenden Kommentar in einem GitLab Merge Request.
@dropstone review this merge requestDropstone wird den Merge Request überprüfen und Feedback geben.