GitLab
Verwenden Sie OpenCode in GitLab-Issues und Merge Requests.
OpenCode integriert sich in Ihren GitLab-Workflow über Ihre GitLab CI/CD-Pipeline oder mit GitLab Duo.
In beiden Fällen wird OpenCode auf Ihren GitLab-Runnern ausgeführt.
GitLab CI
OpenCode funktioniert in einer regulären GitLab-Pipeline. Sie können es als CI-Komponente (opens in a new tab) in eine Pipeline einbinden.
Hier verwenden wir eine von der Community erstellte CI/CD-Komponente für OpenCode — nagyv/gitlab-opencode (opens in a new tab).
Funktionen
- Benutzerdefinierte Konfiguration pro Job verwenden : Konfigurieren Sie OpenCode mit einem benutzerdefinierten Konfigurationsverzeichnis, zum Beispiel
./config/#custom-directory, um Funktionalität pro OpenCode-Aufruf zu aktivieren oder zu deaktivieren. - Minimale Einrichtung : Die CI-Komponente richtet OpenCode im Hintergrund ein; Sie müssen nur die OpenCode-Konfiguration und den initialen Prompt erstellen.
- Flexibel : Die CI-Komponente unterstützt mehrere Eingaben zur Anpassung ihres Verhaltens
Einrichtung
-
Speichern Sie Ihre OpenCode-Authentifizierungs-JSON als CI-Umgebungsvariable vom Typ File 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..gitlab-ci.ymlinclude: - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2 inputs: config_dir: ${CI_PROJECT_DIR}/opencode-config auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON command: optional-custom-command message: "Your prompt here"
Für weitere Eingaben und Anwendungsfälle sehen Sie sich die Dokumentation an (opens in a new tab) für diese Komponente.
GitLab Duo
OpenCode integriert sich in Ihren GitLab-Workflow.
Erwähnen Sie @opencode in einem Kommentar, und OpenCode führt Aufgaben innerhalb Ihrer GitLab CI-Pipeline aus.
Funktionen
- Issues triagieren : Bitten Sie OpenCode, ein Issue zu untersuchen und es Ihnen zu erklären.
- Beheben und implementieren : Bitten Sie OpenCode, ein Issue zu beheben oder eine Funktion zu implementieren. Es erstellt einen neuen Branch und eröffnet einen Merge Request mit den Änderungen.
- Sicher : OpenCode wird auf Ihren GitLab-Runnern ausgeführt.
Einrichtung
OpenCode wird in Ihrer GitLab CI/CD-Pipeline ausgeführt; hier ist, was Sie zur Einrichtung benötigen:
Tipp: Sehen Sie sich die GitLab-Dokumentation (opens in a new tab) für aktuelle Anweisungen an.
-
Konfigurieren Sie Ihre GitLab-Umgebung
-
Richten Sie CI/CD ein
-
Beschaffen Sie sich einen API-Schlüssel eines KI-Modell-Providers
-
Erstellen Sie ein Service-Konto
-
Konfigurieren Sie CI/CD-Variablen
-
Erstellen Sie eine Flow-Konfigurationsdatei, hier ein Beispiel:
Flow-Konfiguration
image: node:22-slim commands: - echo "Installing opencode" - npm install --global opencode-ai - echo "Installing glab" - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE - 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 OpenCode auth configuration" - mkdir --parents ~/.local/share/opencode - | cat > ~/.local/share/opencode/auth.json << EOF { "anthropic": { "type": "api", "key": "$ANTHROPIC_API_KEY" } } EOF - echo "Configuring git" - git config --global user.email "[email protected]" - git config --global user.name "OpenCode" - echo "Testing glab" - glab issue list - echo "Running OpenCode" - | opencode 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. <important> Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands. If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it. You don't need to commit or push up changes, those will be done automatically based on the file changes you make. </important> " - 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 || [ --not --zero "$(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 "Codex changes" echo "Pushing changes up to $CI_WORKLOAD_REF" git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF echo "Changes successfully pushed" fi else echo "No git changes detected, skipping push" fi variables: - ANTHROPIC_API_KEY - GITLAB_TOKEN_OPENCODE - GITLAB_HOST
Detaillierte Anweisungen finden Sie in der GitLab CLI-Agenten-Dokumentation (opens in a new tab).
Beispiele
Hier sind einige Beispiele, wie Sie OpenCode in GitLab verwenden können.
Tipp: Sie können auch eine andere Auslöse-Phrase als
@opencodekonfigurieren.
-
Ein Issue erklären Fügen Sie diesen Kommentar in einem GitLab-Issue hinzu.
@opencode explain this issueOpenCode liest das Issue und antwortet mit einer klaren Erklärung.
-
Ein Issue beheben Sagen Sie in einem GitLab-Issue:
@opencode fix thisOpenCode erstellt einen neuen Branch, implementiert die Änderungen und eröffnet einen Merge Request mit den Änderungen.
-
Merge Requests prüfen Hinterlassen Sie den folgenden Kommentar in einem GitLab-Merge-Request.
@opencode review this merge requestOpenCode prüft den Merge Request und gibt Feedback.