+ {!ghCli.disabled && ghCli.user && (
+
+ {ghCli.user.name?.trim() || ghCli.user.login || 'GitHub'}
+
+ )}
+ {!ghCli.disabled && ghCli.user?.login && (
+
+
+ {ghCli.user.login}
+ {ghCli.user.email && •}
+ {ghCli.user.email && {ghCli.user.email}}
+
+ )}
{ghCli.disabled
? t('settings.github.page.ghCli.disabledDescription')
diff --git a/packages/ui/src/lib/i18n/messages/en.settings.ts b/packages/ui/src/lib/i18n/messages/en.settings.ts
index a2c45ebc..40eb398e 100644
--- a/packages/ui/src/lib/i18n/messages/en.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/en.settings.ts
@@ -1407,7 +1407,8 @@ export const settingsDict = {
'settings.github.page.toast.disconnectFailed': 'Failed to disconnect GitHub',
'settings.github.page.toast.accountSwitched': 'GitHub account switched',
'settings.github.page.toast.accountSwitchFailed': 'Failed to switch GitHub account',
- 'settings.github.page.ghCli.title': 'gh CLI',
+ 'settings.github.page.oauth.title': 'GitHub OAuth Token',
+ 'settings.github.page.ghCli.title': 'GitHub CLI Token',
'settings.github.page.ghCli.activeDescription': 'Authenticated via the gh CLI',
'settings.github.page.ghCli.fallbackDescription': 'Available as fallback if OpenChamber auth is removed',
'settings.github.page.ghCli.disabledDescription': 'Installed but not used as a fallback',
diff --git a/packages/ui/src/lib/i18n/messages/es.settings.ts b/packages/ui/src/lib/i18n/messages/es.settings.ts
index 127692bd..745e2593 100644
--- a/packages/ui/src/lib/i18n/messages/es.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/es.settings.ts
@@ -1374,7 +1374,8 @@ export const settingsDict = {
"settings.github.page.toast.disconnectFailed": "No se pudo desconectar de GitHub",
"settings.github.page.toast.accountSwitched": "Cuenta de GitHub cambiada",
"settings.github.page.toast.accountSwitchFailed": "No se pudo cambiar de cuenta de GitHub",
- "settings.github.page.ghCli.title": "gh CLI",
+ "settings.github.page.oauth.title": "Token OAuth de GitHub",
+ "settings.github.page.ghCli.title": "Token CLI de GitHub",
"settings.github.page.ghCli.activeDescription": "Autenticado a través de gh CLI",
"settings.github.page.ghCli.fallbackDescription": "Disponible como respaldo si se elimina la autenticación de OpenChamber",
"settings.github.page.ghCli.disabledDescription": "Instalado pero no usado como respaldo",
diff --git a/packages/ui/src/lib/i18n/messages/fr.settings.ts b/packages/ui/src/lib/i18n/messages/fr.settings.ts
index f1ae5cfe..f89c43e3 100644
--- a/packages/ui/src/lib/i18n/messages/fr.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/fr.settings.ts
@@ -1363,7 +1363,8 @@ export const settingsDict = {
'settings.github.page.toast.disconnectFailed': 'Échec de la déconnexion du GitHub',
'settings.github.page.toast.accountSwitched': 'Le compte GitHub a changé',
'settings.github.page.toast.accountSwitchFailed': 'Échec du changement de compte GitHub',
- 'settings.github.page.ghCli.title': 'gh CLI',
+ 'settings.github.page.oauth.title': 'Token OAuth GitHub',
+ 'settings.github.page.ghCli.title': 'Token CLI GitHub',
'settings.github.page.ghCli.activeDescription': 'Authentifié via gh CLI',
'settings.github.page.ghCli.fallbackDescription': 'Disponible comme solution de secours si l’authentification OpenChamber est supprimée',
'settings.github.page.ghCli.disabledDescription': 'Installé, mais non utilisé comme solution de secours',
diff --git a/packages/ui/src/lib/i18n/messages/ko.settings.ts b/packages/ui/src/lib/i18n/messages/ko.settings.ts
index 86845342..a46c8e5c 100644
--- a/packages/ui/src/lib/i18n/messages/ko.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/ko.settings.ts
@@ -1374,7 +1374,8 @@ export const settingsDict = {
'settings.github.page.toast.disconnectFailed': 'GitHub 연결을 해제하지 못했습니다',
'settings.github.page.toast.accountSwitched': 'GitHub 계정이 전환되었습니다',
'settings.github.page.toast.accountSwitchFailed': 'GitHub 계정을 전환하지 못했습니다',
- 'settings.github.page.ghCli.title': 'gh CLI',
+ 'settings.github.page.oauth.title': 'GitHub OAuth 토큰',
+ 'settings.github.page.ghCli.title': 'GitHub CLI 토큰',
'settings.github.page.ghCli.activeDescription': 'gh CLI를 통해 인증됨',
'settings.github.page.ghCli.fallbackDescription': 'OpenChamber 인증이 제거된 경우 대체로 사용 가능',
'settings.github.page.ghCli.disabledDescription': '설치되어 있지만 대체로 사용되지 않음',
diff --git a/packages/ui/src/lib/i18n/messages/pl.settings.ts b/packages/ui/src/lib/i18n/messages/pl.settings.ts
index af1e2a9b..6ada90f1 100644
--- a/packages/ui/src/lib/i18n/messages/pl.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/pl.settings.ts
@@ -249,7 +249,8 @@ export const settingsDict = {
'settings.github.page.toast.ghCliEnabled': 'Rezerwa gh CLI włączona',
'settings.github.page.toast.ghCliDisabled': 'Rezerwa gh CLI wyłączona',
'settings.github.page.toast.ghCliUpdateFailed': 'Nie udało się zaktualizować ustawienia gh CLI',
- 'settings.github.page.ghCli.title': 'gh CLI',
+ 'settings.github.page.oauth.title': 'Token OAuth GitHub',
+ 'settings.github.page.ghCli.title': 'Token CLI GitHub',
'settings.github.page.ghCli.activeDescription': 'Uwierzytelniono przez gh CLI',
'settings.github.page.ghCli.fallbackDescription': 'Dostępne jako rezerwa, jeśli uwierzytelnienie OpenChamber zostanie usunięte',
'settings.github.page.ghCli.disabledDescription': 'Zainstalowane, ale nieużywane jako rezerwa',
diff --git a/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts b/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts
index a021ec35..c27874c7 100644
--- a/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/pt-BR.settings.ts
@@ -1374,7 +1374,8 @@ export const settingsDict = {
"settings.github.page.toast.disconnectFailed": "Não foi possível desconectar de GitHub",
"settings.github.page.toast.accountSwitched": "Conta de GitHub cambiada",
"settings.github.page.toast.accountSwitchFailed": "Não foi possível mudar de conta de GitHub",
- "settings.github.page.ghCli.title": "gh CLI",
+ "settings.github.page.oauth.title": "Token OAuth do GitHub",
+ "settings.github.page.ghCli.title": "Token CLI do GitHub",
"settings.github.page.ghCli.activeDescription": "Autenticado via gh CLI",
"settings.github.page.ghCli.fallbackDescription": "Disponível como alternativa se a autenticação do OpenChamber for removida",
"settings.github.page.ghCli.disabledDescription": "Instalado, mas não usado como alternativa",
diff --git a/packages/ui/src/lib/i18n/messages/uk.settings.ts b/packages/ui/src/lib/i18n/messages/uk.settings.ts
index 9252990a..0399e985 100644
--- a/packages/ui/src/lib/i18n/messages/uk.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/uk.settings.ts
@@ -1374,7 +1374,8 @@ export const settingsDict = {
"settings.github.page.toast.disconnectFailed": "Не вдалося відключити GitHub",
"settings.github.page.toast.accountSwitched": "Обліковий запис GitHub змінено",
"settings.github.page.toast.accountSwitchFailed": "Не вдалося змінити обліковий запис GitHub",
- "settings.github.page.ghCli.title": "gh CLI",
+ "settings.github.page.oauth.title": "GitHub OAuth Token",
+ "settings.github.page.ghCli.title": "GitHub CLI Token",
"settings.github.page.ghCli.activeDescription": "Автентифіковано через gh CLI",
"settings.github.page.ghCli.fallbackDescription": "Доступно як резервний варіант, якщо автентифікацію OpenChamber видалено",
"settings.github.page.ghCli.disabledDescription": "Встановлено, але не використовується як резервний варіант",
diff --git a/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts b/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts
index 7210d246..0d203aa5 100644
--- a/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/zh-CN.settings.ts
@@ -1374,7 +1374,8 @@ export const settingsDict = {
'settings.github.page.toast.disconnectFailed': '断开 GitHub 失败',
'settings.github.page.toast.accountSwitched': 'GitHub 账号已切换',
'settings.github.page.toast.accountSwitchFailed': '切换 GitHub 账号失败',
- 'settings.github.page.ghCli.title': 'gh CLI',
+ 'settings.github.page.oauth.title': 'GitHub OAuth 令牌',
+ 'settings.github.page.ghCli.title': 'GitHub CLI 令牌',
'settings.github.page.ghCli.activeDescription': '已通过 gh CLI 认证',
'settings.github.page.ghCli.fallbackDescription': '在 OpenChamber 认证被移除时可作为备用',
'settings.github.page.ghCli.disabledDescription': '已安装但未作为备用使用',
diff --git a/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts b/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts
index 116bae0d..89ade3e0 100644
--- a/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts
+++ b/packages/ui/src/lib/i18n/messages/zh-TW.settings.ts
@@ -1295,7 +1295,8 @@
'settings.github.page.toast.disconnectFailed': '中斷 GitHub 失敗',
'settings.github.page.toast.accountSwitched': 'GitHub 帳號已切換',
'settings.github.page.toast.accountSwitchFailed': '切換 GitHub 帳號失敗',
- 'settings.github.page.ghCli.title': 'gh CLI',
+ 'settings.github.page.oauth.title': 'GitHub OAuth 權杖',
+ 'settings.github.page.ghCli.title': 'GitHub CLI 權杖',
'settings.github.page.ghCli.activeDescription': '已透過 gh CLI 認證',
'settings.github.page.ghCli.fallbackDescription': '在 OpenChamber 認證被移除時可作為備用',
'settings.github.page.ghCli.disabledDescription': '已安裝但未作為備用使用',
diff --git a/packages/web/server/lib/github/routes.js b/packages/web/server/lib/github/routes.js
index a23f8ab4..93fa4ebf 100644
--- a/packages/web/server/lib/github/routes.js
+++ b/packages/web/server/lib/github/routes.js
@@ -84,12 +84,22 @@ export function registerGitHubRoutes(app) {
const ghCliDisabled = isGhCliDisabled();
const ghToken = getGhCliToken();
const usingOwnToken = Boolean(auth?.accessToken);
+ let ghCliUser = null;
+
+ if (ghToken !== null && !ghCliDisabled && usingOwnToken) {
+ try {
+ const { Octokit } = await import('@octokit/rest');
+ ghCliUser = await getGitHubUserSummary(new Octokit({ auth: ghToken }));
+ } catch {
+ ghCliUser = null;
+ }
+ }
const buildGhCli = (activeUser = null) => ({
available: ghToken !== null,
disabled: ghCliDisabled,
active: !usingOwnToken && ghToken !== null && !ghCliDisabled,
- ...(activeUser ? { user: activeUser } : {}),
+ ...(!ghCliDisabled && (activeUser || ghCliUser) ? { user: activeUser || ghCliUser } : {}),
});
const octokit = getOctokitOrNull();