GitLab
Verwenden Sie Dropstone in GitLab-Issues und Merge Requests.
Dropstone integriert sich über Ihre GitLab-CI/CD-Pipeline oder mit GitLab Duo in Ihren GitLab-Workflow.
In beiden Fällen läuft Dropstone auf Ihren GitLab-Runnern.
GitLab CI
Dropstone funktioniert in einer regulären GitLab-Pipeline. Sie können es als CI-Komponente in eine Pipeline einbauen.
Hier verwenden wir eine von der Community erstellte CI/CD-Komponente für Dropstone: nagyv/gitlab-dropstone.
Funktionen
- Individuelle 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. - Minimaler Einrichtungsaufwand: Die CI-Komponente richtet Dropstone im Hintergrund ein. Sie müssen nur die Dropstone-Konfiguration und den ersten Prompt erstellen.
- Flexibel: Die CI-Komponente unterstützt mehrere Eingaben zur Anpassung ihres Verhaltens.
Einrichtung
-
Speichern Sie Ihre Dropstone-Authentifizierungs-JSON als CI-Umgebungsvariable vom Typ Datei unter Einstellungen > CI/CD > Variablen. Stellen Sie sicher, dass Sie sie als „Maskiert und versteckt" 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 # Der Variablenname für Ihre Dropstone-Authentifizierungs-JSON command: optional-custom-command message: "Ihr Prompt hier"
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 innerhalb Ihrer GitLab-CI-Pipeline aus.
Funktionen
- 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 eine Funktion zu implementieren. Es erstellt einen neuen Branch und erstellt einen Merge Request mit den Änderungen.
- Sicher: Dropstone läuft auf Ihren GitLab-Runnern.
Einrichtung
Dropstone läuft in Ihrer GitLab-CI/CD-Pipeline. Hier ist, was Sie für die Einrichtung benötigen:
Tip
Schauen Sie sich die GitLab-Dokumentation für aktuelle Anweisungen an.
- Konfigurieren Sie Ihre GitLab-Umgebung
- Richten Sie CI/CD ein
- Holen Sie sich einen Dropstone-API-Schlüssel (siehe Schnellstart)
- 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
Detaillierte Anweisungen finden Sie in der GitLab Duo Agent Platform-Dokumentation.
Beispiele
Hier sind einige Beispiele, wie Sie Dropstone in GitLab verwenden können.
Tip
Sie können einen anderen Auslösebegriff als @dropstone konfigurieren.
-
Ein Issue erklären
Fügen Sie diesen Kommentar in einem GitLab-Issue hinzu.
@dropstone explain this issueDropstone liest das Issue und antwortet mit einer klaren Erklärung.
-
Ein Issue beheben
Sagen Sie in einem GitLab-Issue:
@dropstone fix thisDropstone erstellt einen neuen Branch, implementiert die Änderungen und öffnet einen Merge Request mit den Änderungen.
-
Merge Requests überprüfen
Hinterlassen Sie den folgenden Kommentar auf einem GitLab-Merge-Request.
@dropstone review this merge requestDropstone überprüft den Merge Request und gibt Feedback.