Files
Hermes-Skills/github-trending/references/github-api-browser-fallback.md
T
Hermes Skills Manager 6770bc9b9d Initial commit: Hermes Agent skills collection
- Trading skills (OKX, dividend, lottery, quantitative)
- Creative skills (ASCII art, diagrams, video)
- Development skills (GitHub, debugging, TDD)
- Research skills (arXiv, blog monitoring)
- Productivity skills (email, documents, notes)
- MCP integration skills
- Custom user skills
2026-07-05 02:31:15 -04:00

87 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GitHub API Browser Fallback — 当 terminal/curl 不可用时
## 核心技巧
用 `browser_navigate` 直接访问 GitHub API(无需认证的公开端点),然后 `browser_console` 提取 JSON。
## 每次操作的三步模式
```
1. browser_navigate → API URL
2. browser_console → JSON.parse(document.body.innerText).items.map(...)
3. 处理数据,再 navigate 下一个查询
```
## 推荐查询模板
### 查询 1:近7天新建高星项目(主力)⭐ 最重要
```
https://api.github.com/search/repositories?q=created:>YYYY-MM-DD+stars:>200&sort=stars&per_page=20
```
将 `YYYY-MM-DD` 替换为7天前日期。⚠️ 阈值不要低于 `stars:>200`,否则垃圾仓库淹没结果。
### 查询 2:老牌大项目近期活跃(补充上下文)
```
https://api.github.com/search/repositories?q=pushed:>YYYY-MM-DD+stars:>5000&sort=stars&per_page=15
```
发现大项目的重大更新(如新版本发布)。提供"老牌活跃"维度,与查询1的"新项目爆发"互补。
### 查询 3:近30天快速增长项目(可选)
```
https://api.github.com/search/repositories?q=created:>YYYY-MM-DD+stars:>500&sort=stars&per_page=20
```
### 查询 4:特定语言趋势(按需)
```
https://api.github.com/search/repositories?q=language:rust+created:>YYYY-MM-DD+stars:>100&sort=stars&per_page=15
```
### ⚠️ 避免:极新鲜 + 低阈值查询
```
❌ created:>2天前+stars:>50 → 几乎全是垃圾仓库
```
2026-06-19 实测:`created:>2026-06-17+stars:>50` 返回的20个结果中,18个是模板化垃圾仓库(Star数全是110-121,0 forks,描述模板化)。参见 `references/spam-detection.md` 中的实战案例。
## JS 提取模板(每个查询复用,必须用 IIFE 包裹)
```javascript
// ⚠️ 必须用 IIFE 包裹,避免变量重复声明错误(browser_console 共享 JS 上下文)
(function(){
var d = JSON.parse(document.body.innerText);
return d.items.map(function(r) {
return {
name: r.full_name,
desc: (r.description||'').slice(0,200),
stars: r.stargazers_count,
lang: r.language,
created: r.created_at.slice(0,10),
forks: r.forks_count,
topics: (r.topics||[]).slice(0,6)
};
});
})()
```
## 三查询实战 Playbook(2026-06-19 验证)
当 trending 页面完全不可用时,用以下三个查询组合获取完整日报数据:
| 步骤 | 查询 | 数据量 | 用途 |
|------|------|--------|------|
| ① | `created:>7天前+stars:>200` | ~15-20 个 | 新项目爆发(主数据源) |
| ② | `pushed:>昨天+stars:>5000` | ~15 个 | 老牌活跃项目(上下文补充) |
| ③ | `created:>14天前+stars:>300` | ~15 个 | 近两周中等阈值(补漏) |
**执行顺序**:每个查询独立 `browser_navigate` → `browser_console` 提取 → 再下一个。
**合并策略**:三轮结果按 `full_name` 去重后,选 TOP 10 分析。查询①的新项目优先,查询②的大项目作为趋势补充。
**注意**:不要用 `created:>2天前+stars:>50`,该查询几乎全是垃圾仓库(见上方警告)。
## 注意事项
- GitHub API 未认证限速:10 requests/minute,足够完成日报
- 每个查询需要单独 `browser_navigate`,不要在同一个 page 做多次 fetch
- API 返回的 `stargazers_count` 是总星数,不是日增——需要通过 `created` 日期和星数推算热度
- 对于真正的"今日增速"数据,API 无法直接提供,需要对比不同时间点的查询结果