前言¶
在 DeepSeek Harness (DSH) 的 WSL 开发环境中,智能体通常需要与 GitHub 交互,例如查询某个仓库的开放 PR 数量或最新的 CI Actions 运行状态。为了安全起见,开发者通常不希望将个人访问令牌 (PAT) 暴露在聊天记录或工具输出中。
dsh-wsl-github 插件通过 GitHub App 的机制解决了这个问题。它允许 WSL 智能体在内存中签发短期安装令牌,从而安全地调用 GitHub API,且工具的输出永远不会包含私钥、JWT 或令牌本身。
这是什么¶
这是一个为 DSH WSL 环境设计的插件,由用户 173787247 维护。它旨在提供轻量级的 GitHub 交互能力,避免引入庞大的集成库。
该插件属于 dsh-wsl-kit 套件的一部分,推荐使用 KIT_SET 环境变量(如 github 或 full)来统一管理依赖。其核心价值在于“零密钥泄露”:所有敏感信息仅在内存中短暂存在,工具输出仅包含业务数据(如 PR 列表、Actions 状态)。
核心功能¶
插件提供了两个核心工具:
github_app_hint:检查当前环境是否配置了 GitHub App 凭据或环境文件(~/.dsh/dsh-wsl-github.env)。它仅提示“存在性”,不输出任何密钥内容。github_repo_status:获取当前仓库(或指定 repo)的信息。返回结果包括最多 5 个开放 PR 和最新的 Actions 运行状态。
安装与启用¶
通过 DSH 官方插件命令安装:
dsh plugin --profile web add github:173787247/dsh-wsl-github
安装完成后,需确保你的 DSH 版本满足要求(最低 ≥ 0.1.2)。
典型用法¶
使用该插件的标准流程分为三步:注册 App、加载环境、调用工具。
- 注册 GitHub App
首次使用需要在本地生成并注册 GitHub App。运行以下命令:
npm run register-app
此脚本会调用 `github-app-manifest.json` 中的权限配置,在 GitHub 上创建 App,并将 App ID 和私钥路径写入 `~/.dsh/` 目录,**不会**在终端打印敏感信息。
- 加载环境变量
在启动dsh web之前,需要将环境变量加载到当前进程:
set -a
source "$HOME/.dsh/dsh-wsl-github.env"
set +a
dsh web
在 Windows PowerShell 中,可以使用类似的管道命令将环境变量注入进程。
- 调用工具
在与智能体对话时,直接发送指令:- “Run
github_app_hint.” - “Run
github_repo_statusfor this repo.”
智能体会执行相应的工具并返回状态信息。如果需要打开返回的链接,需配合dsh-wsl-browser插件使用win_open_url。
- “Run
注意事项¶
- 配置项逻辑:插件的配置文件中,如果
appId、privateKeyPath或installationId为空字符串,插件会自动从环境变量中读取。 - 依赖:要使用
win_open_url打开链接,需要确保已安装并启用了dsh-wsl-browser插件。 - 版本要求:插件运行需要 DSH 版本不低于
0.1.2。 - 安全性:该工具设计为仅输出业务数据,私钥和令牌绝不会出现在日志或输出中。
相关资源¶
- 插件目录:dsh-wsl-github - SkillHub
- GitHub 仓库:173787247/dsh-wsl-github