ADR-027: Bidirectional Sync Strategy¶
Status¶
โ Accepted - Implemented 2026-05-25
Context¶
CLARISSA wird primรคr auf GitLab entwickelt (CI/CD, Runner-Infrastruktur, Issues), soll aber auch auf GitHub sichtbar sein fรผr: - Open Source Visibility - Community Contributions - Academic Citations
Decision¶
GitLab als Primary, GitHub als Mirror mit bidirektionalem Sync:
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ GitLab โ โโโโโโโบ โ GitHub โ
โ (Primary) โ auto โ (Mirror) โ
โ โ push โ โ
โ CI/CD โ โ Visibility โ
โ Runners โ โโโโโโโ โ PRs โ
โ Issues โ manual โ Community โ
โโโโโโโโโโโโโโโ pull โโโโโโโโโโโโโโโ
Sync-Jobs¶
| Job | Trigger | Richtung |
|---|---|---|
github-push |
auto (main) | GitLab โ GitHub |
github-pull |
manual | GitHub โ GitLab |
github-status |
manual | Status Check |
Konflikt-Strategie¶
- GitLab wins: Bei Konflikten ist GitLab die Source of Truth
--force-with-lease: Sicheres Force-Push mit Schutz vor Race Conditions- Externe PRs auf GitHub werden manuell nach GitLab gezogen
Alternatives Considered¶
- GitLab Push Mirror (Settings)
- Pro: Einfach, automatisch
-
Con: Nur unidirektional, keine Kontrolle
-
GitHub Actions โ GitLab
- Pro: Bidirektional
-
Con: Doppelte CI-Infrastruktur
-
Externes Tool (git-sync, repo-sync)
- Pro: Feature-reich
- Con: Zusรคtzliche Dependency
Consequences¶
Positive¶
- Volle Kontrolle รผber Sync-Zeitpunkt und -Richtung
- Nutzt bestehende Runner-Infrastruktur
- Auditierbar in CI/CD Logs
- Flexibel erweiterbar
Negative¶
- Manueller Schritt fรผr GitHubโGitLab
- GITHUB_TOKEN muss gepflegt werden
Implementation¶
- Pipeline:
.gitlab/github-sync.yml - Issue: #157
- Variable:
GITHUB_TOKEN(Gruppen-Ebene, masked)
Last updated: 2026-05-25