dsh-llm-github-copilot:給 DeepSeek Harness 增加 GitHub Copilot 登錄

前言

DeepSeek Harness 的插件生態圍繞“一切皆插件”展開:模型提供方、登錄流程、設置頁都可以由插件補上。社區目錄是獨立站點,與 DeepSeek 或幻方沒有官方從屬關係,不能按官方應用商店理解。

Harness 本身可以提供 github-copilot provider,用來訪問 GitHub Copilot 計劃內的模型;但它不負責完成登錄。lujianjun19/dsh-llm-github-copilot 補的就是這一段:執行 GitHub Copilot 登錄,把憑據交給 Harness 已有的 github-copilot provider 使用。

這是什麼

lujianjun19/dsh-llm-github-copilot 是一個 DeepSeek Harness 插件,用於爲 Harness 提供 GitHub Copilot 登錄能力。它由 lujianjun19 維護,採用 MIT 許可證。

它主要解決一個具體缺口:Harness 可以消費 GitHub Copilot 模型,但需要有一個地方完成登錄並保存憑據。登錄完成後,插件把憑據交給 Harness 的 @deepseek-ai/dsh-llm-pi-ai route 使用。模型請求、端點、圖片、流式輸出等行爲由 Harness route 處理,不在插件裏重新實現。

核心能力

下面介紹已覈實的主要能力。

  • GitHub Copilot 設備流登錄:可以通過 /copilot-login 或 Harness 設置頁登錄,憑據會自動保存。
  • 自動刷新:Copilot 短期 token 的刷新由 Harness 下游處理。
  • 兼容已有 token:啓動時可以採用已有的 GITHUB_COPILOT_OAUTH_TOKEN,避免重複登錄。
  • 設置頁:Harness Web 設置中有獨立的 GitHub Copilot 區域,用於登錄、查看狀態和退出登錄。
  • Slash 命令:提供 /copilot-login、/copilot-status、/copilot-logout。
  • 使用 Copilot 計劃內的模型:可以訪問 GPT-5 family、Claude、Gemini 等模型,具體以當前 GitHub Copilot 計劃可用模型爲準。

安裝與啓用

前置條件

使用前需要滿足以下條件:

  • DeepSeek Harness 0.1.2-alpha.1 或更高版本,並且帶有其捆綁的 @deepseek-ai/dsh-llm-pi-ai route。
  • 一個具有 GitHub Copilot 訂閱的 GitHub 賬號。
  • Node.js ≥ 24。

安裝

下面命令用於把插件安裝到 web profile:

dsh plugin --profile web add @lujianjun19/dsh-llm-github-copilot

如果使用 pnpm 10 或更高版本,並且安裝過程提示需要批准構建,按提示在 profile 的 pnpm-workspace.yaml 中加入:

allowBuilds:
  dsh-llm-github-copilot: true

然後重新執行安裝命令。

註冊插件

安裝完成後,在 profile 的 cordis.patch.yml 中註冊插件:

- insert:
    - id: llm-github-copilot
      name: '@lujianjun19/dsh-llm-github-copilot'

啓動

註冊完成後,重新啓動 DSH:

dsh web

安裝前檢查

插件會在當前 dsh 進程權限下運行。安裝前建議查看源碼、確認 MIT 許可證,並確認自己願意讓該插件訪問當前 profile 的憑據和配置。

源碼目錄頁:

https://www.skillhub.cn/plugins/lujianjun19/dsh-llm-github-copilot

GitHub 倉庫:

https://github.com/lujianjun19/dsh-llm-github-copilot

登錄與狀態

在 Harness 聊天界面中運行:

/copilot-login

按照提示操作:在瀏覽器中打開驗證 URL,輸入顯示的設備碼,並完成 GitHub App 授權。授權完成後,token 會自動保存。

確認登錄狀態時,可以運行:

/copilot-status

退出登錄時,運行:

/copilot-logout

