dsh-github-panel:在 DeepSeek Harness 內完成 GitHub 日常操作

前言

用 DeepSeek Harness 做智能體開發時,議題、拉取請求、通知和倉庫文件往往還要切到瀏覽器裏的 github.com。令牌若只在網頁裏用,宿主進程裏的 Agent 又無法直接調 GitHub API 或維護本地克隆與技能目錄。下面介紹社區插件 dsh-github-panel(維護者 gpta76),它在 DSH 側欄提供一塊 GitHub 控制台:粘貼一次個人訪問令牌,在應用內讀寫倉庫相關數據,並支持克隆、自動同步與從 GitHub 安裝技能項目。

這是什麼

dsh-github-panel 是面向 DeepSeek Harness 的 web 側欄插件,分類爲「聯網工具」。界面跑在 Web UI,但所有 GitHub 請求由宿主進程發出,不經過 CORS 代理,令牌也不會進入瀏覽器。數據每次刷新都從 GitHub REST API 讀取;面板可見時後臺約每 60 秒刷新一次,與 github.com 不易長期不一致。

插件當前版本爲 1.2.0,許可證 MIT。社區目錄頁:skillhub.cn/plugins/gpta76/dsh-github-panel;源碼與說明:github.com/gpta76/dsh-github-panel。DSH 生態強調「一切皆插件」;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

核心功能

倉庫與協作

能力 說明
倉庫 列出可訪問倉庫,本地搜索,瀏覽目錄樹,預覽文件(上限 300 KB)
Issues 開/關篩選,創建、評論、關閉或重新打開
Pull requests 列表、查看、評論、合併(普通 merge commit,暫無 rebase/squash 選項)
Commits 近期提交,含作者、說明與時間
Notifications 未讀線程,單條或全部標已讀,可跳到對應 issue/PR
Stars 星標列表,支持搜索與即時取消星標
Social 關注的人、粉絲、所屬組織
Activity 你的公開動態與所關注用戶的公開動態

克隆與自動同步

從「我的倉庫 / 星標 / 搜索」可將倉庫克隆到磁盤,並在上游更新時儘量保持同步:

  • 默認路徑:$DSH_HOME/github-clones/<owner>/<repo>(即 ~/.dsh/github-clones/...);可用環境變量 DSH_GITHUB_CLONE_DIR 覆蓋。
  • 同步策略:fetch + merge --ff-only;工作區乾淨則跟隨上游分支;有本地改動則標記爲 dirty 且不覆蓋;分叉則報告而不強制 reset。
  • 默認每 15 分鐘自動同步,可在面板關閉或調整間隔;克隆/拉取時顯示整體進度與當前 git 階段。
  • 本機需安裝 git 且在 PATH 上;Windows 上插件會使用 http.sslBackend=openssl 以規避部分 Schannel 證書錯誤。

克隆與安裝技能是兩件獨立的事:克隆只把倉庫放到 github-clones;只有安裝纔會把含 SKILL.md 的內容寫入 Agent 使用的 ~/.dsh/skills。

技能庫

在「技能」視圖或通過 Agent 工具,可將 GitHub 上的技能項目裝進本地目錄:

  • 單技能:owner/repo,可選子目錄 dir 與 ref。
  • 整項目:把倉庫內所有 SKILL.md 作爲一組「項目」安裝,並寫入中文一行簡介、用途大類(漫劇 / 圖像設計 / 視頻音頻 / 開發工具 / 文檔辦公 / 數據分析 / 自動化)及小類,以及寫入 whenToUse 的 AI 檢索關鍵詞。
  • 元數據落在 $DSH_HOME/plugin-data/github-panel-projects.json,技能目錄旁有 .dsh-project.json。
  • 「檢查更新」與 15 分鐘自動同步會對比上游提交併重裝已變動的項目;已安裝技能的克隆行顯示綠色「已安裝」。

