Skip to main content

Automatisieren von Nutzungsberichten mit der REST-API

Hier erfährst du, wie du das Berichterstellen zur Verwendung kostenpflichtiger Features mithilfe der REST-API automatisierst.

Wer kann dieses Feature verwenden?

Enterprise owners and billing managers

Die erweiterte Abrechnungsplattform ist verfügbar für:

  • Alle Unternehmenskonten und ihre Organisationen, die nach dem 2. Juni 2024 erstellt wurden
  • Unternehmen, die am public preview-Programm teilgenommen haben

Ab September 2024 werden GitHub die verbleibenden Unternehmen auf die neue Abrechnungsplattform migrieren. Unternehmen erhalten 30 Tage vor der Migration eine Benachrichtigung. Siehe GitHub-Blog.

Du kannst automatisch Daten von GitHub pullen und die Unternehmenssysteme damit auffüllen, mit denen du die Kosten und die Nutzung mithilfe der REST-API überwachst. Wenn du die GitHub-REST-API noch nie verwendet hast, beginne mit den Artikeln unter Verwenden der REST-API.

Verwenden des /usage-Endpunkts der Abrechnungsplattform zum Abrufen getakteter Nutzungsdetails für ein Unternehmen

Die erweiterte Abrechnungsplattform bietet einen einzelnen REST-API-Endpunkt /usage, den du für Berichte über die Nutzung aller getakteten Produkte verwenden kannst. Die von diesem Endpunkt bereitgestellten Nutzungsdaten sind nur für Unternehmensbesitzer und Unternehmensabrechnungs-Manager verfügbar. Daher musst du dich mit GitHub authentifizieren.

  • Wenn du die GitHub-CLI verwendest, nutze zum Authentifizieren den Befehl gh auth login.
  • Andernfalls musst du ein personal access token (classic) erstellen. Weitere Informationen dazu findest du unter Erstellen eines personal access token (classic).

Wenn du den /usage-Endpunkt aufrufst, musst du das Unternehmen angeben, für das du die Daten benötigst, sowie standardmäßig auch die Nutzung des aktuellen Jahrs, die nicht zu einer Kostenstelle gehört, über die ein Bericht erstellt wurde. Du kannst den vom Endpunkt zurückgegebenen Datenumfang mithilfe von Abfrageparametern verringern.

  • Definiere einen bestimmten Zeitraum, indem du einen oder mehrere der folgenden Parameter festlegst: year, month, day und hour.
  • Definiere eine Kostenstelle, über die du mit dem Abfrageparameter cost_center_id einen Bericht anhand des Bezeichners erstellen möchtest.

Ausführlichere Informationen und ein Beispiel für einen Aufruf und eine Antwort findest du unter Abrufen des Abrechnungsnutzungsberichts für ein Unternehmen.

Migrieren von den Endpunkten, die für die vorherige Abrechnungsplattform verwendet wurden

Die vorherige Abrechnungsplattform stellte drei verschiedene Endpunkte für Nutzungsdaten bereit:

Wenn du zur erweiterten Abrechnungsplattform wechselst, geben diese Endpunkte keine genauen Nutzungsinformationen mehr zurück. Du solltest alle Automatisierungen upgraden, die diese Endpunkte verwenden, um den neuen Endpunkt GET /enterprises/{enterprise}/settings/billing/usage nutzen zu können. In den folgenden Tabellen findest du eine ausführliche Erläuterung zum Verwenden der Abrechnungsplattform, um entsprechende Informationen abzurufen.

Änderungen an der Aufrufdefinition

Wenn du ein fine-grained personal access token zum Authentifizieren bei den vorherigen Endpunkten verwendet hast, musst du ein für das Authentifizieren beim neuen Endpunkt ein personal access token (classic) erstellen.

Darüber hinaus kannst du die neuen Abfrageparameter verwenden, um einen Zeitraum oder eine Kostenstelle anzugeben.

Abrufen von Abrechnungsdaten zu GitHub Actions aus den neuen Antwortdaten

