Skip to main content

使用 REST API 自动报告使用情况

了解如何使用 REST API 自动报告付费功能使用情况。

谁可以使用此功能?

Enterprise owners, organization owners, and billing managers

新的计费平台现可供所有用户使用。

你可以使用 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 终结点

获取高级请求消耗量

  1. 使用以下方法之一对 GitHub 进行身份验证:

  2. 调用所需的 premium_request/usage 终结点,并指定要获取数据的企业、组织或用户。

若要下载 GitHub Copilot 的其他指标,请参阅“使用 GitHub Copilot 指标 API 分析随时间推移的使用情况”。

获取所有付费产品的使用情况数据

  1. 使用以下方法之一对 GitHub 进行身份验证:

  2. 调用所需的 usage 终结点,并指定要获取数据的企业、组织或用户。

  3. 默认情况下,会报告当前年份所有产品的数据。 对于企业,仅会报告未与成本中心关联的数据。

    可以使用查询参数请求更具体的数据。

    • 通过设置以下一个或多个参数来指定特定的时间段:yearmonthdayhour
    • 使用 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
  • "product": "Actions""unitType": "minutes" 筛选结果
  • quantity 求和
total_paid_minutes_used现在这通过 netAmount 以美元金额表示。
  • "product": "Actions""unitType": "minutes" 筛选结果
  • netAmount 求和
included_minutes现在这通过 discountAmount 以美元金额表示。
  • "product": "Actions""unitType": "minutes" 筛选结果
  • discountAmount 求和
minutes_used_breakdown
  • "product": "Actions""unitType": "minutes" 筛选结果
  • sku 分组的 quantity 总和

根据新的响应数据计算 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
  • "product": "Packages""unitType": "gigabytes" 筛选结果
  • quantity 求和
total_paid_gigabytes_bandwidth_used现在这通过 netAmount 以美元金额表示。
  • "product": "Packages""unitType": "gigabytes" 筛选结果
  • netAmount 求和
included_gigabytes_bandwidth现在这通过 discountAmount 以美元金额表示。
  • "product": "Packages""unitType": "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_billing_cycle不可用。 该信息可通过用当月的天数减去当月当前的日期来推断得出。
estimated_paid_storage_for_month现在这通过 netAmount 以美元金额表示。

先决条件:传递 monthyear 查询参数。

对于 Actions 存储
  • "product": "Actions""unitType": "GigabyteHours" 筛选结果
  • netAmount 求和
对于 Packages 存储
  • "product": "Packages""unitType": "GigabyteHours" 筛选结果
  • netAmount 求和
estimated_storage_for_month先决条件:传递 monthyear 查询参数。

对于 Actions 存储
  • "product": "Actions""unitType": "GigabyteHours" 筛选结果
  • quantity 求和
对于 Packages 存储
  • "product": "Packages""unitType": "GigabyteHours" 筛选结果
  • quantity 求和