用浏览器登录态完成提交、取令牌与调试
28.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add KNLCXY/dsh-github-scripts该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 3 处,展示前 3 条)
- 读取本地文件lib/detect-chrome.mjs:16
const names = readdirSync(dir) - 读取本地文件lib/detect-chrome.mjs:102
try { entries = readdirSync(dir, { withFileTypes: true }) } catch { continue } - 读取本地文件lib/detect-chrome.mjs:123
try { if (existsSync(candidate)) return candidate } catch {}
扫描于 2026/11/3(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
独立、零依赖的脚本,用来完成 GitHub 上网页界面能做、API 却做不到的事:不用 token 就能通过网页编辑器提交文件,走 OAuth 设备流拿到 token,再用自定义启动参数探测 Chromium 构建。这里不存任何密钥。
README
由 DeepSeek 最新模型翻译生成dsh-github-scripts
三个互相独立、零依赖的小脚本,用来处理 GitHub 上那些「网页能做、API 不能做」和「看不到页面就不知道哪里坏了」的活。只用 Node 内置模块(child_process / node:fs / 内置 WebSocket),不需要 npm install。
这些脚本是 dsh-github 插件里那一份的镜像,单独发一个仓库是为了不装插件也能用。
仓库里不含任何 token / 密钥:脚本要么用你浏览器里已登录的会话,要么把拿到的 token 写到你自己的临时文件。
| 脚本 | 什么时候用 | 需要什么 |
| gh-web-commit.mjs | 没有 token 也要往仓库提交单个文件(走网页编辑器) | 一个已登录 GitHub 的 Chrome/Chromium profile |
| gh-device-login.mjs | 想要一个能写仓库的 token,但不想手动点 OAuth 授权页 | 同上;脚本会自动走「设备码 → 授权」 |
| chrome-probe.mjs | 页面在自动化下打不开/不渲染,想换启动参数对比 | 任意 Chrome/Chromium |
前置
- Node 22+(内置 WebSocket、fetch)。
展开完整文档(README 剩余 1 节)
dsh-github-scripts
三个互相独立、零依赖的小脚本,用来处理 GitHub 上那些「网页能做、API 不能做」和「看不到页面就不知道哪里坏了」的活。只用 Node 内置模块(child_process / node:fs / 内置 WebSocket),不需要 npm install。
这些脚本是 dsh-github 插件里那一份的镜像,单独发一个仓库是为了不装插件也能用。
仓库里不含任何 token / 密钥:脚本要么用你浏览器里已登录的会话,要么把拿到的 token 写到你自己的临时文件。
| 脚本 | 什么时候用 | 需要什么 |
| gh-web-commit.mjs | 没有 token 也要往仓库提交单个文件(走网页编辑器) | 一个已登录 GitHub 的 Chrome/Chromium profile |
| gh-device-login.mjs | 想要一个能写仓库的 token,但不想手动点 OAuth 授权页 | 同上;脚本会自动走「设备码 → 授权」 |
| chrome-probe.mjs | 页面在自动化下打不开/不渲染,想换启动参数对比 | 任意 Chrome/Chromium |
前置
- Node 22+(内置 WebSocket、fetch)。没装 Node 也能用 DSH 自带的那个:
ELECTRON_RUN_AS_NODE=1 "<DeepSeek Harness 目录>/DeepSeek Harness.exe" scripts/chrome-probe.mjs https://example.com
- 一份 Chromium 系内核(Chrome / Edge / Brave / 应用内置的都行),能跑 --remote-debugging-port
环境变量
| 变量 | 作用 | 默认 |
| DSH_CHROME | 内核可执行文件路径 | 自动探测(见下) |
| DSH_GH_PROFILE | 浏览器 profile 目录(登录态存在这里) | %TEMP%/dsh-github-profile |
内核默认自动找:DSH_CHROME → 系统 Chrome/Edge/Brave/Chromium → 有界扫描(%LOCALAPPDATA%、%APPDATA%、Program Files、(x86)、~/Desktop,深度 4–5,认识豆包 / 夸克 / 360 / QQ / 搜狗 / UC / 猎豹 / Vivaldi / Opera,并要求目录里有 icudtl.dat 或 *.pak)。找不到才需要手动指定。
gh-device-login 认 --chrome <path> / --profile <dir>,优先于环境变量。
gh-web-commit.mjs:不用 token 提交文件
node scripts/gh-web-commit.mjs <owner/repo> <仓库内路径> <本地文件> [--dry]
- 打开 GitHub 的「新建文件」页面,填入内容和路径,点两次「Commit changes」
- --dry 只填内容并截住提交请求,不真提交(用来确认接口形状)
为什么需要它:建/改 token、授权 OAuth 都受 sudo 保护(要邮箱验证码),但网页提交文件不需要。
踩过的坑(脚本已内置修复):GitHub 的文件编辑器在 navigator.webdriver === true 时整块不渲染,页面只剩 Files main 骨架;启动参数加 --disable-blink-features=AutomationControlled 才正常。
gh-device-login.mjs:走 OAuth 设备流换 token
node scripts/gh-device-login.mjs [--scope "repo read:org"] [--port 9444] [--visible]
流程:申请设备码 → 在浏览器里输入码 → 点授权 → 轮询拿到 gho_ token。
- token 不打印到 stdout,写进 %TEMP%/gh-device-token.txt(.gitignore 已排除),自己保管或删掉
- 用的是 gh CLI 的公开 client_id(设备流不需要 client_secret),授权记录会出现在你 GitHub 的「授权应用」里,可随时撤销
- 为什么不能交给浏览器工具做:设备流的「输码 → 授权」发生在一次真实表单提交之后,必须保持同一个页面上下文才能点「Authorize」
chrome-probe.mjs:换启动参数排查渲染问题
node scripts/chrome-probe.mjs <url> [--js "表达式"] [--wait 6000] [--flag "--foo"] [--visible]
打印页面在指定参数下的执行结果。典型用法 —— 验证自动化特征是否被识别:
node scripts/chrome-probe.mjs "https://github.com/<you>/<repo>/new/main" \
--js "JSON.stringify({wd:navigator.webdriver, editors:document.querySelectorAll('.cm-content').length})" \
--flag "--disable-blink-features=AutomationControlled"
安全边界
| 事项 | 做法 |
| 仓库里有 token 吗 | 没有。全仓库搜不到任何 token 形状的字符串 |
| 脚本会存 token 吗 | gh-device-login 会把结果写到 %TEMP%(本机临时目录),不进仓库、不进对话 |
| gh-web-commit 用什么身份 | 你浏览器 profile 里已登录的会话,脚本不读密码 |
| 会碰你的仓库吗 | 只在显式传了 <owner/repo> 时操作;--dry 可先空跑 |
与 dsh-websift 的关系
没有运行时依赖,但「怎么找 Chrome」用的是同一份逻辑:本仓库的 lib/detect-chrome.mjs 是 dsh-websift 里 scanChromiumRoots() 的拷贝。
为什么拷贝而不是依赖:这些脚本的价值就是单独 clone 一个文件就能跑,拉一个插件当依赖反而把门槛抬高了。代价是改探测逻辑时要两边同步(两边文件顶部都有这句提醒)。
许可
MIT。与 GitHub、Google、DeepSeek 均无隶属关系。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
KNLCXY/dsh-github-scripts
用浏览器登录态完成提交、取令牌与调试
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目