前言¶
DeepSeek Harness (DSH) 提供了一个运行智能体的环境。当智能体需要直接操作 GitHub 时,手动编写脚本或依赖外部工具通常繁琐且存在安全风险。这个插件旨在为 DSH 提供一套统一的 GitHub 操作接口,将 GitHub CLI 的能力封装为插件工具。
插件简介¶
定位:Zero-dependency GitHub workflows for DeepSeek Harness (DSH), built on the GitHub CLI。
维护者:Planckbaka
分类:工作流
核心功能¶
插件提供 11 个工具,涵盖 GitHub 生态的主要操作:
- github_auth:认证管理,包括状态查看、PAT 登录(通过 stdin 传入)、刷新令牌及账户切换。
- github_repo:仓库操作,支持查看、列表、创建、克隆、派生、编辑、同步、重命名、归档及删除。
- github_pr:Pull Request 操作,包含创建、列表、查看、差异、检查、评论、审查、合并、关闭、重新打开、编辑、标记为就绪、检出及状态查看。
- github_issue:Issue 操作,支持创建、列表、查看、状态管理、评论、关闭(含原因)、重新打开、编辑及开发(关联分支)。
- github_commit:只读提交浏览,通过 GitHub REST API 列出、查看、比较分支。
- github_release:发布管理,支持创建(含备注和生成)、列表、查看、上传/下载、编辑及删除。
- github_actions:GitHub Actions 管理,支持运行列表/查看/日志/监听/重跑/取消/删除,以及工作流列表/查看/触发。
- github_codespace:Codespaces 管理,支持列表、创建、非交互式 SSH、文件操作、启动/停止/重建、查看日志及删除。
- github_search:搜索功能,支持搜索仓库、Issue、PR、代码和提交。
- github_api:REST/GraphQL 请求的通用接口,作为逃逸通道访问标签、里程碑、项目、Gist、组织等。
- github_git:本地 Git 操作,支持 status、add、commit、push、pull、fetch、branch、log、remote。
- github_cli:GitHub CLI 的原始透传接口,默认关闭,需配置
allowRaw: true启用。
安装与启用¶
安装前请确保已安装 Node.js 18 或更高版本,以及 GitHub CLI (gh)。
在 DSH 中执行以下命令安装:
install_bundle → target: github:Planckbaka/dsh-plugin-github-workflows
典型用法¶
以下展示从代码提交到发布发布的典型流程示例:
github_auth action: status # 验证认证状态
github_git action: status # 查看变更
github_git action: add paths: ["src"]
github_git action: commit message: "Fix ..."
github_git action: push setUpstream: true
github_pr action: create title: "Fix ..." fill: true
github_actions action: run_watch runId: <id> # 监控 CI 运行
github_pr action: merge mergeMethod: squash, deleteBranch: true, confirm: true
github_release action: create tag: v1.1.0, generateNotes: true, confirm via notes
适用场景与注意¶
- 类型安全:所有操作均为 JSON Schema 定义的 typed 工具,命令以 argv 数组形式执行,不会进入 shell,避免注入风险。
- 安全策略:默认安全。涉及破坏性操作(如合并、删除、强制推送、重建 Codespace)必须显式设置
confirm: true。可通过配置项allowDestructive全局开关控制。 - 零配置认证:插件会自动复用
gh的登录状态、环境变量GH_TOKEN,或在 gh 未登录时尝试读取 git credential helper 中的凭据。 - 零依赖:仅使用 Node.js 内置模块,无需额外构建或依赖管理。
- 许可证:MIT。
- 环境要求:Node >= 18, gh CLI。
生态背景¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。本插件收录在社区目录中,旨在为 DSH 提供统一的 GitHub 交互能力。