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:
@@ -0,0 +1,117 @@
|
||||
---
|
||||
name: scm-info-setup
|
||||
description: >
|
||||
Erstellt und validiert die scm-info.yaml für DB-GitLab-Repos.
|
||||
Stellt sicher, dass die Datei schema-konform ist und alle Pflichtfelder
|
||||
(version, license, contacts, confidentiality, reference-ids) korrekt gesetzt sind.
|
||||
Keywords: scm-info, scm-info.yaml, compliance, beam-id, DBISL, license, reference-ids.
|
||||
compatibility: >
|
||||
Jedes Projekt im DB-GitLab (git.tech.rz.db.de). Keine speziellen Tools nötig.
|
||||
metadata:
|
||||
version: "1.0.0"
|
||||
author: "#Einfachbahn Lab"
|
||||
---
|
||||
|
||||
# scm-info.yaml erstellen und validieren
|
||||
|
||||
Skill für die korrekte Erstellung der Pflichtdatei `scm-info.yaml` in DB-GitLab-Repos.
|
||||
|
||||
## Warum?
|
||||
|
||||
Die `scm-info.yaml` ist **Pflicht** für jedes Repo im DB-GitLab:
|
||||
- Verknüpft das Repo mit Beam/LeanIX (Anwendungskontext)
|
||||
- Ermöglicht VMP-Export von Security-Findings (nur mit gültiger Beam-ID)
|
||||
- Liefert Kontaktdaten für automatische Container-Annotations
|
||||
- Wird von der DXP Compliance Suite geprüft — fehlt sie, entstehen Findings
|
||||
|
||||
## Harte Regeln (MUST)
|
||||
|
||||
1. **Dateiendung `.yaml`** — `.yml` wird NICHT akzeptiert
|
||||
2. **Liegt im Repo-Root** — nicht in Unterordnern
|
||||
3. **Schema-valide** — wird gegen das scm-info JSON Schema geprüft
|
||||
4. **`reference-ids` muss gesetzt sein** — echte Beam-ID oder `none`
|
||||
|
||||
## Ablauf
|
||||
|
||||
### Schritt 1: Informationen ermitteln
|
||||
|
||||
1. **Beam-/Referenz-ID** — Aus LeanIX/Beam ermitteln (Format: `A-123456`). Falls unbekannt: `none`
|
||||
2. **Kontakt-E-Mail** — Team oder Person (wird Container-Annotation `GA_CONTACT`)
|
||||
3. **Lizenz** — Fast immer `LicenseRef-DBISL` (DB-intern). Open Source: passende Lizenz
|
||||
4. **Vertraulichkeitsstufe** — `internal` (Standard), `public`, `confidential`
|
||||
|
||||
### Schritt 2: Datei erstellen
|
||||
|
||||
### Minimal-Template
|
||||
```yaml
|
||||
---
|
||||
version: v3
|
||||
license: LicenseRef-DBISL
|
||||
contacts: team@deutschebahn.com
|
||||
confidentiality: internal
|
||||
reference-ids: none
|
||||
```
|
||||
|
||||
### Erweitert (mit Beam-ID und Custom-Feldern)
|
||||
```yaml
|
||||
---
|
||||
version: v3
|
||||
license: LicenseRef-DBISL
|
||||
contacts: team@deutschebahn.com
|
||||
confidentiality: internal
|
||||
reference-ids: A-123456
|
||||
custom:
|
||||
production-branch: main
|
||||
integrity: normal
|
||||
availability: normal
|
||||
confidentiality: normal
|
||||
it-service-id: itaps-service-id-1
|
||||
```
|
||||
|
||||
### Schritt 3: Validierung
|
||||
|
||||
Prüfe nach Erstellung:
|
||||
- [ ] Datei heißt `scm-info.yaml` (nicht `.yml`!)
|
||||
- [ ] Liegt im Repo-Root
|
||||
- [ ] `version: v3` gesetzt
|
||||
- [ ] `license` ist gültig (`LicenseRef-DBISL` oder Open-Source-Lizenz)
|
||||
- [ ] `contacts` enthält gültige E-Mail-Adresse
|
||||
- [ ] `confidentiality` ist einer von: `public`, `internal`, `confidential`
|
||||
- [ ] `reference-ids` gesetzt (Beam-ID oder `none`)
|
||||
|
||||
## Felder-Referenz
|
||||
|
||||
| Feld | Pflicht | Werte | Hinweis |
|
||||
|------|---------|-------|---------|
|
||||
| `version` | ✅ | `v3` | Schema-Version |
|
||||
| `license` | ✅ | `LicenseRef-DBISL`, `Apache-2.0`, `MIT`, ... | Lizenzkompass beachten |
|
||||
| `contacts` | ✅ | E-Mail-Adresse(n) | Wird Container-Annotation |
|
||||
| `confidentiality` | ✅ | `public`, `internal`, `confidential` | Repo-Sichtbarkeit anpassen |
|
||||
| `reference-ids` | ✅ | Beam-ID (`A-123456`) oder `none` | Ohne ID kein VMP-Export |
|
||||
| `custom.production-branch` | ❌ | Branch-Name | Für pipeship |
|
||||
| `custom.integrity` | ❌ | `normal`, `high`, `very_high` | Schutzbedarf |
|
||||
| `custom.availability` | ❌ | `normal`, `high`, `very_high` | Schutzbedarf |
|
||||
| `custom.it-service-id` | ❌ | ITAPS-ID | Service-Zuordnung |
|
||||
|
||||
## Häufige Fehler
|
||||
|
||||
| Fehler | Finding | Lösung |
|
||||
|--------|---------|--------|
|
||||
| Datei heißt `scm-info.yml` | „scm-info invalid" | Umbenennen zu `.yaml` |
|
||||
| `reference-ids` fehlt | „scm-info invalid" | Feld ergänzen (auch `none` ist valide) |
|
||||
| Keine `contacts` | Schema-Fehler | Gültige E-Mail eintragen |
|
||||
| YAML-Syntaxfehler | „scm-info invalid" | YAML-Linting prüfen |
|
||||
| VMP-Export geht nicht | — | Echte Beam-ID statt `none` eintragen |
|
||||
|
||||
## Zusammenspiel mit pipeship
|
||||
|
||||
Wenn pipeship aktiv ist, werden aus `scm-info.yaml` automatisch:
|
||||
- **`GA_REFERENCE_ID`** ← `reference-ids` (Container-Annotation)
|
||||
- **`GA_CONTACT`** ← `contacts` (Container-Annotation)
|
||||
- Compliance Suite prüft zusätzlich: Protected Branches, README, LICENSE
|
||||
|
||||
## Weiterführend
|
||||
|
||||
- Schema: `git.tech.rz.db.de/db-inner-source/scm-info-json-schema`
|
||||
- Schnellstart: Developer-Portal-Template `init-app-general` (legt scm-info + README + LICENSE an)
|
||||
- Compliance-Findings: https://dp.dxc.comp.db.de/compliance/repositories
|
||||
Reference in New Issue
Block a user