前言¶
用 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¶
- 在 GitHub Settings → Tokens 創建個人訪問令牌。
- Classic:勾選repo、read:user、notifications。
- Fine-grained:需倉庫內容、issues 與 PR 讀寫,以及 profile 相關權限(見 README 說明)。 - 將令牌粘貼到面板,點擊 連接 / 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。