dsh-github-hot:在 DeepSeek Harness 裏看 GitHub 漲星榜

前言

做智能體開發的同行經常要回答同一個問題:最近一週哪些項目在漲星。傳統做法是打開 GitHub Trending 頁面、再手動翻 star 歷史,數據散在幾個頁面裏,周和月的口徑也不統一。dsh-github-hot 把這個動作收進 DeepSeek Harness(DSH)側欄:日、周、月三榜切換,展示每期漲星 TOP20,並把星數曲線、項目簡介、多項目對比畫在同一個界面裏。它由 chiinsight 維護,分類爲聯網工具,面向 DSH 插件生態開發者。

這是什麼

一句話定位:給 DeepSeek Harness 裝的 GitHub 漲星榜插件,數據來自 Hysen Labs 的公開頁面,不需要 API key。

  • 維護者:chiinsight
  • 版本:0.1.5(package.json)
  • 許可證:MIT
  • 運行要求:Node.js >= 18.0.0
  • 插件形態:DSH 插件,含 web 側前端(React 18.3.1),安裝後左側欄出現「GitHub Hot」入口

它解決的是「榜單 + 星數趨勢 + 項目簡介」三者割裂的問題,把可視化做進 DSH,而不是再開一個網頁標籤。

功能與視圖

插件分三種視圖,均爲一次性取數後本地交互,無需反覆刷新頁面。

1、三榜切換。頂部一鍵切日榜、周榜、月榜,每個榜單展示漲星 TOP20。日榜與月榜走 CSV 數據,周榜走 HTML 解析。

2、榜單視圖。每個項目一張卡片,包含漲星數、名次徽章、語言與許可證標籤,以及漲星曲線縮略圖。卡片流而非表格,適合快速掃完 20 項。

3、詳情。點開任意項目,展示項目簡介、星數歷史曲線、期間漲星、起點星數、最新星數。缺簡介時顯示「暫無簡介」,不使用模型生成內容頂替原文。

4、統計視圖。日榜使用頭像點圖,每個項目一個點,按當日精確漲星數決定高低,不連線;周榜與月榜先用橫條比較榜單原始漲星數(默認前 5 項,可展開全部),再對比周期內的採樣曲線。縱軸隨所選項目重算:同量級使用線性,非零末端漲幅的絕對值相差超過 10 倍時切換爲對稱對數。末端頭像自動避讓,用引導線連接真實數據點;支持前 5、前 10、全選、清空。

5、雙主題。深色(融入 DSH)與紙感貼紙風,右上角切換。

數據來源與準確性

榜單數據來自 Hysen Labs 公開頁面,數據按 CC BY 4.0 授權使用,界面底部與詳情頁均保留署名與外鏈。取數方式按內容分四種:

日榜 / 月榜   /data/star-growth-24h.csv 、/data/star-growth-30d.csv(CSV)
周榜 TOP10   /weekly/{YYYY-MM-DD}(HTML 解析)
星數曲線     /chart/{slug}.svg(SVG 路徑解析)
項目簡介     /projects/{slug}(HTML 解析)

插件自身對取數結果有幾條硬約束,寫插件時值得參考:

1、取數失敗不編造。某榜單取不到時明確顯示失敗原因與快照時間,不用舊數據冒充新數據。
2、解析失敗即報錯。周榜 HTML 或曲線 SVG 無法解析時整段標記失敗,不做模糊推斷。
3、周榜依賴頁面結構。上游改版可能導致周榜失效,此時更新 parseWeeklyHtml 即可;日榜與月榜走 CSV,穩定性更高。
4、曲線與榜單口徑分開。曲線數值由來源 SVG 還原,屬於估算;每條線從期內首個可用採樣日起算,圖例顯示起始日期,少於兩個有效採樣點不畫線。精確的本期漲星以上方橫條數值爲準。
5、英文模式不調用翻譯模型。榜單與項目詳情直接顯示原文;中文模式使用宿主默認模型補譯文。

安裝與啓用

官方安裝命令走 DSH 插件安裝器,--profile desktop 指定桌面端 profile:

dsh plugin --profile desktop add dsh-github-hot

也可以從本地目錄安裝,適合改動後又想在本地驗證的情況:

dsh plugin --profile desktop add /path/to/dsh-github-hot

安裝後重啓 DeepSeek Harness,左側欄出現「GitHub Hot」入口。插件入口與註冊字段在 package.json 的 dsh 字段中聲明:

{
  "dsh": {
    "bundle": { "patch": "./cordis.patch.yml" },
    "client": { "platform": "web", "immediately": true, "inject": [] }
  }
}

緩存與請求頻率

上游數據每天更新一次,插件按自然日而非分鐘設計緩存,避免無意義的出網請求:

榜單                       磁盤 $DSH_HOME/dsh-github-hot/cache.json,跨自然日失效
項目詳情與曲線             同上,跨自然日失效
簡介中譯                   磁盤 zh.json,原文變更時才重譯
項目頭像                   磁盤 avatars/(上限 400),7 天
前端詳情                   瀏覽器 localStorage,跨自然日失效

界面不做分鐘級輪詢,僅在頁面跨過零點時靜默刷新。出網請求按 host 分隊列、限制併發,同一 URL 在途去重。

典型用法

裝好後無需配置 API key,直接在 DSH 側欄操作即可:

1、在日榜瀏覽當日漲星 TOP20,需要更長週期時切周榜或月榜。
2、對某個項目點開詳情,看簡介、期間漲星與星數曲線,判斷它是不是短期爆量而非長期增長。
3、在統計視圖裏勾選多個項目,對比周期內的採樣曲線;末段漲幅相差較大時縱軸會自動切對稱對數,避免小漲幅項目被壓成一條直線。
4、關心穩定增長而非單日爆量時,以橫條的原始漲星數爲準,曲線只作趨勢參考。

若要改動解析邏輯,本地跑測試驗證:

npm ci      # 安裝測試所需的 React 開發依賴
npm test    # 運行全部測試(部分用例會訪問上游站點)

測試覆蓋 parsers、detail、client、render、visual、baseline、avatar、cache、uicache、persist、smooth、timezone、lang、concurrency、hardening、resilience、interactions、routes 等面,其中解析類用例直接對線上的真實響應做校驗。

適用場景與注意

適合三類人:做 DSH 插件生態的開發者,想把 GitHub 漲星跟蹤放進工作流而非另開網頁;需要快速評估某批開源項目真實漲星趨勢的人;以及想學習「CSV + HTML + SVG 混合解析 + 按自然日緩存 + 取數失敗不兜底」這套實現的插件作者。

需要注意兩點:

1、插件以當前 DSH 進程的權限運行,安裝前應先讀源碼、確認許可證(MIT)與 cordis.patch.yml 補丁內容,確認與宿主版本兼容後再啓用。
2、周榜依賴上游 HTML 結構,上游改版會失效;此時屬預期行爲,按 README 更新 parseWeeklyHtml 即可。曲線數值是按 SVG 還原的估算,不要當作精確 star 計數使用。

結尾

dsh-github-hot 的價值在把漲星榜單、星數曲線、項目簡介收到 DSH 側欄一個入口裏,並把「取不到數據就報錯、不兜底編造」當作明確的行爲約定。目錄頁:https://www.skillhub.cn/plugins/chiinsight/dsh-github-hot;源碼:https://github.com/chiinsight/dsh-github-hot。

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

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

小夜