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

The enhanced billing platform is available to:

  • All enterprise accounts, and their organizations, created after June 2, 2024
  • Enterprises that participated in the public preview program


Beginning in September 2024, GitHub will migrate remaining enterprises to the new billing platform. Enterprises will receive a notice 30 days before their migration. See the GitHub blog.

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 pas encore utilisé l'API REST GitHub REST API, les articles suivants sont un bon point de départ, consultez Utilisation de l’API REST.

Utilisation du point de terminaison /usage de la plateforme de facturation pour récupérer les détails de l’utilisation facturée à l’usage pour une entreprise ou une organisation

La plateforme de facturation améliorée fournit des points de terminaison /usage REST API que vous pouvez utiliser pour générer des rapports sur l’utilisation de tous les produits facturés à l’usage dans une entreprise ou une organisation. Les données d’utilisation fournies par le point de terminaison de l’entreprise sont disponibles pour les propriétaires de l’entreprise et les gestionnaires de facturation de l’entreprise. Les données fournies par le point de terminaison de l’organisation sont disponibles pour les propriétaires de l’organisation au sein d’une entreprise et les propriétaires de l’organisation au sein d’un compte d’organisation. Vous devrez vous authentifier avec GitHub.

  • Si vous utilisez l’interface CLI GitHub, utilisez la commande gh auth login pour vous authentifier.
  • Sinon, vous devrez créer un personal access token (classic), consultez Créer un personal access token (classic) .

Lorsque vous appelez un point de terminaison /usage, vous devez spécifier l’entreprise ou l’organisation pour laquelle vous souhaitez obtenir des données et, par défaut, l’utilisation pour l’année en cours qui n’appartient pas à un centre de coûts est signalée. Vous pouvez réduire l’étendue des données retournées par le point de terminaison à l’aide de paramètres de requête.

  • Définissez une période spécifique en définissant un ou plusieurs des paramètres suivants : year, month, dayet hour.
  • Définissez un centre de coûts à signaler par identificateur à l’aide du paramètre de requête cost_center_id . Ce paramètre de requête est uniquement disponible pour le point de terminaison au niveau de l’entreprise.

Pour obtenir des informations plus détaillées et un exemple d’appel et de réponse, consultez Obtenir le rapport d’utilisation de la facturation pour une entreprise ou Obtenir le rapport d’utilisation de la facturation pour une organisation .

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

La plateforme de facturation précédente a fourni trois points de terminaison différents pour les données d’utilisation :

Lorsque vous passez à la plateforme de facturation améliorée, ces points de terminaison ne retournent plus d’informations d’utilisation précises. Vous devez mettre à niveau toute automatisation qui utilise ces points de terminaison pour utiliser le nouveau point de terminaison GET /enterprises/{enterprise}/settings/billing/usage. Les tableaux ci-dessous fournissent une explication détaillée sur l’utilisation de la plateforme de facturation pour récupérer des informations équivalentes.

Modifications apportées à la définition d’appel

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.

Obtention des données de facturation 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

Obtention des données de facturation GitHub Actions à 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

Obtenir la facturation du 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