如何通过GitHub API获取Actions分钟配额重置日期
问题背景
- 核心需求:获取GitHub账单设置页面展示的「GitHub Actions 包含的分钟配额将在X天后重置」提示中的X值,即配额重置的剩余天数
- 已完成的尝试:使用带有「Update ALL user data」权限的GITHUB_TOKEN,调用用户维度的Actions账单查询接口
# GITHUB_TOKEN with "Update ALL user data" permission curl \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github.v3+json" \ https://api.github.com/users/$GITHUB_USER/settings/billing/actions
- 调用结果:接口仅返回Actions分钟使用统计类字段,未提供计费周期到期(即配额重置)的时间信息,实际返回的JSON示例如下:
{ "total_minutes_used": 228, "total_paid_minutes_used": 0, "included_minutes": 2000, "minutes_used_breakdown": { "UBUNTU": 228 } }
可行获取方案
- 调整请求兼容头,获取计费周期时间字段
- 旧请求头使用
Accept: application/vnd.github.v3+json时,接口仅返回使用量统计字段,不会暴露周期时间参数。将请求头替换为Accept: application/vnd.github+json后,接口会额外返回两个核心时间字段:period_started_at:当前计费周期的起始时间(ISO 8601格式)period_ended_at:当前计费周期的结束时间(ISO 8601格式),也就是Actions免费配额的正式重置时间
- 拿到
period_ended_at字段后,将该时间戳与当前本地时间做差值计算,换算得到的剩余自然日天数,与账单页展示的X值完全对齐。
- 旧请求头使用
- 多场景适配:如果需要查询组织名下的Actions配额重置时间,只需将接口路径从用户维度的地址替换为组织维度的
https://api.github.com/orgs/$ORG_NAME/settings/billing/actions,搭配上述最新的Accept请求头即可获取对应计费周期的起止时间。
内容的提问来源于stack exchange,提问作者horothesun
相关产品推荐
相关产品推荐

