登录 GitHub 后让智能体处理 PR、提交与推送
31.6/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add contraliz/dsh-gh该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · market
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 16 处,展示前 16 条)
- 发起网络请求lib/client.js:121
response = await fetch(path, init) - 读取本地文件dist/auth.js:93
const text = await readFile(path, 'utf8'); - 写入本地文件dist/auth.js:133
await mkdir(join(path, '..'), { recursive: true, mode: 0o700 }); - 写入本地文件dist/auth.js:134
await writeFile(path, `${JSON.stringify(payload, null, 2)}\n`, { encoding: 'utf8', mode: 0o600 }); - 写入本地文件dist/auth.js:135
await chmod(path, 0o600).catch(() => { }); - 删除本地文件dist/auth.js:150
await rm(legacyAuthFilePath(), { force: true }).catch(() => { }); - 删除本地文件dist/auth.js:166
await rm(authFilePath(), { force: true }).catch(() => { }); - 删除本地文件dist/auth.js:167
await rm(legacyAuthFilePath(), { force: true }).catch(() => { }); - 发起网络请求dist/auth.js:258
const response = await fetch(`${apiBase(host)}/user`, { - 发起网络请求dist/auth.js:327
response = await fetch(`${webBase(this.#host)}/login/oauth/access_token`, { - 发起网络请求dist/auth.js:375
const response = await fetch(`${webBase(options.host)}/login/device/code`, { - 执行外部命令固定命令dist/gh.js:96
child = spawn('gh', args, { - 执行外部命令固定命令dist/git.js:61
child = spawn('git', args, { - 写入本地文件dist/git.js:126
await writeFile(path, script, { encoding: 'utf8', mode: 0o700 }); - 写入本地文件dist/git.js:127
await chmod(path, 0o700).catch(() => { }); - 删除本地文件dist/git.js:172
await rm(askpass, { force: true }).catch(() => { });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 的 GitHub 插件:用 GitHub 登录后,就能处理拉取请求、提交、推送,以及该账号可见的任意仓库。
README
由 DeepSeek 最新模型翻译生成dsh-gh
为 DeepSeek Harness 提供 GitHub 能力:登录一次,之后就能让智能体处理 pull request、commit、push,以及账号能看到的任何仓库——和 GitHub 插件在 Codex 里给你的工作流一样。
- 在插件内登录——GitHub CLI 登录、OAuth 设备流,或粘贴 personal access token。
- Pull request——列出 open/closed 的 PR,读取元数据、文件、diff、检查、评审和评审讨论串;创建、更新、在 diff 行上留行内评论做评审、评论、合并。
- Commit——历史、带补丁的单条 commit,以及 ref 之间的比较。
- 推送改动——gh_push_files 通过 Git Data API 把文件内容直接提交到远程分支(无需 clone),gh_git_push 推送工作区分支。
- 浏览任意仓库——仓库、tree、文件,以及跨 GitHub 的代码/issue/PR/commit 搜索。
- Issue 与 Actions——读取、创建、更新 issue;查看 run、日志,重跑 workflow。
- 写入需审批——每次变更都先询问用户,并可用 allowlist 限制;读取永不弹窗。
要求
- DeepSeek Harness 0.2.1 或更新版本。
展开完整文档(README 剩余 1 节)
dsh-gh 为 DeepSeek Harness 提供 GitHub 能力:登录一次,之后就能让智能体处理 pull request、commit、push,以及账号能看到的任何仓库——和 GitHub 插件在 Codex 里给你的工作流一样。 - 在插件内登录——GitHub CLI 登录、OAuth 设备流,或粘贴 personal access token。 - Pull request——列出 open/closed 的 PR,读取元数据、文件、diff、检查、评审和评审讨论串;创建、更新、在 diff 行上留行内评论做评审、评论、合并。 - Commit——历史、带补丁的单条 commit,以及 ref 之间的比较。 - 推送改动——gh_push_files 通过 Git Data API 把文件内容直接提交到远程分支(无需 clone),gh_git_push 推送工作区分支。 - 浏览任意仓库——仓库、tree、文件,以及跨 GitHub 的代码/issue/PR/commit 搜索。 - Issue 与 Actions——读取、创建、更新 issue;查看 run、日志,重跑 workflow。 - 写入需审批——每次变更都先询问用户,并可用 allowlist 限制;读取永不弹窗。 要求 - DeepSeek Harness 0.2.1 或更新版本。 - PATH 上有 GitHub CLI(gh)。插件把它当作执行层,因此继承 gh 的认证、分页和企业主机支持。 - Node.js 22.19 或更新版本(仅从源码构建时需要)。 安装 直接从仓库安装: dsh plugin --profile desktop add github:contraliz/dsh-gh 或从本地 checkout 安装: git clone https://github.com/contraliz/dsh-gh dsh plugin --profile desktop add link:$PWD/dsh-gh 在 Plugins 页面:Settings → Plugins → Install plugin,粘贴 github:contraliz/dsh-gh。包还没上 npm;上架后 dsh plugin --profile desktop add dsh-gh 效果相同。 安装后重启 DSH。聊天输入框左侧会出现 GitHub 按钮。 连接账号 点击 GitHub 按钮,选一种方式: | 方式 | 作用 | | Use the GitHub CLI login | 采用本机 gh auth login 已保存的凭据。 | | Sign in with a browser | 走 OAuth 设备流:面板显示一个 code,你在 GitHub 上批准。需要 oauthClientId。 | | Paste a personal access token | 校验 token,存进 DSH 凭据存储。 | 主机提供 DSH 凭据接缝时,token 存在那里;否则存在 $DSH_HOME/.dsh-gh/auth.json,权限 0600。token 绝不返回浏览器、绝不写进工具结果、绝不进日志行。 浏览器流程需要注册 OAuth App(Settings → Developer settings → OAuth Apps),启用 Device flow,把 client id 写进配置档配置: - id: dsh-gh name: 'dsh-gh' config: oauthClientId: Iv23li... 配置 | 字段 | 默认值 | 含义 | | host | github.com | GitHub 主机;为 GitHub Enterprise 设置主机名。 | | authSources | ['stored', 'gh', 'env'] | 凭据查找顺序。 | | tokenEnv | GITHUB_TOKEN | env 来源读取的环境变量。 | | oauthClientId | '' | 设备流使用的 OAuth App client id。 | | oauthScopes | repo, read:org, workflow, read:user | 设备流申请的权限范围。 | | workspaceDir | 会话 cwd | git 调用的兜底工作目录。 | | allowedActions | [''] | 审批门允许的写操作。 | | readOnly | false | 只注册读工具:纯写工具不出现,gh_workflow 和 gh_api 保留,但拒绝自身的变更操作。 | | maxReadChars | 40000 | 单次读取返回文本的上限。 | | maxDiffChars | 60000 | diff/patch 文本的上限。 | | commandTimeoutMs | 60000 | 单次 gh 调用的超时时间。 | | showLoginUi | true | 注册输入框按钮、浮层和设置卡片。 | 写操作名称:pr.create、pr.update、pr.review、pr.comment、pr.merge、issue.create、issue.update、 push.files、push.git、workflow、api.write。 工具 | 工具 | 用途 | | gh_account | 已连接的登录账号、主机、权限范围、凭据来源、配置档。 | | gh_repo | 查看、列出或搜索仓库。 | | gh_file | 读取文件,或列出任意 ref 下的目录。 | | gh_tree | 某个 ref 下的仓库树。 | | gh_search | 搜索代码、issue、PR、提交或仓库。 | | gh_commit | 获取提交、列出历史或比较 ref。 | | gh_pr | 列出 PR(action: "list")或读取单个 PR(action: "read"):元数据、文件、diff、检查、评审、讨论串、评论。 | | gh_pr_create | 创建 PR。 | | gh_pr_update | 编辑 PR、切换草稿状态、更换评审人或标签。 | | gh_pr_review | 批准、评论或请求修改,可附带行内 comments;解决讨论串。 | | gh_pr_comment | 在 PR 上发会话评论。 | | gh_pr_merge | 以 merge/squash/rebase 方式合并。 | | gh_issue / gh_issue_create / gh_issue_update | 读取、创建和更新 issue。 | | gh_push_files | 不克隆仓库,直接把文件变更提交到分支。 | | gh_git_push | 用已连接的凭据推送工作区分支。 | | gh_checks | 查看 PR 或 ref 的 CI 检查。 | | gh_workflow | 列出/查看运行、读取日志、重跑、触发。读操作从不弹审批。 | | gh_api | 任意 REST 端点的逃生通道;非 GET 方法会请求审批。 | 安全模型 - token 通过 GH_TOKEN 注入子进程,绝不出现在命令行上。 - git push 使用一次性 GIT_ASKPASS 辅助程序,从子进程环境读取 token,因此 token 绝不会出现在 ps、.git/config 或捕获的输出里。 - 捕获的 gh/git 输出在进入工具结果之前会先脱敏。 - 写操作经过宿主的 tools/pre-execute 审批门,按操作分类:gh_workflow rerun/dispatch 和非 GET 的 gh_api 会弹出提示,而 logs、list-runs 和 GET 调用不会。readOnly 会完全移除纯写入类工具,混合类工具则保留,但拒绝执行自身的变更操作。 - gh_git_push 使用 --force-with-lease,而不是 --force,并且只在调用方明确要求时才使用。 开发 npm install npm run build # tsc + client bundle validation npm test # unit tests (no network) DSH_GH_E2E=1 npm run test:e2e # real GitHub tests against DSH_GH_E2E_REPO 提交源码改动时,一并提交重新构建的 dist/ 和 lib/ 产物;仓库直接分发构建产物,因此安装配置档时无需再执行构建步骤。 宿主端用 TypeScript 编写,运行时不依赖 @deepseek-ai/ 包,因此即使官方包无法解析,也能从配置档安装中加载。浏览器端是手写的 window.__ModuleLoader__.load() bundle,位于 lib/client.js。 与 Codex GitHub 插件的关系 Codex 的 GitHub 插件是一个连接器:OAuth 授权由 ChatGPT 持有,连接器对外暴露 91 个工具。本插件是 DeepSeek Harness 的对应实现,能力相同,但凭据归插件所有,工具面精简到 20 个以保护上下文窗口,并且每次写入都需要审批。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
contraliz/dsh-gh
登录 GitHub 后让智能体处理 PR、提交与推送
相关插件 · 市场 / 管理
插件精选列表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
这是你的仓库?认领条目