你可以使用 REST API 从 GitHub 自动拉取数据,以填充用于监视成本和使用情况的业务系统。 如果你之前未曾使用过 GitHub REST API,以下文章是不错的切入点,请参阅“使用 REST API”。
使用计费平台 /usage
终结点来检索企业的计量使用详细信息
增强型计费平台提供了一个单一的 REST API /usage
终结点,你可以使用它来报告所有计量产品的使用情况。 此终结点提供的使用情况数据仅供企业所有者和企业计费管理员使用,因此你需要对 GitHub 进行身份验证。
- 如果使用 GitHub CLI,请使用
gh auth login
命令进行身份验证。 - 否则,你将需要创建 personal access token (classic),请参阅“创建 personal access token (classic)”。
当你调用 /usage
终结点时,必须指定你想要获取其数据的企业,并且默认情况下,会报告当前年度不属于成本中心的使用情况。 你可以使用查询参数来缩小终结点返回的数据范围。
- 通过设置以下一个或多个参数来定义一个特定的时间段:
year
、month
、day
和hour
。 - 使用
cost_center_id
查询参数定义按标识符报告的成本中心。
如需了解更多详细信息以及示例调用和响应,请参阅获取企业的计费使用情况报告。
从用于之前计费平台的终结点进行迁移
之前的计费平台为使用数据提供了三个不同的终结点:
当你过渡到增强型计费平台时,这些终结点将不再返回准确的使用情况信息。 你应该对任何使用这些终结点的自动化操作进行升级,以使用新的终结点 GET /enterprises/{enterprise}/settings/billing/usage。 以下表格详细说明了如何使用计费平台来检索等效信息。
调用定义中的更改
如果你曾使用 fine-grained personal access token 对之前的终结点进行身份验证,那么你将需要创建 personal access token (classic) 来对新的终结点进行身份验证。
此外,你可能需要使用新的查询参数来指定一个时间段或成本中心。
从新的响应数据获取 GitHub Actions 计费数据
上一个响应的示例
{"total_minutes_used": 305, "total_paid_minutes_used": 0, "included_minutes": 3000, "minutes_used_breakdown": { "UBUNTU": 205, "MACOS": 10, "WINDOWS": 90 } }
新响应的示例
{ "usageItems": [ { "date": "2023-08-01", "product": "Actions", "sku": "Actions Linux", "quantity": 100, "unitType": "minutes", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example"} ] }
若要从新的响应数据中获取相同的值:
上一个属性 | 根据新的 API 响应计算 |
---|---|
total_minutes_used |
|
total_paid_minutes_used | 现在这通过 netAmount 以美元金额表示。
|
included_minutes | 现在这通过 discountAmount 以美元金额表示。
|
minutes_used_breakdown |
|
从新的响应数据获取 GitHub Packages 计费数据
上一个响应的示例
{ "total_gigabytes_bandwidth_used": 50, "total_paid_gigabytes_bandwidth_used": 40, "included_gigabytes_bandwidth": 10 }
新响应的示例
{ "usageItems": [ { "date": "2023-08-01", "product": "Packages", "sku": "Packages data transfer", "quantity": 100, "unitType": "gigabytes", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example" } ] }
上一个属性 | 根据新的 API 响应计算 |
---|---|
total_gigabytes_bandwidth_used |
|
total_paid_gigabytes_bandwidth_used | 现在这通过 netAmount 以美元金额表示。
|
included_gigabytes_bandwidth | 现在这通过 discountAmount 以美元金额表示。
|
从新的响应数据中获取共享存储计费
上一个响应的示例
{ "days_left_in_billing_cycle": 20, "estimated_paid_storage_for_month": 15, "estimated_storage_for_month": 40 }
新响应的示例
{ "usageItems": [ { "date": "2023-08-01", "product": "Packages", "sku": "Packages storage", "quantity": 100, "unitType": "GigabyteHours", "pricePerUnit": 0.008, "grossAmount": 0.8, "discountAmount": 0, "netAmount": 0.8, "organizationName": "GitHub", "repositoryName": "github/example" } ] }
上一个属性 | 根据新的 API 响应计算 |
---|---|
days_left_in_billing_cycle | 不可用。 该信息可通过用当月的天数减去当月当前的日期来推断得出。 |
estimated_paid_storage_for_month | 现在这通过 netAmount 以美元金额表示。 先决条件:传递 month 和 year 查询参数。 对于 Actions 存储
|
estimated_storage_for_month | 先决条件:传递 month 和 year 查询参数。 对于 Actions 存储
|