feat(ui): Repositories im Git-Panel verwalten

Eine Leiste mit allen Repositories des Projekts, sobald es mehr als eines
gibt - bei einem einzigen waere eine Leiste mit genau einem Knopf nur
Ballast. Jedes hat eigene Kennzahlen, Listen, CI und eigenen Abgleich.

Verknuepfen und Loesen laufen ueber einen eigenen Dialog mit derselben
Repo-Auswahl wie beim Projekt. Der Projektdialog bearbeitet weiterhin nur
das fuehrende: eine Liste darin wuerde den Dialog sprengen, in dem es
eigentlich um das Projekt geht.

Eine frei waehlbare Bezeichnung tritt an die Stelle von owner/name. Die
Karte zeigt "+2 Repos" und im Titel, welche es sind.

repoTitle steht in lib/git/meta statt bei den uebrigen Repository-Helfern:
lib/repositories zieht Prisma und damit node:-Module nach, die in einer
Client-Komponente nicht landen duerfen.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-26 13:24:08 +02:00
co-authored by Claude Opus 5
parent a843f08211
commit b882c870c3
9 changed files with 558 additions and 67 deletions
+8 -5
View File
@@ -87,11 +87,14 @@ export function ProjectDialog({ open, onClose, connections, project }: ProjectDi
accent: project.accent,
tags: project.tags.join(", "),
favorite: project.favorite,
connectionId: project.connectionId ?? "",
repoUrl: project.repoUrl ?? "",
repoOwner: project.repoOwner ?? "",
repoName: project.repoName ?? "",
autoSync: project.autoSync,
// Der Dialog bearbeitet das fuehrende Repository. Weitere
// verwaltet das Git-Panel – hier wuerde eine Liste den Dialog
// sprengen, in dem es eigentlich um das Projekt geht.
connectionId: project.repositories[0]?.connectionId ?? "",
repoUrl: project.repositories[0]?.repoUrl ?? "",
repoOwner: project.repositories[0]?.repoOwner ?? "",
repoName: project.repositories[0]?.repoName ?? "",
autoSync: project.repositories[0]?.autoSync ?? true,
progressFromTasks: project.progressFromTasks,
}
: EMPTY,