diff --git a/src/components/settings/add-github-account-dialog.tsx b/src/components/settings/add-github-account-dialog.tsx index 05adc4c..5d64eda 100644 --- a/src/components/settings/add-github-account-dialog.tsx +++ b/src/components/settings/add-github-account-dialog.tsx @@ -1,7 +1,8 @@ "use client" import { useCallback, useState } from "react" -import { Eye, EyeOff, Loader2 } from "lucide-react" +import { ExternalLink, Eye, EyeOff, Loader2 } from "lucide-react" +import { openUrl } from "@tauri-apps/plugin-opener" import { useTranslations } from "next-intl" import { Button } from "@/components/ui/button" import { Input } from "@/components/ui/input" @@ -37,6 +38,20 @@ export function AddGitHubAccountDialog({ const [validating, setValidating] = useState(false) const [error, setError] = useState(null) + const handleGenerateToken = useCallback(async () => { + const base = serverUrl.trim().replace(/\/+$/, "") || "https://github.com" + const params = new URLSearchParams({ + description: "codeg", + scopes: "repo,read:org,workflow,gist,read:user,user:email", + }) + const url = `${base}/settings/tokens/new?${params.toString()}` + try { + await openUrl(url) + } catch { + // fallback: ignore if opener fails + } + }, [serverUrl]) + const resetForm = useCallback(() => { setServerUrl("https://github.com") setToken("") @@ -117,9 +132,21 @@ export function AddGitHubAccountDialog({
- +
+ + +
{ + const host = remoteHost || "github.com" + const base = `https://${host}` + const params = new URLSearchParams({ + description: "codeg", + scopes: "repo,read:org,workflow,gist,read:user,user:email", + }) + try { + await openUrl(`${base}/settings/tokens/new?${params.toString()}`) + } catch { + // ignore + } + }, [remoteHost]) + const [submitting, setSubmitting] = useState(false) const [error, setError] = useState(null) @@ -401,9 +416,22 @@ export function GitCredentialProvider({ {mode === "github" ? ( /* ---- GitHub Token Mode ---- */
- +
+ + +