前言¶
在 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