feat(remote): repo-add bereitet ein weiteres Repository für die Registry vor
`tools/remote` konnte genau ein beobachtetes Repository einrichten (`repo-init`, fest auf $WERKATOR_PATH/werkator). Für eine Instanz, die eine Registry bedient (ADR 0009), fehlte der Weg, ein zweites hinzuzunehmen — und das braucht der Rollout unabhängig davon, welche Repositories es am Ende sind. `repo-add <url> [name]` klont daneben, führt `init` darin aus und PRÜFT, ob die Registry den Pfad schon nennt — geschrieben wird sie nicht. `~/.werkator.yml` ist die Datei der Instanz: Port, globale Nebenläufigkeit, womöglich geteilte Zugangsdaten. Ein Skript, das sie in place umschreibt, verändert die Konfiguration des Betreibers hinter dessen Rücken. Klonen und Initialisieren ist mechanisch, Registrieren ist eine Entscheidung — also druckt es den Eintrag und sagt, dass die Registry beim Start gelesen wird. Der Name muss ein Pfadsegment sein: Er wird das Routen-Segment /repos/<name>. docs/deployment.md verweist im Registry-Abschnitt darauf. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
80a14a7467
commit
c1629cace3
@@ -114,6 +114,16 @@ Adding a repository is editing a registry entry — never a data migration, beca
|
||||
The name is the route segment (`/repos/<name>/…`) and the UI's switcher entry, so it must be unique: a duplicate aborts the start naming this file, and so does an entry that is no git repository.
|
||||
A repository whose configuration Werkator must not read (a version violation) is skipped with an error — the others keep building.
|
||||
|
||||
Steps 1 and 2 are mechanical and can be done from the workstation:
|
||||
|
||||
```bash
|
||||
tools/remote --env-file .env.<instance> werkator repo-add https://github.com/<owner>/<repo>.git [<name>]
|
||||
```
|
||||
|
||||
It clones the repository next to the ones already served, runs `init` in it, and **prints** the registry entry.
|
||||
It does not write `~/.werkator.yml`: that file is the instance's own — port, global concurrency, possibly shared credentials — and a script editing it in place would rewrite the operator's configuration behind their back.
|
||||
Cloning and initialising is mechanical; registering is a decision.
|
||||
|
||||
4. **Restart** the service; startup recovery re-enqueues what was in flight:
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user