分享一个我写的开源工具:GitHub Release 下载量徽章生成器
大家好!今天给大家分享一个我最近开发的小工具,专门用来生成 GitHub 项目 Release 下载量的徽章。
项目背景
你们有没有遇到过这种情况:开源项目想要在 README 中展示下载量,但 GitHub 官方并没有提供相关的徽章服务?shields.io 也没有直接支持 GitHub Release 下载量统计。于是我就撸了一个!
功能亮点
超快响应:基于 Cloudflare Edge 网络,全球加速
灵活统计:支持统计所有 Release 总下载量,也支持查看特定版本
自定义样式:支持自定义颜色、标签文本、徽章样式
智能格式化:自动将大数字格式化为 K/M 单位
零配置使用:开箱即用,无需注册和配置
技术栈
- 运行时:Cloudflare Workers(Edge Computing)
- API:GitHub REST API v3
- SVG 生成:纯 JavaScript 动态生成 shields.io 风格徽章
- 缓存策略:成功响应缓存 1 小时,错误响应缓存 5 分钟
Demo 实例
我部署了一个公共实例:https://gh-down-badges.linkof.link
直接试试看:
# 所有版本总下载量
https://gh-down-badges.linkof.link/用户名/仓库名
# 特定版本下载量
https://gh-down-badges.linkof.link/用户名/仓库名/v1.0.0
# 自定义颜色和标签
https://gh-down-badges.linkof.link/用户名/仓库名?color=blue&label=下载量
使用场景
在 README 中展示总下载量

展示最新版本下载量

自定义样式

技术细节
API 设计
Worker 通过解析 URL 路径来确定查询参数:
/owner/repo- 查询所有 Release 总下载量/owner/repo/tag- 查询特定 tag 的下载量
智能颜色策略
// 根据下载量自动选择颜色
if (totalDownloads < 100) {
color = '#97ca00'; // 浅绿
} else if (totalDownloads < 1000) {
color = '#4c1'; // 绿色
} else if (totalDownloads < 10000) {
color = '#007ec6'; // 蓝色
} else {
color = '#e05d44'; // 红色(高下载量)
}
SVG 生成
使用纯 JavaScript 生成符合 shields.io 规范的 SVG 徽章,支持多种样式:
flat- 默认平面风格flat-square- 方形风格plastic- 立体风格
部署指南
方式一:直接使用我的公共实例
https://gh-down-badges.linkof.link/your-username/your-repo
方式二:自己部署
# 克隆仓库
git clone https://github.com/your-username/github-release-download-badges
# 安装依赖
npm install
# 登录 Cloudflare
npx wrangler login
# 部署
npm run deploy
高级用法
支持的颜色
- 预定义颜色:
red,green,blue,yellow,orange,purple,pink,gray - 语义化颜色:
success,important,critical,informational,inactive - 十六进制:
ff69b4,#ff69b4,f6b
查询参数
color- 自定义颜色label- 自定义标签文本style- 徽章样式
性能优化
- Edge 缓存:利用 Cloudflare 全球 CDN
- 智能缓存:成功响应缓存 1 小时,减少 API 调用
- 错误处理:优雅处理 404、403 等错误情况
- CORS 支持:可在任何网站中使用
开源贡献
项目完全开源,欢迎大家:
Star 支持一下
提交 Issue 反馈问题
提交 PR 贡献代码
提出新功能建议
最后
这个工具解决了我在开源项目中的一个小痛点,希望对大家也有帮助!如果你觉得有用,不妨在自己的项目中试试看 ![]()
有任何问题或建议,欢迎在评论区讨论!
标签:Cloudflare #Workers GitHub #开源 徽章 #SVG #Edge-Computing