dsh-doctor
asdf17128
Find what your DeepSeek Harness (dsh) patches silently broke — dead patches, config fields dropped by whole-config repla…
PROJECT TOPICS
PROJECT README
一个零终端的 GitHub 登录小工具:打开窗口 → 生成设备码 → 授权 → 完成。 设备码流程在窗口内(Chromium 网络栈)执行,与你的浏览器共用同一网络通道—— 浏览器能打开 GitHub,这里就能完成登录,不受终端/代理配置差异影响。
一条命令装进 DSH,并自动启用宿主端插件(提供登录状态接口 + 一键唤起登录窗口):
dsh plugin --profile web add github:Noob-stupid/dsh-github-login
宿主端环回接口:
GET /github-auth/status → {ok, loggedIn, login}(只含账号名,绝不下发令牌)POST /github-auth/open → 唤起登录工具窗口(本机存在 exe 时直接启动)独立工具用法(不带 DSH 也行):
<webview>),带 前进 / 后退 / 刷新 按钮,
也可以一键改用外部浏览器打开;~/.dsh/github-auth.json;~/.config/gh/hosts.yml,gh 命令行立即可用(keyring 存在时 gh 以 keyring 优先);178c6fc778ccc68e1d6a),权限范围
repo workflow gist read:org。npm install # 安装 electron(已配置国内镜像)
npm start # 直接运行
npm run dist # 打包为便携版单文件 exe(dist/DSH-GitHub-Login.exe)
dsh-plugin-hub(插件管理面板)会读取 本工具写入的同一份令牌文件:登录后面板的 GitHub 市场显示"已登录 GitHub:<账号>", 且服务端回退通道自动带认证(搜索配额 10 → 30 次/分钟)。
把它当作一个独立进程调用即可:登录状态通过同一份文件(~/.dsh/github-auth.json)
共享,任何 DSH 生态工具都能读取:
spawn('<path>/DSH-GitHub-Login.exe', [], { windowsHide: false })
之后用 gh auth status 或直接读取 ~/.dsh/github-auth.json 验证登录状态。
GitHub Device Flow:
POST https://github.com/login/device/code → user_code + device_codehttps://github.com/login/device,输入 user_code 授权interval 轮询 POST https://github.com/login/oauth/access_tokenaccess_token → 主进程落盘 + 写入 gh 配置轮询严格遵循服务器间隔;网络抖动不中断(验证码 15 分钟有效期);授权成功 即完成,用户名查询是尽力而为的补充。
本仓库只包含登录插件本身,不包含任何桌面客户端代码。桌面客户端可在本地 集成它(见上);两者通过令牌文件共享登录状态。
遇到问题先看这里;仍有疑问请到 议题 提问。
~/.config/gh/hosts.yml;若系统 keyring 里有旧凭证,
gh 会优先用 keyring——先 gh auth logout 清掉旧凭证即可。github-auth.json 与 hosts.yml),并不会登录你的浏览器;
浏览器需单独登录一次 github.com(或在授权时选"改用外部浏览器打开",完成授权会顺带登录该浏览器)。GitHub: <账号> (click to log out),或窗口中点"退出登录"。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。