分析我关注的 GitHub 项目的更新频率
最近不知道是不是错觉总发现 GitHub 上面订阅的 Release 更新越来越少了,是大家都在忙着什么本职的工作所以开源的内容更新就变少了么?还是大家都忙着玩 AI 发现自己开发的软件没有必要了?还是只是我的错觉?所以我想分析一下看看是不是真的有 Release 频率变低了,只限于我关注的项目。
首先找到官方的 API 文档然后下载数据,之后分析数据。
for i in {1..10}; do
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/notifications\?all=true\&page="${i}" > notifications_p"${i}".json
done
jq -c '.[] | select(.subject.type == "Release") | {id: .id, updated_at: .updated_at, release_title: .subject.title, full_name: .repository.full_name}' < notifications_p*.json
获得的内容是这样的:
{"id":"16965445396","updated_at":"2025-06-12T20:57:05Z","release_title":"v8.13.0","full_name":"amir20/dozzle"}
{"id":"16936614561","updated_at":"2025-06-11T16:07:31Z","release_title":"shadcn@2.6.3","full_name":"shadcn-ui/ui"}
{"id":"16928686153","updated_at":"2025-06-11T09:58:26Z","release_title":"shadcn@2.6.2","full_name":"shadcn-ui/ui"}
{"id":"16928534944","updated_at":"2025-06-11T09:50:56Z","release_title":"322a958a-ls127","full_name":"linuxserver/docker-chromium"}
{"id":"16920130082","updated_at":"2025-06-10T23:59:49Z","release_title":"AnythingLLM v.1.8.2","full_name":"Mintplex-Labs/anything-llm"}
{"id":"16916995057","updated_at":"2025-06-10T20:15:01Z","release_title":"v0.42.0","full_name":"Automattic/harper"}
{"id":"16910341969","updated_at":"2025-06-10T14:28:18Z","release_title":"2.514","full_name":"jenkinsci/jenkins"}
{"id":"16909243424","updated_at":"2025-06-10T13:41:14Z","release_title":"GitHub CLI 2.74.1","full_name":"cli/cli"}
{"id":"16902285142","updated_at":"2025-06-10T07:57:34Z","release_title":"v0.8.4","full_name":"glanceapp/glance"}
{"id":"16896843360","updated_at":"2025-06-10T00:55:08Z","release_title":"v1.0.27","full_name":"block/goose"}
{"id":"16891689301","updated_at":"2025-06-09T18:48:02Z","release_title":"v1.0.26","full_name":"block/goose"}
{"id":"16891061586","updated_at":"2025-06-09T18:12:07Z","release_title":"v0.28.3 Release","full_name":"pocketbase/pocketbase"}
因为我只是想做一个快速的概览并不想要太复杂的图表,并且我想在 Terminal 里面实现,搜索了一下首先是 termgraph, 我现在对 Python 的 CLI 工具特别抗拒,而且这个项目四年多没更新了所以继续搜索找到了 YouPlot, 更新一下命令:
jq -c '.[] | select(.subject.type == "Release") | .updated_at' < notifications_p*.json | cut -c 2-11 | sort -r | uniq -c | uplot bar
结果是这样的,没办法按日期显示名称不过我也能接受,1代表今天,2代表昨天,以此类推,可以看出,确实我关注的项目更新在变少,具体原因不得而知了。
┌ ┐
1 ┤■■ 1.0
2 ┤■■■■■■ 3.0
3 ┤■■■■■■■■■■■ 6.0
4 ┤■■■■■■■■■■■ 6.0
5 ┤■■■■■■ 3.0
6 ┤■■■■■■■■ 4.0
7 ┤■■ 1.0
8 ┤■■■■■■■■■ 5.0
9 ┤■■■■■■ 3.0
10 ┤■■■■■■■■ 4.0
11 ┤■■■■ 2.0
12 ┤■■■■■■■■ 4.0
13 ┤■■■■■■■■ 4.0
14 ┤■■■■■■■■ 4.0
15 ┤■■■■■■■■■ 5.0
16 ┤■■■■■■■■■■■■■■■■■ 9.0
17 ┤■■■■■■■■■■■■■■■■■■■ 10.0
18 ┤■■■■■■ 3.0
19 ┤■■■■■■■■■ 5.0
20 ┤■■■■■■ 3.0
21 ┤■■■■■■■■■■■■■■■ 8.0
22 ┤■■ 1.0
23 ┤■■■■■■■■■■■■■■■ 8.0
24 ┤■■■■■■■■■■■ 6.0
25 ┤■■■■■■■■■■■■■■■ 8.0
26 ┤■■■■■■■■■ 5.0
27 ┤■■■■■■■■■ 5.0
28 ┤■■ 1.0
29 ┤■■■■■■■■■■■ 6.0
30 ┤■■■■■■■■■■■■■■■■■■■■■■■■■ 13.0
31 ┤■■■■■■■■■■■■■■■■■ 9.0
32 ┤■■■■■■■■ 4.0
33 ┤■■■■■■■■■■■■■■■ 8.0
34 ┤■■■■■■■■■ 5.0
35 ┤■■■■■■■■■ 5.0
36 ┤■■■■■■■■■■■■■■■■■■■■■■■ 12.0
37 ┤■■■■■■■■■■■■■ 7.0
38 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 18.0
39 ┤■■■■■■■■■■■■■■■■■■■■■■■ 12.0
40 ┤■■■■■■■■ 4.0
41 ┤■■■■■■■■■ 5.0
42 ┤■■■■■■■■■■■■■■■■■■■■■■■ 12.0
43 ┤■■■■■■■■■■■■■■■ 8.0
44 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 15.0
45 ┤■■■■■■■■■■■■■■■■■■■■■■■■■ 13.0
46 ┤■■■■■■■■■■■■■■■■■■■■■ 11.0
47 ┤■■■■■■■■■■■■■■■■■■■■■ 11.0
48 ┤■■■■■■■■■■■■■ 7.0
49 ┤■■■■■■■■■■■■■■■ 8.0
50 ┤■■■■■■■■■■■■■■■■■■■■■ 11.0
51 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■ 14.0
52 ┤■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 17.0
53 ┤■■■■■■■■■■■■■■■ 8.0
54 ┤■■■■■■■■ 4.0
55 ┤■■■■■■■■■ 5.0
56 ┤■■■■■■■■■■■■■■■ 8.0
57 ┤■■■■■■■■■■■■■■■■■■■■■■■■■ 13.0
58 ┤■■■■■■■■■■■■■■■■■■■■■■■■■ 13.0
59 ┤■■■■■■■■■■■■■■■■■■■■■ 11.0
60 ┤■■■■■■■■■■■■■■■■■■■■■ 11.0
61 ┤■■■■■■■■■■■■■ 7.0
62 ┤■■■■■■■■■ 5.0
63 ┤■■■■■■■■■■■■■■■■■■■ 10.0
64 ┤■■■■■■■■■■■ 6.0
└ ┘