你可以使用 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_ |
|
total_paid_minutes_ | 现在这通过 netAmount 以美元金额表示。
|
included_minutes | 现在这通过 discountAmount 以美元金额表示。
|
minutes_used_ |
|
从新的响应数据获取 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_ |
|
total_paid_gigabytes_ | 现在这通过 netAmount 以美元金额表示。
|
included_gigabytes_ | 现在这通过 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_ | 不可用。 该信息可通过用当月的天数减去当月当前的日期来推断得出。 |
estimated_paid_ | 现在这通过 netAmount 以美元金额表示。 先决条件:传递 month 和 year 查询参数。 对于 Actions 存储
|
estimated_storage_ | 先决条件:传递 month 和 year 查询参数。 对于 Actions 存储
|