前言¶
DSH 插件的發佈與跨設備協作通常涉及繁瑣的手動操作。這個插件通過 GitHub 提供了一套自動化的發佈與協作流程。它爲 DSH 智能體提供了註冊的工具,用於檢查插件合規性、發佈到倉庫、以及在多臺機器間同步開發狀態。
插件概覽¶
- 名稱: gty2408/dsh-plugin-publisher
- 維護者: Gty2408
- 許可: MIT
- 類別: 聯網工具
- 核心價值: 將插件一鍵上傳到 GitHub,並支持多臺電腦協作開發同一個倉庫。
安裝¶
安裝命令如下:
dsh plugin --profile desktop add <本目錄路徑>
安裝完成後必須重啓 DSH,新增的 bundle 只在啓動時讀取。
功能與命令¶
插件註冊了以下七個工具,用於不同的開發階段:
- check_plugin: 檢查插件目錄是否符合要求(只讀,不聯網)。
- publish_plugin: 創建 GitHub 倉庫、上傳代碼、設置 topic。
- share_project: 將本機目錄變爲協作項目(寫入
main,建立本機分支)。 - join_project: 在另一臺電腦加入已有項目(建立本機分支、安裝 SSH key)。
- sync_project: 日常同步流程(拉取
main→ 合併 → 推送本機分支)。 - merge_project: 將其他機器的分支合併進來(本地三方合併)。
- project_status: 報告本機在該項目中的狀態(只讀)。
注意事項¶
使用時需注意以下限制和特性:
- 傳輸限制: API 傳輸模式下,單文件上限爲 40 MB。超大會報錯並建議使用 release asset。
- 文件模式: API 傳輸會丟失文件模式,例如符號鏈接和特定權限位(如 100755)。
- 權限限制:
repo權限無法刪除倉庫,也無法管理賬號級的 SSH key(僅限倉庫級 deploy key)。 - 衝突處理: 二進制文件衝突無法自動合併,必須手動選擇保留哪一個。
- 可見性: 公開倉庫推送到 GitHub 時即可見,草稿狀態無法隱藏。
- 默認行爲: 發佈時默認
replace_existing: false,不會覆蓋已有代碼。若倉庫已有提交,發佈會被拒絕。
結語¶
該工具通過 Git 和 REST API 雙傳輸回退機制,解決了網絡不穩定導致上傳失敗的問題。它爲 DSH 插件的版本管理和多機協作提供了基礎支撐。