Gilt für OpenClaw v2026.2 | Erfordert die Installation der Skills
coding-agent,git-workflows,test-runnerund Zugriff auf Projekt-Repositories.
TL;DR: Code Review: Agent analysiert PR-Änderungen und erstellt Review-Bericht. Automatisierte Tests: "test-runner": {"frameworks": ["jest", "vitest"]}. CI/CD-Integration: Webhook empfängt GitHub/GitLab-Events. Multiprojekt-Verwaltung: "projects": {"frontend": {...}, "backend": {...}}. Kernbefehl: openclaw agent --message "Review diesen PR".
Praxisziel
Einen KI-Programmierassistenten aufbauen, der:
- Code Review automatisiert
- Tests ausführt und Ergebnisse meldet
- Code-Dokumentation generiert
- CI/CD-Pipelines integriert
- Zwischen mehreren Projekten wechselt
Erforderliche Skills installieren
# Programmier-Skills
openclaw skill install coding-agent
openclaw skill install debug-pro
openclaw skill install git-workflows
openclaw skill install docker-essentials
# Test-Skill
openclaw skill install test-runner
Automatisiertes Code Review
Code Review konfigurieren
---
name: code-review-assistant
version: 1.0.0
description: Automated code review with OpenClaw
triggers:
- code review
- Code-Review
- review
- PR review
---
# Code Review Assistant
Automate code review for pull requests.
## Features
- Review code changes
- Check for common issues
- Suggest improvements
- Generate review comments
## Review Checklist
1. **Code-Qualität**
- Namenskonventionen
- Code-Struktur
- Fehlerbehandlung
2. **Sicherheit**
- SQL Injection
- XSS-Schwachstellen
- Geheimnis-Offenlegung
3. **Performance**
- N+1-Abfragen
- Speicherlecks
- Ineffiziente Algorithmen
4. **Best Practices**
- DRY-Prinzip
- SOLID-Prinzipien
- Design Patterns
Code Review in der Praxis
Benutzer: Überprüfe diesen PR
Agent: Okay, lass mich PR #123 überprüfen...
[PR-Informationen abrufen]
[Code-Änderungen analysieren]
[Potenzielle Probleme prüfen]
## PR #123 Review-Bericht
### Überblick
- Branch: feature/user-search
- Änderungen: +156 -23
- Dateien: 8 Stück
### Gefundene Probleme
**Kritisch** (1):
- 🚨 `auth.js:45` - Risiko der Klartextspeicherung von Passwörtern
**Warnungen** (3):
- ⚠️ `search.js:23` - Potenzielle SQL Injection
- ⚠️ `user.js:78` - Nicht behandeltes Promise
- ⚠️ `utils.js:12` - Veraltete API
**Vorschläge** (5):
- 💡 Unit-Tests hinzufügen
- 💡 Konstanten statt Magic Numbers verwenden
- 💡 Error Boundaries hinzufügen
- 💡 Gemeinsame Methode extrahieren
- 💡 Typ-Annotationen hinzufügen
### Code-Highlights
- ✅ Gute Funktionsbenennung
- ✅ Sinnvolle Modulaufteilung
- ✅ Angemessene Kommentare
Soll ich Review-Kommentare generieren?
Automatisierte Tests
Test-Runner-Konfiguration
{
"skills": {
"test-runner": {
"frameworks": ["jest", "vitest", "pytest"],
"coverage": {
"enabled": true,
"threshold": 80
},
"reporting": {
"format": "markdown",
"output": "test-report.md"
}
}
}
}
Test-Szenario
Benutzer: Tests ausführen und Ergebnisse melden
Agent: Tests werden ausgeführt...
[Testbefehle ausführen]
[Testergebnisse sammeln]
[Abdeckung analysieren]
## Testbericht
### Testergebnisse
- Gesamt: 45 Tests
- Bestanden: 42 ✅
- Fehlgeschlagen: 2 ❌
- Übersprungen: 1 ⏭️
### Fehlgeschlagene Tests
**1. UserSearch.test.js**
AssertionError: expected [] to equal [{id: 1, name: ’test’}]
Vorschlag: Datenbankverbindung oder Mock-Daten prüfen
**2. Auth.test.js**
Timeout: Async callback not invoked within 5000ms
Vorschlag: Timeout erhöhen oder asynchrone Logik prüfen
### Abdeckung
| Datei | Anweisungen | Branches | Funktionen | Zeilen |
|-----|-----|-----|-----|-----|
| auth.js | 85 % | 78 % | 90 % | 85 % |
| search.js | 72 % | 65 % | 80 % | 70 % |
| user.js | 90 % | 85 % | 95 % | 90 % |
| **Gesamt** | **82 %** | **76 %** | **88 %** | **82 %** |
Soll ich die fehlgeschlagenen Tests beheben?
CI/CD-Integration
GitHub Actions-Integration
# .github/workflows/openclaw-review.yml
name: OpenClaw Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup OpenClaw
run: npm install -g openclaw@latest
- name: Run Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
openclaw agent --message "Review PR #${{ github.event.pull_request.number }}" \
--output review-comment.md
- name: Post Comment
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const comment = fs.readFileSync('review-comment.md', 'utf8');
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: comment
});
Automatisches Deployment
Benutzer: Auf Staging deployen
Agent: Deployment auf Staging-Umgebung wird gestartet...
[Neuesten Code pullen]
[Tests ausführen]
[Projekt bauen]
[Auf Server deployen]
## Deployment-Bericht
### Deployment-Informationen
- Umgebung: staging
- Branch: main
- Commit: abc1234
- Zeitpunkt: 2026-02-26 15:30
### Deployment-Schritte
1. ✅ Code gepullt
2. ✅ Abhängigkeiten installiert
3. ✅ Tests bestanden (45/45)
4. ✅ Projekt gebaut
5. ✅ Auf Server deployt
### Gesundheitsprüfung
- API: ✅ Normal
- Datenbank: ✅ Verbindung OK
- Redis: ✅ Verbindung OK
### Zugriffsadressen
- URL: https://staging.example.com
- API: https://api-staging.example.com
Deployment erfolgreich!
Multiprojekt-Verwaltung
Projektkonfiguration
{
"projects": {
"frontend": {
"path": "~/projects/frontend",
"skills": ["coding-agent", "test-runner"],
"context": "AGENTS.md"
},
"backend": {
"path": "~/projects/backend",
"skills": ["coding-agent", "docker-essentials"],
"context": "AGENTS.md"
},
"mobile": {
"path": "~/projects/mobile",
"skills": ["coding-agent"],
"context": "AGENTS.md"
}
}
}
Projektumschaltung
Benutzer: Zum Backend-Projekt wechseln
Agent: Zum Backend-Projekt gewechselt.
Aktuelle Projektinformationen:
- Name: backend
- Pfad: ~/projects/backend
- Technologie: Python/FastAPI
- Letzter Commit: Benutzerauthentifizierung hinzugefügt
Was kann ich für dich tun?
Code-Generierung
Boilerplate-Code generieren
Benutzer: CRUD-API für das User-Model erstellen
Agent: Okay, ich erstelle die CRUD-API für das User-Model...
[Bestehende Codestruktur analysieren]
[Code-Dateien generieren]
Folgende Dateien wurden generiert:
**1. models/user.py**
```python
from pydantic import BaseModel
from datetime import datetime
class User(BaseModel):
id: int
name: str
email: str
created_at: datetime
updated_at: datetime
class UserCreate(BaseModel):
name: str
email: str
class UserUpdate(BaseModel):
name: str | None = None
email: str | None = None
2. routers/users.py
from fastapi import APIRouter, HTTPException
from models.user import User, UserCreate, UserUpdate
router = APIRouter(prefix="/users", tags=["users"])
@router.get("/", response_model=list[User])
async def list_users(): ...
@router.get("/{user_id}", response_model=User)
async def get_user(user_id: int): ...
@router.post("/", response_model=User)
async def create_user(user: UserCreate): ...
@router.put("/{user_id}", response_model=User)
async def update_user(user_id: int, user: UserUpdate): ...
@router.delete("/{user_id}")
async def delete_user(user_id: int): ...
3. tests/test_users.py
from fastapi.testclient import TestClient
def test_list_users(): ...
def test_create_user(): ...
def test_update_user(): ...
def test_delete_user(): ...
Soll ich die Tests ausführen und validieren?
## Dokumentation generieren
### API-Dokumentation
Benutzer: Erstelle die API-Dokumentation
Agent: API-Endpunkte werden analysiert…
[Route-Dateien scannen] [API-Informationen extrahieren] [Dokumentation generieren]
API-Dokumentation
Benutzermodul
GET /users
Benutzerliste abrufen
Parameter
| Name | Typ | Pflicht | Beschreibung |
|---|---|---|---|
| page | int | Nein | Seitennummer |
| limit | int | Nein | Einträge pro Seite |
Antwort
{
"data": [User],
"total": int,
"page": int,
"limit": int
}
POST /users
Benutzer erstellen
Request Body
{
"name": "string",
"email": "string"
}
Antwort
{
"id": 1,
"name": "string",
"email": "string",
"created_at": "2026-02-26T00:00:00Z",
"updated_at": "2026-02-26T00:00:00Z"
}
Soll ich es unter docs/api.md speichern?
## Fehlerbehebung
### CI/CD-Probleme
```bash
# CI/CD-Status prüfen
openclaw ci status
# CI/CD-Logs anzeigen
openclaw ci logs --last
# Fehlgeschlagenen Job erneut ausführen
openclaw ci retry
Code-Probleme
# Code-Probleme analysieren
openclaw analyze --project backend
# Fix-Vorschläge generieren
openclaw suggest --file auth.js
Zusammenfassung
Mit OpenClaw als Programmierassistent:
- Code Review: Automatisiertes PR-Review
- Testausführung: Automatisierte Tests und Berichte
- CI/CD-Integration: Automatisierte Deployment-Pipelines
- Multiprojekt-Verwaltung: Schneller Kontextwechsel
- Code-Generierung: Boilerplate-Code generieren
- Dokumentation: API-Dokumentation automatisch generieren
Änderungsprotokoll:
- 2026-02-26: Erstveröffentlichung
Seriennavigation:
- ← Vorheriger Artikel: Praxis: Büroautomatisierungs-Assistenten aufbauen
- → Nächster Artikel: Praxis: Smart-Home-Steuerzentrale aufbauen