# 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.