分析我关注的 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
      └                                        ┘