Skip to main content

REST API を使用した使用状況レポート作成の自動化

REST API を使用して有料機能の使用に関するレポート作成を自動化する方法について説明します。

この機能を使用できるユーザーについて

Enterprise owners, organization owners, and billing managers

すべてのユーザーが新しい課金プラットフォームを利用できるようになりました。

GitHub からデータを自動的にプルし、REST API を使用してコストと使用状況を監視するために使用するビジネス システムを設定できます。 これまで GitHub REST API を使ったことがない場合は、「REST API を使用して」をご覧ください。

エンドポイントの概要

アカウントの種類と必要な情報レベルに応じて、データの収集に異なるエンドポイントを使う必要があります。

アカウントReportアクセスエンドポイント詳細
ユーザーすべての有料製品の使用状況データアカウント所有者/users/{username}/settings/billing/usage拡張課金プラットフォーム
組織Premium リクエストの使用量 (クォータと課金される使用量の詳細を含む)Organization 所有者と請求マネージャー/organizations/{org}/settings/billing/premium_request/usage拡張課金プラットフォーム
組織すべての有料製品の使用状況データOrganization 所有者と請求マネージャー/organizations/{org}/settings/billing/usage拡張課金プラットフォーム
EnterprisePremium リクエストの使用量 (クォータと課金される使用量の詳細を含む)Enterprise オーナーと支払いマネージャー/enterprises/{enterprise}/settings/billing/premium_request/usageエンタープライズ課金用の REST API エンドポイント
Enterpriseすべての有料製品の使用状況データEnterprise オーナーと支払いマネージャー/enterprises/{enterprise}/settings/billing/usageエンタープライズ課金用の REST API エンドポイント

Premium リクエストの使用量の取得

  1. 次のいずれかの方法で、GitHub での認証を行います。

  2. 必要な premium_request/usage エンドポイントを呼び出し、データが必要な Enterprise、organization、またはユーザーを指定します。

GitHub Copilot の他のメトリックのダウンロードについては、「GitHub Copilot メトリック API を使用した経時的な使用の分析」をご覧ください。

すべての有料製品の使用状況データの取得

  1. 次のいずれかの方法で、GitHub での認証を行います。

  2. 必要な usage エンドポイントを呼び出し、データが必要な Enterprise、organization、またはユーザーを指定します。

  3. 既定では、すべての製品の今年のデータが報告されます。 Enterprise の場合、コスト センターに関連付けられていないデータのみが報告されます。

    クエリ パラメーターを使って、さらに具体的なデータを要求できます。

    • パラメーター yearmonthdayhour を 1 つ以上設定して、期間を指定します。
    • cost_center_id クエリ パラメーターを使用って識別子を指定して、報告するコスト センターを指定します (Enterprise エンドポイントのみ)。

詳細および呼び出しと応答の例については、以下をご覧ください。

以前の課金プラットフォームに使用していたエンドポイントからの移行

従量制課金に移行すると、前の課金プラットフォームでデータを取得するために使っていたエンドポイントからは、正確な使用状況情報が返されなくなります。

  • フォームのすべての呼び出しをアップグレードする: /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" で結果をフィルター処理する
  • quantitysku でグループ化した合計

新しい応答データからの 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 のクエリ パラメーターを渡します。

アクション ストレージの場合
  • "product": "Actions""unitType": "GigabyteHours" で結果をフィルター処理する
  • netAmount を合計する
パッケージ ストレージの場合
  • "product": "Packages""unitType": "GigabyteHours" で結果をフィルター処理する
  • netAmount を合計する
estimated_storage_for_month前提条件: monthyear のクエリ パラメーターを渡します。

アクション ストレージの場合
  • "product": "Actions""unitType": "GigabyteHours" で結果をフィルター処理する
  • quantity を合計する
パッケージ ストレージの場合
  • "product": "Packages""unitType": "GigabyteHours" で結果をフィルター処理する
  • quantity を合計する