/* Git Servers — one entry per forge host, carrying the server's own credentials: * a forge token (stored encrypted, write-only) and an SSH deploy key whose public half * is shown here to paste into the forge. Projects on a configured server need no * per-repo credentials. */ "use client"; import { useState } from "react"; import { useDashboard } from "@/components/store"; import { Badge, Button, Card, Input, Select } from "@/components/ui"; import type { Host } from "@/lib/api"; const FORGE_OPTS = [ { value: "github", label: "github" }, { value: "gitlab", label: "gitlab" }, { value: "gitea", label: "gitea" }, { value: "forgejo", label: "forgejo" }, { value: "bitbucket", label: "bitbucket" }, ]; const empty = { hostname: "", forge_type: "github", token_env_var: "", base_url: "", token: "", generate_ssh_key: true, }; function PublicKey({ value }: { value: string }) { const [copied, setCopied] = useState(false); const copy = async () => { try { await navigator.clipboard.writeText(value); setCopied(true); setTimeout(() => setCopied(false), 1500); } catch { /* clipboard unavailable (http) — the key is selectable below */ } }; return (
{value}