Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
121 lines
2.5 KiB
Markdown
121 lines
2.5 KiB
Markdown
# Merge Request Standards
|
|
|
|
## MR-Title: Conventional Commit Format (Pflicht)
|
|
|
|
```
|
|
feat(scope): kurze Beschreibung
|
|
fix(auth): Token-Refresh bei 401 Response
|
|
docs(arc42): Context-Diagramm ergänzen
|
|
```
|
|
|
|
## MR-Description: Markdown (Pflicht)
|
|
|
|
Jede MR braucht eine **ausführliche Beschreibung** in Markdown:
|
|
|
|
```markdown
|
|
## Zusammenfassung
|
|
|
|
Kurze Beschreibung was diese MR macht und warum.
|
|
|
|
## Änderungen
|
|
|
|
- Controller für `/api/users` mit CRUD-Operationen
|
|
- Service-Layer mit Validierung
|
|
- Integration-Tests mit Testcontainers
|
|
|
|
## Gelöste Issues
|
|
|
|
Closes #1, Closes #3
|
|
|
|
## Testergebnisse
|
|
|
|
- Unit-Tests: ✅ 12/12
|
|
- Integration-Tests: ✅ 4/4
|
|
- Coverage: 85%
|
|
|
|
## Screenshots / Beispiele
|
|
|
|
(Falls UI-Änderungen oder API-Responses)
|
|
```
|
|
|
|
## Assignee: Immer sich selbst
|
|
|
|
```bash
|
|
glab mr create \
|
|
--title "feat(users): implement CRUD REST API" \
|
|
--description "$(cat mr-description.md)" \
|
|
--assignee "@me" \
|
|
--remove-source-branch \
|
|
--fill
|
|
```
|
|
|
|
## Checkliste vor MR-Erstellung
|
|
|
|
- [ ] Alle Issues angelegt und referenziert
|
|
- [ ] Pipeline grün
|
|
- [ ] Tests geschrieben und bestanden
|
|
- [ ] Conventional Commit im Title
|
|
- [ ] Ausführliche Description in Markdown
|
|
- [ ] Assignee gesetzt (@me)
|
|
|
|
## Self-Review, Approve und Merge
|
|
|
|
Nach MR-Erstellung und grüner Pipeline:
|
|
|
|
### 1. Self-Review durchführen
|
|
|
|
```bash
|
|
# Diff des MR anschauen
|
|
glab mr diff
|
|
|
|
# Prüfpunkte:
|
|
# - Keine Debug-Code/TODOs vergessen?
|
|
# - Keine Secrets im Code?
|
|
# - Tests vollständig?
|
|
# - Doku aktuell?
|
|
# - Naming Conventions eingehalten?
|
|
```
|
|
|
|
### 2. Approve (wenn Review OK)
|
|
|
|
```bash
|
|
glab mr approve
|
|
```
|
|
|
|
### 3. Merge (wenn Pipeline grün + Review OK)
|
|
|
|
```bash
|
|
glab mr merge --when-pipeline-succeeds
|
|
```
|
|
|
|
### Bedingungen für Auto-Merge
|
|
|
|
Nur mergen wenn ALLE Bedingungen erfüllt:
|
|
- [ ] Pipeline ist grün (alle Jobs passed)
|
|
- [ ] Self-Review durchgeführt (keine Findings)
|
|
- [ ] Keine offenen Threads/Diskussionen
|
|
- [ ] Keine CRITICAL/HIGH Trivy-Findings
|
|
|
|
Wenn eine Bedingung NICHT erfüllt ist → NICHT mergen, stattdessen:
|
|
- Findings als Kommentar am MR dokumentieren
|
|
- Fixen wenn möglich
|
|
- Oder um Hilfe bitten (HELP:)
|
|
|
|
## Nach dem Merge: Main-Pipeline prüfen
|
|
|
|
Nach `glab mr merge` startet eine Pipeline auf main. Diese MUSS auch grün sein:
|
|
|
|
```bash
|
|
# Merge durchführen
|
|
glab mr merge --when-pipeline-succeeds
|
|
|
|
# Danach: Main-Pipeline überwachen
|
|
sleep 30
|
|
glab ci status # zeigt jetzt main-Pipeline
|
|
|
|
# Bei Fehler auf main: sofort fixen (neuer Branch, neuer MR)
|
|
```
|
|
|
|
Der Merge ist erst wirklich erfolgreich wenn die Main-Pipeline grün ist.
|
|
Wenn main failed → Issue anlegen, Fix-Branch erstellen, fixen, MR, mergen.
|