訪客模式(邀請碼)

連接卡片上的「邀請碼」可進入只讀訪客視圖:僅用公開 GitHub 數據展示資料、公開倉庫、星標與動態,不保存令牌,宿主拒絕寫操作。

提供給 Agent 的八項工具

宿主註冊以下工具,便於對話中驅動 GitHub、克隆緩存與技能庫:

工具 用途
github_api 用已存令牌調用任意 GitHub REST(method、path、可選 body)
github_skill_list 列出本地目錄中的技能及來源倉庫
github_skill_install 安裝 owner/repo 到 ~/.dsh/skills
github_skill_remove 按名稱移除已安裝技能
github_skill_project 對整技能項目 list / install / remove
github_clone_list 列出本地克隆及分支、upstream、ahead/behind、dirty 狀態
github_clone 克隆 owner/repo(可選 ref)
github_clone_sync 對單個克隆 fetch + 快進,或 all: true

安裝與啓用

官方安裝命令(須帶 --profile web):

dsh plugin --profile web add github:gpta76/dsh-github-panel

若使用本地檢出目錄,也可:

dsh plugin --profile web add /absolute/path/to/dsh-github-panel

安裝後重啓 DeepSeek Harness,在側欄打開 GitHub。

連接 GitHub

  1. 在 GitHub Settings → Tokens 創建個人訪問令牌。
    - Classic:勾選 repo、read:user、notifications。
    - Fine-grained:需倉庫內容、issues 與 PR 讀寫,以及 profile 相關權限(見 README 說明)。
  2. 將令牌粘貼到面板,點擊 連接 / Connect。宿主會先用 GET /user 校驗再保存。

令牌存儲位置:

$DSH_HOME/plugin-data/github-panel.json

默認即 ~/.dsh/plugin-data/github-panel.json,文件權限 0600。舊版本若曾寫入共享憑據存儲,首次讀取會遷移到該文件並刪除舊記錄。點擊 斷開 / Disconnect 會刪除令牌;插件不把令牌共享給其他組件。

典型用法

在面板內處理通知與 PR:連接後打開通知頁,標已讀後點進對應 issue 或 PR,在面板內評論或合併(受令牌權限與倉庫策略約束)。

克隆並跟蹤上游:在倉庫或星標列表點「克隆」,觀察進度條;之後依賴 15 分鐘自動同步或手動觸發同步,本地有未提交改動時不會被快進覆蓋。

爲 Agent 安裝技能項目:克隆某技能倉庫後,點該行「安裝」,或於技能視圖填寫 owner/repo;Agent 匹配任務時會依據 whenToUse 與分類檢索 ~/.dsh/skills/<name>/SKILL.md。

在對話裏讓 Agent 調 API:在具備工具權限的會話中,Agent 可通過 github_api 訪問 REST,或用 github_clone / github_clone_sync 管理本地克隆。

適用場景與注意

適合希望在 DSH 內閉環 GitHub 讀寫、本地克隆與技能安裝、且願意自行管理 PAT 的開發者。單次安裝綁定一個 GitHub 賬號;合併策略目前僅爲普通 merge。

安全與運行環境方面請留意:

  • 插件以當前 dsh 進程權限運行,安裝前建議閱讀 源碼 與 MIT 許可證,確認路由校驗、RPC 路徑限制(僅接受以 / 開頭的路徑、拒絕絕對 URL)及令牌僅用於 api.github.com 等說明是否符合你的策略。
  • 無需 npm 發佈;直接從 GitHub 倉庫安裝即可。

結尾

dsh-github-panel 把令牌校驗、REST 訪問、克隆同步和技能目錄維護收進 DSH 側欄與宿主工具,減少在瀏覽器與終端之間來回切換。需要詳情時查閱社區目錄 skillhub.cn/plugins/gpta76/dsh-github-panel 與倉庫 README github.com/gpta76/dsh-github-panel。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