你可以使用 REST API 从 GitHub 自动拉取数据,以填充用于监视成本和使用情况的业务系统。 如果以前未使用过 GitHub REST API,请参阅“使用 REST API”。
终结点概述
你需要使用不同终结点来收集数据,具体取决于帐户类型和所需的信息级别。
帐户 | 报告 | Access | 终结点 | 详细信息 |
---|---|---|---|---|
用户 | 所有付费产品的使用情况数据 | 帐户持有者 | /users/{username}/settings/billing/usage | 增强型计费平台 |
组织 | 高级请求消耗情况,包含配额和计费使用情况的详细信息 | 组织所有者和计费管理员 | /organizations/{org}/settings/billing/premium_request/usage | 增强型计费平台 |
组织 | 所有付费产品的使用情况数据 | 组织所有者和计费管理员 | /organizations/{org}/settings/billing/usage | 增强型计费平台 |
企业 | 高级请求消耗情况,包含配额和计费使用情况的详细信息 | 企业所有者和计费管理员 | /enterprises/{enterprise}/settings/billing/premium_request/usage | 适用于企业计费的 REST API 终结点 |
企业 | 所有付费产品的使用情况数据 | 企业所有者和计费管理员 | /enterprises/{enterprise}/settings/billing/usage | 适用于企业计费的 REST API 终结点 |
获取高级请求消耗量
-
使用以下方法之一对 GitHub 进行身份验证:
- GitHub CLI:使用
gh auth login
命令进行身份验证,请参阅“GitHub CLI 快速入门”****。 - 创建 personal access token (classic):并在 API 调用中传递该令牌,请参阅创建 personal access token (classic)****。
- GitHub CLI:使用
-
调用所需的
premium_request/usage
终结点,并指定要获取数据的企业、组织或用户。
若要下载 GitHub Copilot 的其他指标,请参阅“使用 GitHub Copilot 指标 API 分析随时间推移的使用情况”。
获取所有付费产品的使用情况数据
-
使用以下方法之一对 GitHub 进行身份验证:
- GitHub CLI:使用
gh auth login
命令进行身份验证,请参阅“GitHub CLI 快速入门”****。 - 创建 personal access token (classic):并在 API 调用中传递该令牌,请参阅创建 personal access token (classic)****。
- GitHub CLI:使用
-
调用所需的
usage
终结点,并指定要获取数据的企业、组织或用户。 -
默认情况下,会报告当前年份所有产品的数据。 对于企业,仅会报告未与成本中心关联的数据。
可以使用查询参数请求更具体的数据。
- 通过设置以下一个或多个参数来指定特定的时间段:
year
、month
、day
和hour
。 - 使用
cost_center_id
查询参数指定按标识符报告的成本中心(仅限企业终结点)。
- 通过设置以下一个或多个参数来指定特定的时间段:
如需更多详细信息以及示例调用和响应,请参阅:
从用于之前计费平台的终结点进行迁移
转换为按流量计费后,用于从之前的计费平台获取数据的终结点将不会再返回准确的使用情况信息。
- 升级以下形式的所有调用:
/ACCOUNT-TYPE/NAME/settings/billing/PRODUCT
- 使用等效项:
/ACCOUNT-TYPE/NAME/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 存储
|