Harness 設置頁也提供 GitHub Copilot 區域,可以完成登錄、狀態檢查和退出登錄。

使用已有 token

如果已經有 GitHub OAuth token,也可以通過環境變量提供:

export GITHUB_COPILOT_OAUTH_TOKEN=<your-github-oauth-token>

插件支持以下 token 類型:

前綴 來源
gho_ OAuth token,例如來自 gh auth login
github_pat_ 細粒度 PAT,需要具有 Copilot 權限
ghu_ GitHub App user token,例如來自 VS Code client

ghp_ classic PAT 不被 Copilot API 接受。

選擇模型

登錄只負責發佈憑據,不負責選擇模型。登錄完成後,需要到 Harness 設置中選擇模型:

  1. 打開 Settings → Models。
  2. 添加 github-copilot provider。
  3. 在 provider 下選擇要使用的模型。

具體可用模型取決於當前 GitHub Copilot 計劃。

更新插件

DSH profile 內部使用 pnpm,lockfile 會鎖定已安裝的確切版本。只重新執行 dsh plugin add 可能不會獲取到新版本。

更新時可以執行:

npm install --prefix ~/.dsh/profiles/web @lujianjun19/dsh-llm-github-copilot@latest

或使用 pnpm:

pnpm add --dir ~/.dsh/profiles/web @lujianjun19/dsh-llm-github-copilot@latest --no-frozen-lockfile

然後重新啓動:

dsh web

確認版本時,打開 Settings → GitHub Copilot,面板底部會顯示版本信息。

配置

插件默認不需要配置。唯一可配置項是 oauthTokenEnv,用於指定保存 GitHub OAuth token 的環境變量名或憑據引用:

- id: llm-github-copilot
  config:
    oauthTokenEnv: GITHUB_COPILOT_OAUTH_TOKEN

模型、端點和請求行爲不在該插件裏配置,而是在 Harness route 的 llm-pi-ai settings section 中配置。

從 0.4.x 升級

0.4.5 及更早版本註冊過自己的 github-copilot-official provider。現在該 provider 不再存在。

如果現有配置或會話中仍使用 github-copilot-official,應切換到 github-copilot provider。模型 id 保持一致。已有憑據會被自動採用,不需要重新登錄。

常見情況

下面列出幾個已出現的處理點。

模型選擇器沒有顯示 GitHub Copilot 分組

可能是插件仍在未加載新包的舊進程中。重新啓動:

dsh web

已保存的 token 會保留,不需要重新登錄。

模型存在但缺少 Claude

可能是出口 IP 被限制。可以設置代理後重啓:

export HTTPS_PROXY=<proxy-url>
dsh web

/copilot-login 超時或網絡錯誤

這通常發生在設備碼輪詢期間。重新運行登錄命令即可獲取新碼,舊碼會自動失效:

/copilot-login

提示 configurable provider "github-copilot" is already declared

這個插件不註冊自己的 provider,它只是爲 Harness 的 github-copilot provider 發佈憑據。如果沒有模型,先確認:

  1. /copilot-status 顯示已登錄。
  2. Settings → Models 中已添加 github-copilot provider。
  3. cordis.patch.yml 中使用了:
- id: llm-github-copilot
  name: '@lujianjun19/dsh-llm-github-copilot'

Token 過期

不需要手動處理。插件保存長期 GitHub OAuth token,Harness 下游會在短期 Copilot token 過期前刷新它。只有顯式退出登錄或 token 被撤銷後,才需要重新執行 /copilot-login。

結尾

lujianjun19/dsh-llm-github-copilot 的定位比較窄:它不重新實現模型請求,只負責 GitHub Copilot 登錄,並把憑據交給 Harness 已有的 github-copilot provider。對於已經在用 DeepSeek Harness、並且想通過 GitHub Copilot 計劃內模型擴展模型選擇的場景,這個插件可以把登錄、狀態檢查、token 採用和設置頁操作放進同一個流程裏。

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

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

小夜