Beispiel für die vorherige Antwort

{"total_minutes_used": 305, "total_paid_minutes_used": 0, "included_minutes": 3000, "minutes_used_breakdown": { "UBUNTU": 205, "MACOS": 10, "WINDOWS": 90 }  }

Beispiel für die neue Antwort

{ "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"} ] }

So rufst du dieselben Werte aus den neuen Antwortdaten ab:

Vorherige EigenschaftBerechnen mit der neuen API-Antwort
total_minutes_used
  • Filtern der Ergebnisse nach "product": "Actions" und "unitType": "minutes"
  • Zusammenrechnen von quantity
total_paid_minutes_usedDies wird jetzt über netAmount als Betrag in USD dargestellt.
  • Filtern der Ergebnisse nach "product": "Actions" und "unitType": "minutes"
  • Zusammenrechnen von netAmount
included_minutesDies wird jetzt über discountAmount als Betrag in USD dargestellt.
  • Filtern der Ergebnisse nach "product": "Actions" und "unitType": "minutes"
  • Zusammenrechnen von discountAmount
minutes_used_breakdown
  • Filtern der Ergebnisse nach "product": "Actions" und "unitType": "minutes"
  • Zusammenrechnen von quantity gruppiert nach sku

Abrufen von Abrechnungsdaten zu GitHub Packages aus den neuen Antwortdaten

Beispiel für die vorherige Antwort

{ "total_gigabytes_bandwidth_used": 50, "total_paid_gigabytes_bandwidth_used": 40, "included_gigabytes_bandwidth": 10 }

Beispiel für die neue Antwort

{ "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" } ] }
Vorherige EigenschaftBerechnen mit der neuen API-Antwort
total_gigabytes_bandwidth_used
  • Filtern der Ergebnisse nach "product": "Packages" und "unitType": "gigabytes"
  • Zusammenrechnen von quantity
total_paid_gigabytes_bandwidth_usedDies wird jetzt über netAmount als Betrag in USD dargestellt.
  • Filtern der Ergebnisse nach "product": "Packages" und "unitType": "gigabytes"
  • Zusammenrechnen von netAmount
included_gigabytes_bandwidthDies wird jetzt über discountAmount als Betrag in USD dargestellt.
  • Filtern der Ergebnisse nach "product": "Packages" und "unitType": "gigabytes"
  • Zusammenrechnen von discountAmount

Abrufen der Abrechnung für freigegebenen Speicher aus den neuen Antwortdaten

Beispiel für die vorherige Antwort

{ "days_left_in_billing_cycle": 20, "estimated_paid_storage_for_month": 15, "estimated_storage_for_month": 40 }

Beispiel für die neue Antwort

{ "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" } ] }
Vorherige EigenschaftBerechnen mit der neuen API-Antwort
days_left_in_billing_cycleNicht verfügbar. Diese Informationen können abgeleitet werden, indem der aktuelle Tag des Monats von der Gesamtanzahl der Tage des aktuellen Monats subtrahiert wird.
estimated_paid_storage_for_monthDies wird jetzt über netAmount als Betrag in USD dargestellt.

Voraussetzung: Übergebe die Abfrageparameter month und year.

Für den Actions-Speicher
  • Filtern der Ergebnisse nach "product": "Actions" und "unitType": "GigabyteHours"
  • Zusammenrechnen von netAmount
Für den Packages-Speicher
  • Filtern der Ergebnisse nach "product": "Packages" und "unitType": "GigabyteHours"
  • Zusammenrechnen von netAmount
estimated_storage_for_monthVoraussetzung: Übergebe die Abfrageparameter month und year.

Für den Actions-Speicher
  • Filtern der Ergebnisse nach "product": "Actions" und "unitType": "GigabyteHours"
  • Zusammenrechnen von quantity
Für den Packages-Speicher
  • Filtern der Ergebnisse nach "product": "Packages" und "unitType": "GigabyteHours"
  • Zusammenrechnen von quantity