From 9e21ac439b71775638dbaad51a62466df3c30b33 Mon Sep 17 00:00:00 2001 From: "itpkcn@gmail.com" Date: Sat, 21 Mar 2026 14:15:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=BF=AB=E6=8D=B7=E6=89=93?= =?UTF-8?q?=E5=BC=80github=E5=87=AD=E6=8D=AE=E7=94=9F=E6=88=90=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/add-github-account-dialog.tsx | 35 +++++++++++++++--- src/contexts/git-credential-context.tsx | 36 ++++++++++++++++--- src/i18n/messages/ar.json | 4 ++- src/i18n/messages/de.json | 4 ++- src/i18n/messages/en.json | 4 ++- src/i18n/messages/es.json | 4 ++- src/i18n/messages/fr.json | 4 ++- src/i18n/messages/ja.json | 4 ++- src/i18n/messages/ko.json | 4 ++- src/i18n/messages/pt.json | 4 ++- src/i18n/messages/zh-CN.json | 4 ++- src/i18n/messages/zh-TW.json | 4 ++- 12 files changed, 93 insertions(+), 18 deletions(-) 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 ---- */
- +
+ + +