dsh-github-bridge:連接 DSH 與 GitHub 的插件

前言

DSH 生態裏,“一切皆插件”是一個很常見的擴展思路。對開發者來說,如果讓智能體直接處理 GitHub 倉庫、Issues、Pull Requests、文件內容和搜索,往往會遇到兩類問題:一類是 API 請求散落在提示詞或臨時命令裏,另一類是手動管理令牌不夠順手。

dsh-github-bridge 做的事情比較具體:給 DSH/dwsh 增加 GitHub OAuth 登錄認證,並提供一組 github_* 工具,讓 DSH 可以按已授權範圍調用 GitHub 能力。

這是什麼

dsh-github-bridge 是一個連接 DSH/dwsh 與 GitHub 的插件,主要包含三塊內容:

  • 基於 OAuth 2.0 設備碼流程的 GitHub 登錄認證;
  • 一組覆蓋倉庫、Issues、Pull Requests、文件內容和搜索的 github_* 工具;
  • 插件配置頁中的 dsh-github-bridge 認證卡片。

倉庫地址顯示爲 gaolei-mark43/dsh-github-bridge,許可證爲 MIT。已抓取資料中未單獨署名維護者,因此本文不把某個具體維護關係當作確定事實。

核心功能

認證相關

  • 使用 OAuth 2.0 設備碼流程完成 GitHub 登錄。
  • 令牌存入 DSH 憑據服務,模型永遠不會看到令牌本身。
  • 提供 github_auth_status 查看登錄狀態。
  • 提供 github_logout 退出登錄。

工具能力

插件提供的工具包括:

  • 通用 GitHub REST API 調用:github_request
  • 用戶與倉庫:github_get_user、github_list_repos、github_get_repo
  • Issues:github_list_issues、github_get_issue、github_create_issue
  • Pull Requests:github_list_pull_requests
  • 文件內容:github_get_file
  • 搜索:github_search_repositories
  • 認證輔助:github_auth_status、github_logout

安裝與啓用

先在本地拿到插件目錄,然後執行安裝命令:

cd /path/to/dsh-github-bridge
dsh plugin --profile web add .

這條命令會把當前目錄作爲插件安裝到 web profile 中。

安裝完成後,需要重啓一次 DSH。重啓後,插件配置卡片會出現在 設置 → 插件 中。

配置與登錄

先準備 GitHub OAuth App

使用 OAuth 登錄時,需要配置 GitHub OAuth App 的 Client ID。設備碼流程不需要 client_secret。

創建或檢查 OAuth App 時,注意以下幾點:

  • 必須勾選 Enable Device Flow,否則登錄會報 device_flow_disabled。
  • 建議取消勾選 Expire user access tokens。該插件只存 access token,暫未支持 refresh token 刷新;如果開啓令牌過期,過期後登錄會失效。
  • scopes 默認爲 repo,可選 public_repo 等;權限按所填範圍生效。
  • oauthBaseUrl 默認爲 https://github.com,GitHub Enterprise 場景下可以修改。
  • baseUrl 默認爲 https://api.github.com。
  • defaultOwner / defaultRepo 是可選便利項;不填時,相關工具會要求顯式給出 owner / repo 參數。

在配置頁面完成登錄

登錄可以先在插件配置頁完成:

  1. 打開 設置 → 插件,進入 dsh-github-bridge 卡片。
  2. 填入 Client ID,並保存。
  3. 點擊卡片上的 Login with GitHub。
  4. 按卡片展示的驗證 URL 和一次性代碼完成授權。

配置頁面填入的值優先級高於 patch 層配置;清空某個字段後,會回退到 patch 層配置的值。

也可以在同一張卡片裏手動粘貼令牌。這裏只接受訪問令牌,例如 ghp_... 或 github_pat_...;Client ID 不是訪問令牌,粘貼後會被拒絕。

典型用法

安裝並登錄後,可以直接對 DSH 提出這些請求:

  • 列出我的 GitHub 倉庫
  • 讀取 my-org/my-repo 的 README
  • 列出 my-org/my-repo 的 open issues
  • 在 my-org/my-repo 創建 issue,標題是……,內容是……
  • 搜索 GitHub 上關於 dsh 的 TypeScript 插件
  • 我的 GitHub 登錄狀態怎麼樣?(github_auth_status)
  • 退出 GitHub 登錄(github_logout)

DSH 會根據請求調用對應的 github_* 工具。

適用場景與注意

適合需要讓 DSH/dwsh 直接查詢 GitHub 倉庫、Issues、Pull Requests、文件內容或執行搜索的開發者。

使用前注意幾點:

  • 插件以當前 DSH 進程權限運行。
  • 安裝前建議檢查源碼與許可證。
  • 本項目許可證爲 MIT。
  • 社區目錄是獨立站點,不是 DeepSeek 官方應用商店。

結尾

dsh-github-bridge 的價值不在於替換 GitHub 本身,而是把 GitHub 登錄認證和常用 github_* 操作收進 DSH 插件裏,減少手工管理令牌和拼接 API 請求的成本。

相關鏈接:

  • GitHub:https://github.com/gaolei-mark43/dsh-github-bridge
  • 目錄頁(來自插件線索,未在本次覈對資料中確認):https://www.skillhub.cn/plugins/gaolei-mark43/dsh-github-bridge
羽毛球分组比赛记分
小程序二维码

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

小夜