feat(ui): Verwaltung der Git-Verbindungen

Eine Seite fuer alle angebundenen Git-Systeme. Mehrere Verbindungen desselben
Typs sind moeglich, etwa privates GitHub und Firmen-Gitea nebeneinander.

- Anlegen mit Systemauswahl, Basis-URL und Access Token; die Basis-URL wird
  beim Wechsel des Systems auf den passenden Standard gesetzt, sofern sie
  nicht von Hand geaendert wurde
- Verbindungstest auf Knopfdruck: prueft Erreichbarkeit und Token, meldet den
  erkannten Benutzer und bei Gitea die Serverversion. Ergebnis und Zeitpunkt
  werden gespeichert und in der Karte angezeigt
- Token erscheint nur als Hinweis; ein leeres Feld beim Bearbeiten laesst ihn
  unveraendert
- Loeschen trennt nur die Verknuepfung, die Projekte bleiben erhalten
- Hinweis auf die noetigen Scopes samt Link zur Doku des jeweiligen Systems

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-25 19:34:51 +02:00
co-authored by Claude Opus 5
parent 826706aeca
commit 72674dee4e
2 changed files with 472 additions and 0 deletions
+25
View File
@@ -0,0 +1,25 @@
import type { Metadata } from "next";
import { ConnectionsManager } from "@/components/ConnectionsManager";
import { prisma } from "@/lib/db";
import { connectionSafeSelect } from "@/lib/projects";
import type { ConnectionWithCount } from "@/types";
export const dynamic = "force-dynamic";
export const metadata: Metadata = {
title: "Git-Verbindungen",
description: "GitHub, GitLab und Gitea mit Nebula verbinden.",
};
export default async function ConnectionsPage() {
const connections = await prisma.gitConnection.findMany({
select: { ...connectionSafeSelect, _count: { select: { projects: true } } },
orderBy: { name: "asc" },
});
return (
<div className="pt-4">
<ConnectionsManager connections={connections as unknown as ConnectionWithCount[]} />
</div>
);
}