You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何制作能准确统计GitHub Action使用仓库数量的徽章?

解决GitHub Action使用量徽章统计不准确的问题

先分析原徽章统计不准的原因

你用的第三方API统计结果和GitHub搜索差异大,大概率是它的搜索逻辑有局限:

  • 可能只匹配了无版本号的引用(比如uses: MathieuSoysal/Javadoc-publisher),但实际很多用户会加版本后缀(如@v1、@main),导致漏统计
  • 可能只扫描了特定路径的workflow文件,没覆盖所有可能的引用场景
  • 受GitHub API速率限制,第三方服务可能没有用认证令牌,只能获取部分搜索结果

制作准确统计徽章的可行方案

方案一:自行实现统计服务(最靠谱)

核心思路是直接调用GitHub Search API获取准确的使用数,再生成符合Shields.io格式的响应:

  1. 编写统计逻辑

    • 调用GitHub Search Code API,搜索关键词为uses: MathieuSoysal/Javadoc-publisher(GitHub搜索会自动匹配带版本后缀的引用)
    • 从API返回的total_count字段获取总仓库数(注意处理重复统计,一个仓库可能有多个workflow文件引用该Action)
    • 返回符合Shields.io端点要求的JSON格式:
      {
        "schemaVersion": 1,
        "label": "Used by",
        "message": "X repositories",
        "color": "blue"
      }
      
  2. 部署服务

    • 把统计脚本部署到无服务器平台(如Vercel、Netlify),或者用GitHub Actions定期运行并生成静态JSON文件托管在GitHub Pages
    • 为绕过GitHub API速率限制,请求时带上个人访问令牌(PAT),令牌仅需public_repo权限
  3. 生成徽章

    • 用Shields.io的endpoint徽章指向你的服务地址,格式为:https://img.shields.io/endpoint?url=你的服务地址

方案二:修复第三方API的统计逻辑

如果想继续用原来的第三方服务,可fork它的源码修改:

  • 调整搜索关键词,确保匹配带版本号的Action引用
  • 设定搜索范围为所有公开仓库的workflow文件(路径设为path:.github/workflows/ filename:*.yml filename:*.yaml)
  • 添加PAT认证,提升API调用限额,避免因速率限制导致统计不全

方案三:用GitHub Actions定期更新静态徽章

  • 编写GitHub Action工作流,定期调用GitHub Search API获取使用数
  • 用Shields.io静态API生成徽章(格式如https://img.shields.io/badge/Used%20by-X-blue)
  • 将生成的徽章图片提交到仓库,直接引用该静态图片作为项目徽章

内容的提问来源于stack exchange,提问作者ThrowsError

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:42:31