Skip to main content

Automatisation des rapports d’utilisation avec l’API REST

Apprenez à automatiser la création de rapports sur votre utilisation des fonctionnalités payantes à l'aide de l'API REST.

Qui peut utiliser cette fonctionnalité ?

Enterprise owners, organization owners, and billing managers

La nouvelle plateforme de facturation est désormais accessible à tous les utilisateurs.

Vous pouvez extraire automatiquement des de GitHub pour remplir les systèmes métier que vous utilisez pour surveiller les coûts et l’utilisation à l’aide de l’API REST. Si vous n’avez jamais utilisé l’API REST GitHub, consultez En utilisant l’API REST.

Vue d’ensemble des points de terminaison

Vous devez utiliser différents points de terminaison pour collecter des données en fonction du type de compte et du niveau d’information souhaité.

CompteÉtaty accéderPoint de terminaisonPlus d’informations
UtilisateursDonnées d’utilisation pour tous les produits payantsTitulaire du compte/users/{username}/settings/billing/usagePlateforme de facturation améliorée
OrganisationsConsommation des demandes premium, avec détails sur le quota et l’utilisation facturée à l’usagePropriétaires d’organisation et gestionnaires de facturation/organizations/{org}/settings/billing/premium_request/usagePlateforme de facturation améliorée
OrganisationsDonnées d’utilisation pour tous les produits payantsPropriétaires d’organisation et gestionnaires de facturation/organizations/{org}/settings/billing/usagePlateforme de facturation améliorée
EntreprisesConsommation des demandes premium, avec détails sur le quota et l’utilisation facturée à l’usagePropriétaires d’entreprise et gestionnaires de facturation/enterprises/{enterprise}/settings/billing/premium_request/usagePoints de terminaison d’API REST pour la facturation de l’entreprise
EntreprisesDonnées d’utilisation pour tous les produits payantsPropriétaires d’entreprise et gestionnaires de facturation/enterprises/{enterprise}/settings/billing/usagePoints de terminaison d’API REST pour la facturation de l’entreprise

Obtention de la consommation des demandes premium

  1. Authentifiez-vous avec GitHub avec l’une des méthodes suivantes :

  2. Appelez le point de terminaison premium_request/usage requis, en spécifiant l’entreprise, l’organisation ou l’utilisateur pour lequel vous souhaitez obtenir des données.

Pour télécharger d’autres métriques pour GitHub Copilot, consultez Analyse de l’utilisation au fil du temps avec l’API de métriques GitHub Copilot.

Obtention des données d’utilisation pour tous les produits payants

  1. Authentifiez-vous avec GitHub avec l’une des méthodes suivantes :

  2. Appelez le point de terminaison usage requis, en spécifiant l’entreprise, l’organisation ou l’utilisateur pour lequel vous souhaitez obtenir des données.

  3. Par défaut, les données pour tous les produits pour l’année en cours sont signalées. Pour les entreprises, seules les données qui ne sont pas associées à un centre de coûts sont signalées.

    Vous pouvez demander des données plus spécifiques à l’aide de paramètres de requête.

    • Spécifiez la période en définissant un ou plusieurs des paramètres suivants : year, month, day et hour.
    • Spécifiez un centre de coûts à signaler par identifiant à l’aide du paramètre de requête cost_center_id (point de terminaison d’entreprise uniquement).

Pour plus d’informations et pour obtenir des exemples d’appels et de réponses, consultez :

Migration à partir des points de terminaison utilisés pour la plateforme de facturation précédente

Après votre transition vers la facturation à l’usage, les points de terminaison que vous utilisiez pour obtenir des données depuis l’ancienne plateforme de facturation ne renverront plus d’informations d’utilisation précises.

  • Mettre à niveau tous les appels du formulaire : /ACCOUNT-TYPE/NAME/settings/billing/PRODUCT
  • Pour utiliser l’équivalent : point de terminaison /ACCOUNT-TYPE/NAME/settings/billing/usage

Modifications apportées à l’authentification

Si vous avez utilisé un fine-grained personal access token pour vous authentifier avec les points de terminaison précédents, vous devrez créer un personal access token (classic) pour vous authentifier avec le nouveau point de terminaison.

En outre, vous pouvez utiliser les nouveaux paramètres de requête pour spécifier une période ou un centre de coûts.

Calcul des informations GitHub Actions à partir des nouvelles données de réponse

Exemple de réponse précédente

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

Exemple de nouvelle réponse

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

Pour obtenir les mêmes valeurs à partir des nouvelles données de réponse :

Propriété précédenteCalcul à partir d'une nouvelle réponse de l'API
total_minutes_used
  • Filtrer les résultats par "product": "Actions" et "unitType": "minutes"
  • Somme quantity
total_paid_minutes_usedCeci est maintenant représenté sous la forme d’un montant de $ via netAmount.
  • Filtrer les résultats par "product": "Actions" et "unitType": "minutes"
  • Somme netAmount
included_minutesCeci est maintenant représenté sous la forme d’un montant de $ via discountAmount.
  • Filtrer les résultats par "product": "Actions" et "unitType": "minutes"
  • Somme discountAmount
minutes_used_breakdown
  • Filtrer les résultats par "product": "Actions" et "unitType": "minutes"
  • Somme quantity groupée par sku

Calcul des informations GitHub Packages à partir des nouvelles données de réponse

Exemple de réponse précédente

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

Exemple de nouvelle réponse

{ "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" } ] }
Propriété précédenteCalcul à partir d'une nouvelle réponse de l'API
total_gigabytes_bandwidth_used
  • Filtrer les résultats par "product": "Packages" et "unitType": "gigabytes"
  • Somme quantity
total_paid_gigabytes_bandwidth_usedCeci est maintenant représenté sous la forme d’un montant de $ via netAmount.
  • Filtrer les résultats par "product": "Packages" et "unitType": "gigabytes"
  • Somme netAmount
included_gigabytes_bandwidthCeci est maintenant représenté sous la forme d’un montant de $ via discountAmount.
  • Filtrer les résultats par "product": "Packages" et "unitType": "gigabytes"
  • Somme discountAmount

Calcul des informations de stockage partagé à partir des nouvelles données de réponse

Exemple de réponse précédente

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

Exemple de nouvelle réponse

{ "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" } ] }
Propriété précédenteCalcul à partir d'une nouvelle réponse de l'API
days_left_in_billing_cycleNon disponible. Cette information peut être déduite en soustrayant le jour du mois en cours du nombre de jours du mois en cours.
estimated_paid_storage_for_monthCeci est maintenant représenté sous la forme d’un montant de $ via netAmount.

Prérequis : transmettez les paramètres de requête month et year .

Pour le stockage des actions
  • Filtrer les résultats par "product": "Actions" et "unitType": "GigabyteHours"
  • Somme netAmount
Pour le stockage des emballages
  • Filtrer les résultats par "product": "Packages" et "unitType": "GigabyteHours"
  • Somme netAmount
estimated_storage_for_monthPrérequis : transmettez les paramètres de requête month et year .

Pour le stockage des actions
  • Filtrer les résultats par "product": "Actions" et "unitType": "GigabyteHours"
  • Somme quantity
Pour le stockage des emballages
  • Filtrer les résultats par "product": "Packages" et "unitType": "GigabyteHours"
  • Somme quantity