🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

GitHub 工具集 NEAZ71eve/dsh-tool-github

DeepSeek Harness
NEAZ71eve80 天前有提交已提供中文文档扫描:含敏感能力

绑定 GitHub 账户,管理仓库议题与拉取请求

32.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

该插件未发布到 npm,按作者文档从 GitHub 源安装即可(静态检查只覆盖 npm 路径,不代表插件不可用)。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add NEAZ71eve/dsh-tool-github
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/28) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@dsh-external/dsh-tool-github(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/17 16:44:26

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 16 处,展示前 13 条)
  • 执行外部命令来自配置/变量
    lib/index.js:16
    const child = spawn(command, args, { ...options, stdio: "ignore" });
  • 读取密钥环境变量
    lib/index.js:81
    return process.env.GITHUB_TOKEN ?? "";
  • 读取密钥环境变量
    lib/index.js:91
    if (process.env.GITHUB_TOKEN !== void 0 && process.env.GITHUB_TOKEN.length > 0) return "environment";
  • 发起网络请求
    lib/index.js:112
    const response = await fetch(url, {
  • 写入本地文件
    lib/index.js:1018
    if (!existsSync(root)) mkdirSync(root, { recursive: true });
  • 读取本地文件
    lib/index.js:1018
    if (!existsSync(root)) mkdirSync(root, { recursive: true });
  • 发起网络请求
    lib/index.js:1036
    const response = await fetch(url, { signal });
  • 写入本地文件
    lib/index.js:1040
    mkdirSync(repoPath, { recursive: true });
  • 读取本地文件
    lib/index.js:1054
    if (existsSync(repoPath)) {
  • 读取本地文件
    lib/index.js:1124
    const cloned = !existsSync(join(root, safeSegment(args.owner), safeSegment(args.repo)));
  • 读取本地文件
    lib/index.js:1182
    const ownerDirs = existsSync(root) ? await import("node:fs/promises").then((fs) => fs.readdir(root, { withFileTypes: true }).catch(() => [])) : [];
  • 读取本地文件
    lib/index.js:1302
    isWorkspace: existsSync(localPath) && workspacePaths.has(localPath)
  • 读取本地文件
    lib/index.js:1390
    if (existsSync(root)) {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-credentials@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 绑定GitHub账户
  • 管理仓库议题
  • 管理拉取请求

README

由 DeepSeek 最新模型翻译生成
dsh-tool-github 用于 DeepSeek Harness(DSH)的 GitHub REST API 工具。注册面向模型的 github_ 工具,使智能体能够绑定 GitHub 账户、查询仓库、搜索代码/议题、读取文件内容、创建议题 / 拉取请求 / 评论,并将仓库克隆到可选的工作区中。还附带一个用于 Web GUI 的浏览器端 GitHub 面板(侧边栏图标 → 账户状态、工作区列表、绑定 / 添加工作区操作),由 /github- 命令提供支持。 Web GUI 面板 安装并完全重启 GUI(dsh web —— 客户端插件发现仅在进程启动时运行,并会缓存“不是客户端包”的判定结果,因此正在运行的 GUI 不会识别到新添加的 dsh.client 声明)后,侧边栏栏中会出现一个 GitHub 图标(紧挨着设置按钮)。点击它打开 GitHub 面板: - 状态 —— 已绑定账户(@login、令牌来源)以及已注册的 GitHub 工作区(来自 /github-status) - 我的仓库 —— 将已绑定账户的仓库列为可点击的行;点击其中一个即可克隆并将其注册为工作区(来自 /github-my-repos + /github-workspace-add) - 绑定账户… —— 粘贴个人访问令牌(运行 /github-bind ) - 添加工作区…
展开完整文档(README 剩余 1 节)
dsh-tool-github

用于 DeepSeek Harness(DSH)的 GitHub REST API 工具。注册面向模型的 github_ 工具,使智能体能够绑定 GitHub 账户、查询仓库、搜索代码/议题、读取文件内容、创建议题 / 拉取请求 / 评论,并将仓库克隆到可选的工作区中。还附带一个用于 Web GUI 的浏览器端 GitHub 面板(侧边栏图标 → 账户状态、工作区列表、绑定 / 添加工作区操作),由 /github- 命令提供支持。

Web GUI 面板

安装并完全重启 GUI(dsh web —— 客户端插件发现仅在进程启动时运行,并会缓存“不是客户端包”的判定结果,因此正在运行的 GUI 不会识别到新添加的 dsh.client 声明)后,侧边栏栏中会出现一个 GitHub 图标(紧挨着设置按钮)。点击它打开 GitHub 面板:

- 状态 —— 已绑定账户(@login、令牌来源)以及已注册的 GitHub 工作区(来自 /github-status)
- 我的仓库 —— 将已绑定账户的仓库列为可点击的行;点击其中一个即可克隆并将其注册为工作区(来自 /github-my-repos + /github-workspace-add)
- 绑定账户… —— 粘贴个人访问令牌(运行 /github-bind )
- 添加工作区… —— 输入 owner/repo(或 owner repo [branch])以克隆并注册工作区(运行 /github-workspace-add)
- 刷新 —— 重新读取状态

该面板仅通过 /github- 命令(ctx.remote.commands.execute)与宿主通信,因此它自身从不持有令牌,也不直接访问 GitHub API。这些命令也可以直接在编辑器中输入:

/github-status 显示账户 + 工作区状态 /github-bind ghp_xxx 绑定账户 /github-unbind 移除已存储的令牌 /github-workspace-add owner repo [branch] /github-workspace-list 列出已克隆的 GitHub 工作区

工具

账户绑定

| 工具 | 描述 |
| github_bind | 针对 API 验证个人访问令牌,并将其持久化到凭据存储中。绑定后,每个 github_ 工具都会自动以该账户身份进行身份验证。 |
| github_whoami | 显示已绑定账户、令牌来源(凭据存储 / 插件配置 / 环境变量)以及公开个人资料。 |
| github_unbind | 移除已存储的令牌并断开账户连接。 |

GitHub API

| 工具 | 描述 |
| github_repo | 仓库元数据(星标、复刻、语言、许可证、主题、活跃度) |
| github_search | 搜索仓库、代码或议题 |
| github_my_repos | 列出已绑定账户的仓库(根据令牌范围显示公开 + 私有仓库)—— 选择一个进行工作或添加为工作区 |
| github_issues | 列出仓库议题(状态 / 标签筛选) |
| github_create_issue | 创建议题(需要已绑定账户 / 令牌) |
| github_prs | 列出拉取请求(状态筛选) |
| github_create_pr | 创建拉取请求(需要已绑定账户 / 令牌) |
| github_content | 读取任意 ref 处的文件或列出目录 |
| github_comment | 在 issue 或 PR 上发表评论(需要已绑定的账号 / token) |

工作区

| 工具 | 描述 |
| github_workspace_add | 将仓库克隆到本地工作区根目录(~/.dsh/github-workspaces)并向 harness 工作区注册表注册——随后它会出现在工作区选择器(侧边栏 / 新会话主界面)中,并可作为工作目录选择。尽可能使用 git clone,当 git TLS 不可用时回退到 codeload tarball 下载。 |
| github_workspace_list | 列出由 github_workspace_add 克隆的仓库,包含本地路径和注册状态。 |

安装

from this checkout directory
dsh plugin --profile web add .

或通过本地路径:

dsh plugin --profile web add D:\keep_try\dsh-tool-github

安装或更新后重启 Web GUI(dsh web),以便加载新的 bundle。

使用示例

"帮我绑定 GitHub 账号" → github_bind (输入 token) "当前登录的 GitHub 账号是谁" → github_whoami "把 deepseek-ai/DeepSeek-Harness 加为工作区" → github_workspace_add "有哪些 GitHub 仓库可以作为工作区" → github_workspace_list "deepseek-harness 有多少 star" → github_repo "搜 python 的 PDF 解析库 stars:>3000" → github_search

配置

该插件接受一个 Config,包含:

- token — GitHub 个人访问令牌(默认:"")。优先使用 github_bind(凭据存储)或 GITHUB_TOKEN 环境变量;解析顺序为凭据存储 → 插件配置 → 环境变量。
- baseUrl — API 基础 URL(默认 https://api.github.com;设置为你的 GitHub Enterprise URL,例如 https://github.example.com/api/v3)。
- timeoutMs — 每次调用的超时时间(默认 30000)。
- maxResults — 列表/搜索结果上限(默认 10)。
- workspaceRoot — github_workspace_add 克隆仓库的位置(默认 ~/.dsh/github-workspaces)。

示例 profile 补丁(~/.dsh/cordis.patch.yml 或 profiles//cordis.patch.yml):

- id: tool-github
config:
maxResults: 20
workspaceRoot: D:\github-workspaces

账号绑定如何工作

github_bind 通过 GET /user 验证 token,然后通过 DSH 的凭据接缝(ctx.credentials)将其存储在 GITHUB_TOKEN 引用下——与 Models 页面写入的是同一个存储,持久化在 $DSH_HOME/.credentials.yaml 中。其他所有工具在每次操作时解析 token,因此更改凭据后无需重启即可在下次调用时生效。github_unbind 仅移除凭据存储中的绑定;环境变量和插件配置中的 token 是只读来源。

工作区集成如何工作 github_workspace_add 将 / 克隆到 //,然后调用 ctx.workspaceRegistry.create(path, title) —— 与工作区选择器渲染的是同一个注册表。该仓库会立即成为一个可选的工作区:在那里打开的会话会将该仓库作为其工作目录,代理的文件工具会在克隆内操作。

开发

npm install # 安装开发/测试依赖
npm run check # 对两个 bundle 进行语法检查
npm test # 完整测试套件(host + client + schema + contract)
npm run test:host # 仅 host 测试(commands、schema、contracts)
npm run test:client # client DOM 集成测试

CI(.github/workflows/ci.yml)在 push/PR 时运行:在 Node 20 和 22 上进行语法检查 + 完整测试套件,外加一个 npm pack --dry-run 包完整性检查任务。

许可证

MIT
预览分享卡片长什么样 ↓NEAZ71eve/dsh-tool-github
分享 · DeepSeek Harness Hub
NEAZ71eve/dsh-tool-github

绑定 GitHub 账户,管理仓库议题与拉取请求

这是你的仓库?认领条目

回到顶部