feat: support one Gitea organization per series

This commit is contained in:
2026-07-19 16:40:05 +02:00
parent 4dda6de387
commit b0548f0e56
6 changed files with 388 additions and 58 deletions
+30 -6
View File
@@ -13,22 +13,34 @@ Implementacja CLI znajduje się w `rvctl.py`. Plik `workspace.json` przechowuje
lokalne ścieżki workspace, series, socketów, tokenów i adres publicznego
manifestu.
Publiczny manifest wspólnego workspace jest w repo:
Publiczny manifest wspólnego workspace jest częścią control plane w
organizacji `edu`. Katalog jest źródłem prawdy dla narzędzi i interfejsu;
lista organizacji widoczna w Gitea pozostaje widokiem administracyjnym.
Model własności:
```text
edu-workspace/workspace-info
edu
└── workspace-info control plane i katalog
edu-inf seria legacy
edu-fiz seria
edu-freertos-c seria
├── lab-rv32i-freertos-heap4 jedna karta = jedno repo
├── lab-rv32i-freertos-c-first-task
└── ...
```
Lokalna kopia manifestu znajduje się w:
```text
~/dev/workspace/rv/meta/workspace-info
~/dev/workspace/stem/meta/workspace-info
```
Typowy układ:
```text
~/dev/workspace/rv
~/dev/workspace/stem
├── meta
│ └── workspace-info
├── tools
@@ -38,8 +50,20 @@ Typowy układ:
└── series
```
`workspace-info` opisuje serie, karty, repo źródłowe, repo odpowiedzi i branche.
Nie przechowuje tokenów ani lokalnych plików roboczych ucznia.
`workspace-info` opisuje rejestr organizacji, operacyjne serie, karty, repo
źródłowe, repo odpowiedzi i branche. Każda seria musi jawnie podać
`source_org`; globalne `git.source_org` nie zastępuje tej deklaracji.
`workspace-info` nie przechowuje tokenów ani lokalnych plików roboczych ucznia.
Sprawdzenie spójności bez połączenia z Gitea:
```bash
./stemctl workspace audit
```
Audyt wykrywa brak organizacji, brak jawnego `source_org`, niespójne
przypisanie seriaorganizacja oraz zduplikowane identyfikatory kart i repo.
Ostrzeżenie o wspólnym `workspace_dir` jest dopuszczalne podczas migracji.
Aktualizacja manifestu: