github-trending:在 Agent 里拉取並解讀 GitHub Trending

前言

想快速知道 GitHub 今日、本週或本月在漲星的項目,常見做法是打開 github.com/trending 自己翻表,或寫爬蟲把 HTML 解析成列表。前者費時,後者要維護解析邏輯,還要在「榜單」和「爲什麼值得看」之間再花一輪整理。

下面介紹 SkillHub 上的 github-trending(座標 @user_cea1fb81/github-trending-pro)。它把抓取 Trending 頁、結構化輸出和報告式分析寫進 Agent 的 SKILL 工作流:用戶用自然語言要熱榜或趨勢分析時,Agent 按技能說明調腳本取數,再按固定格式寫可讀報告,並約束不要編造星標、描述等字段。

這是什麼

github-trending 是面向 coding Agent 的社區 Skill(來源:community,分類:data-analysis,版本 1.0.0)。發佈者爲 SkillHub 用戶 user_cea1fb81(頁面展示作者爲「奔跑的脆皮腸」)。

技能定位在官方簡介中寫得很直接:當用戶詢問 GitHub Trending、熱門倉庫、按日/周/月榜單、按編程語言篩選、按文檔口語(spoken language)篩選,或對熱門項目做趨勢分析時使用。SkillHub 標籤標明 requires_api_key=false,不依賴第三方 API Key;數據來自對 GitHub Trending 公開頁面的 HTTP 抓取與 HTML 解析。

核心功能

經覈對技能包內的 SKILL.md 與 scripts/fetch_trending.py,可確認的能力如下。

榜單抓取與篩選

  1. 時間範圍:daily(今日)、weekly(本週)、monthly(本月),默認 daily。
  2. 編程語言:對應 GitHub Trending 的語言路徑,例如 python、rust、javascript;不指定則使用全語言頁。
  3. 口語/文檔語言:通過 --spoken-language 傳入語言代碼(如 zh、en),映射爲 Trending URL 的 spoken_language_code 參數。
  4. 數量:--limit 控制返回倉庫數,技能說明默認傾向 Top 10。

抓取目標 URL 形如 https://github.com/trending 或 https://github.com/trending/{language}?since=...,由腳本 build_url 拼裝。

結構化輸出

腳本默認輸出 JSON,包含報告元數據(date、since、language、spoken_language、url、updated_at)和倉庫列表。每條倉庫兼有兼容字段(rank、repo、url、description、language、total_stars、forks、current_period_stars)與便於分析的擴展字段(full_name、author、summary、primary_lang 等)。

用戶明確要求表格或導出時,可使用 --format markdown 得到帶 Overview 表的 Markdown。

分析報告(Agent 層)

技能要求 Agent 不只複製榜單:在 JSON 事實基礎上寫 Feature / Functionality / Implementation / Why Trending,並做主題歸納(如 AI agent、開發者工具、基礎設施等)。分析須基於腳本輸出與公開描述,缺信息時寫明「未說明」或省略,不得虛構星標、URL 或作者信息。

安裝與啓用

安裝 SkillHub CLI

若本機尚未安裝 skillhub,可先按官方安裝文檔檢查或安裝:

command -v skillhub && skillhub --version

未安裝時,完整安裝(CLI + 默認 Skill)示例:

curl -fsSL https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/install.sh | bash

說明見 SkillHub 安裝與優先源配置。

安裝時必須用 --dir 指向當前 Agent 的 skills 目錄,否則技能可能落在當前目錄的 ./skills/ 而未被 Agent 加載。官方搜索給出的安裝命令爲:

skillhub install github-trending-pro --namespace user_cea1fb81 --dir <skills 目錄>

常見路徑(來自 SkillHub 安裝文檔):

  • Cursor:~/.cursor/skills/
  • Claude Code:~/.claude/skills/
  • Codex:~/.codex/skills/ 或項目下的 .agents/skills/

也可在對話中讓 AI 按 https://skillhub.cn/install/skillhub.md 安裝 @user_cea1fb81/github-trending-pro。

安裝完成後,按你所用客戶端的要求重啓或刷新 Agent,使技能被發現。

運行環境

抓取腳本爲 Python 3,僅使用標準庫(urllib、html.parser 等),無需額外 pip 依賴。執行時需能訪問 github.com(腳本請求頭含 User-Agent: codex-github-trending-skill/1.0)。

典型用法

在對話中觸發

用自然語言描述需求即可,與技能 description 對齊,例如:

  • 「列出今天 GitHub Trending 前 10,並分析 AI 相關主題。」
  • 「本週 Rust 語言 Trending 有哪些項目?」
  • 「按月榜看 JavaScript 熱門倉庫,文檔語言偏中文的。」

Agent 應推斷 since、language、spoken-language,在技能目錄下執行 scripts/fetch_trending.py,默認用 JSON 做分析;僅當用戶要原始表時再選 Markdown。

直接運行腳本(可復現)

在已安裝的技能目錄內執行(路徑以你本機安裝位置爲準):

python3 scripts/fetch_trending.py --since daily --limit 10

按語言與週期篩選,並輸出 JSON:

python3 scripts/fetch_trending.py --language python --since weekly --limit 10 --format json

帶口語篩選的示例(技能文檔中的命令):

python3 scripts/fetch_trending.py --language rust --since monthly --spoken-language zh --limit 10

需要 Markdown 概覽表時:

python3 scripts/fetch_trending.py --language javascript --since daily --format markdown

報告結構

人工可讀報告時,技能要求先給出標題、日期、範圍、語言與口語篩選,再附固定表頭的 Overview,例如:

| # | Repo | Total Stars | Today | Lang | Description |
|---|------|-------------|-------|------|-------------|

周榜、月榜可將「Today」列名改爲 This Week 或 This Month(除非用戶明確要求保留 Today)。各倉庫詳情按技能模板寫 URL、星標、增幅、語言與分段分析,最後附簡短趨勢總結。

適用場景與注意

適合誰:需要定期掃 GitHub 熱榜、按語言或文檔語言收窄範圍、並希望 Agent 在事實數據上寫一層歸納的開發者或技術寫作者;分類爲 data-analysis,側重「取數 + 解讀」而非單純搜索。

限制與注意:

  1. 頁面結構依賴:解析邏輯針對 GitHub Trending HTML。若 GitHub 改版,可能出現空列表或字段缺失;腳本失敗時會在 stderr 輸出 JSON 格式的 error。
  2. 網絡與合規:抓取受本機網絡與 GitHub 可訪問性影響;請遵守 GitHub 服務條款與合理訪問頻率。
  3. 分析邊界:Implementation、Why Trending 等段落是 Agent 在約束下的推斷,應與腳本中的原始描述區分;用戶要純 JSON 時不應混入散文。
  4. 商店數據:截至資料覈對時,SkillHub 顯示評分 100000、下載 974、安裝 1;以 技能頁 實時數據爲準。

結尾

github-trending 把 GitHub Trending 的篩選維度(日/周/月、語言、spoken language)和一份可校驗的 JSON 榜單,接到 Agent 的報告流程裏,減少手工打開網頁和抄表的時間。若你要在 Cursor 等環境裏固定使用,按上文 skillhub install 裝到對應 skills 目錄即可。

官方入口:

  • SkillHub 技能頁:https://www.skillhub.cn/skills/user_cea1fb81/github-trending-pro
  • API 座標頁:https://api.skillhub.cn/user_cea1fb81/github-trending-pro
羽毛球分组比赛记分
小程序二维码

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

小夜