Migrate all repos into monorepo context folders

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.
This commit is contained in:
2026-06-30 20:39:52 +02:00
parent 2f2b295531
commit a5f8fb49ab
1717 changed files with 447332 additions and 0 deletions
+152
View File
@@ -0,0 +1,152 @@
# Workflow
## Ablauf bei bestehendem Repo
1. Repo klonen (`git clone $REPO_URL`)
2. Feature-Branch erstellen (`git checkout -b $BRANCH`)
3. Implementieren
4. Tests schreiben und ausführen (80% Coverage)
5. gitleaks ausführen
6. Linting/Formatting anwenden
7. Commit mit Conventional Commits Message
8. Push auf Feature-Branch
9. Merge Request erstellen mit `glab mr create`
## Ablauf wenn Repo nicht existiert (neues Projekt)
1. Repo in GitLab anlegen mit `glab`:
```bash
glab repo create {repo-name} --group {group} --internal --description "{beschreibung}"
```
- GitLab Host: https://git.tech.rz.db.de
- Gruppe kommt aus REPO_URL oder aus der Aufgabe (z.B. "GitLab Group: ${ART_NAME}/playground")
2. Lokal initialisieren auf **main** Branch:
```bash
mkdir project && cd project
git init
git remote add origin https://git.tech.rz.db.de/{group}/{project}.git
git checkout -b main
```
3. **Pflichtdateien zuerst** (siehe project-setup.md):
- README.md (mit Projektbeschreibung, Quickstart, Build/Test Anleitung)
- LICENSE.adoc
- scm-info.yaml
- .gitignore
- .gitlab-ci.yml
4. Implementieren, testen, linten
5. Erster Commit + Push auf **main**:
```bash
git add -A
git commit -m "feat: initial project setup"
git push -u origin main
```
6. Falls Feature-Branch gewünscht ($BRANCH gesetzt und != main):
```bash
git checkout -b $BRANCH
# weitere Implementierung
git add -A
git commit -m "feat: ..."
git push -u origin $BRANCH
glab mr create --fill --target-branch main
```
## Git-Konfiguration
Die Git-Credentials sind bereits konfiguriert (über Env-Variablen im Pod).
Nutze `git` und `glab` CLI direkt.
```bash
# Repo anlegen
glab repo create myproject --group ${ART_NAME}/playground --internal
# Push
git push -u origin main
# MR erstellen
glab mr create --fill --target-branch main
```
## Wichtig
- Neue Repos: IMMER auf **main** Branch initial committen
- IMMER README.md mit Beschreibung anlegen
- IMMER pushen am Ende Code der nur lokal liegt ist wertlos
- IMMER Merge Request erstellen wenn auf Feature-Branch
- Repo-URL und Branch kommen als Env-Variablen: $REPO_URL, $BRANCH
- GitLab Host ist IMMER: https://git.tech.rz.db.de
## Projektnamen
- Saubere, sprechende Namen verwenden (z.B. `hello-spring-boot`, `user-service`)
- KEINE Session-IDs, Job-IDs oder UUIDs im Projektnamen
- KEINE Suffixe wie `-4b98bbd1` oder `-abc123`
- Kebab-Case: `mein-projekt-name`
- Wenn repo_url angegeben: Projektnamen daraus ableiten
- Wenn nur gitlab_group angegeben: Projektnamen aus der Aufgabe ableiten
## Namenskorrektur
Falls die übergebene `repo_url` oder der Projektname eine Session-ID, Job-ID oder UUID enthält (z.B. `hello-spring-4b98bbd1`, `my-app-abc4a303`):
- Den Suffix entfernen
- Nur den sauberen Projektnamen verwenden
- Beispiel: `hello-world-spring-boot-4b98bbd1` → `hello-world-spring-boot`
## Abschluss: Badges und Fertigmeldung
### GitLab Projekt-Badges anlegen
Erst prüfen ob Badges schon existieren, dann nur fehlende anlegen:
```bash
# Bestehende Badges prüfen
EXISTING=$(glab api "projects/:id/badges" | python3 -c "import sys,json; print([b["name"] for b in json.load(sys.stdin)])")
# Pipeline Badge (wenn nicht vorhanden)
if ! echo "$EXISTING" | grep -q "Pipeline"; then
glab api -X POST "projects/:id/badges" -f "link_url=https://git.tech.rz.db.de/%{project_path}/-/pipelines" -f "image_url=https://git.tech.rz.db.de/%{project_path}/badges/%{default_branch}/pipeline.svg" -f "name=Pipeline"
fi
# Coverage Badge
if ! echo "$EXISTING" | grep -q "Coverage"; then
glab api -X POST "projects/:id/badges" -f "link_url=https://git.tech.rz.db.de/%{project_path}/-/pipelines" -f "image_url=https://git.tech.rz.db.de/%{project_path}/badges/%{default_branch}/coverage.svg" -f "name=Coverage"
fi
# Web-Endpoint / Landing-Page Badge (wenn deployed)
if ! echo "$EXISTING" | grep -q "App"; then
glab api -X POST "projects/:id/badges" -f "link_url=https://{app-name}-{namespace}.${ART_NAME}-iat.cnp-test.comp.db.de" -f "image_url=https://img.shields.io/badge/App-live-green" -f "name=App"
fi
```
Regeln:
- Keine doppelten Badges anlegen (erst prüfen)
- Jeder Web-Endpoint/Landing-Page bekommt ein Badge mit der URL
- Preview-Umgebung: Badge mit Preview-URL
- Prod-Umgebung: Badge mit Prod-URL
### Fertigmeldung
Wenn alles abgeschlossen ist:
```bash
echo "PROGRESS: 100% - Fertig: MR erstellt, Pipeline grün, Badges gesetzt"
```
## Aufgabe abschließen
Wenn alles fertig ist (MR gemerged, Main-Pipeline grün, Issues geschlossen):
```bash
echo "PROGRESS: 100% - Aufgabe abgeschlossen: MR gemerged, Pipeline grün, Issues geschlossen"
```
Erst PROGRESS 100% melden wenn:
- [ ] Alle Issues geschlossen
- [ ] MR gemerged
- [ ] Main-Pipeline grün
- [ ] Keine offenen Findings
Wenn Main-Pipeline failed → NICHT 100% melden, sondern fixen.