Você pode efetuar pull automaticamente de dados do GitHub para preencher os sistemas de negócios que usa para monitorar os custos e o uso com a API REST. Se você nunca usou a API REST do GitHub, os artigos a seguir são um bom ponto de partida; confira Usando a API REST.
Usando o ponto de extremidade /usage
da plataforma de cobrança para recuperar detalhes do uso limitado para uma empresa
A plataforma de cobrança aprimorada fornece um só ponto de extremidade /usage
da API REST que você pode usar para relatar o uso de todos os produtos medidos. Os dados de uso fornecidos por esse ponto de extremidade estão disponíveis apenas para proprietários corporativos e gerentes de cobrança corporativos, de modo que você precisará se autenticar com o GitHub.
- Se você usar a CLI do GitHub, use o comando
gh auth login
para se autenticar. - Caso contrário, você precisará criar um personal access token (classic); consulte Criando um personal access token (classic).
Ao chamar o ponto de extremidade /usage
, você precisa especificar a empresa cujos dados deseja e, por padrão, o uso do ano atual que não pertence a um centro de custo é relatado. Você pode reduzir o escopo dos dados retornados pelo ponto de extremidade usando parâmetros de consulta.
- Defina um período específico definindo um ou mais dos seguintes parâmetros:
year
,month
,day
ehour
. - Defina um centro de custo para relatar por identificador usando o parâmetro de consulta
cost_center_id
.
Para obter informações mais detalhadas e um exemplo de chamada e resposta, consulte Obter relatório de uso de cobrança para uma empresa.
Migrando dos pontos de extremidade usados para a plataforma de cobrança anterior
A plataforma de cobrança anterior fornecia três pontos de extremidade para dados de uso:
- Obter a cobrança do GitHub Actions para uma empresa
- Obter a cobrança do GitHub Packages para uma empresa
- Obter a cobrança do armazenamento compartilhado para uma empresa
Quando você fizer a transição para a plataforma de cobrança aprimorada, esses pontos de extremidade não retornarão mais informações precisas de uso. Você deve atualizar qualquer automação que use esses pontos de extremidade para usar o novo ponto de extremidade GET /enterprises/{enterprise}/settings/billing/usage. As tabelas abaixo fornecem uma explicação detalhada de como usar a plataforma de cobrança para recuperar informações equivalentes.
Alterações na definição de chamada
Se você usou um fine-grained personal access token para autenticar com os pontos de extremidade anteriores, precisará criar um personal access token (classic) para autenticar com o novo ponto de extremidade.
Além disso, talvez você queira usar os novos parâmetros de consulta para especificar um período ou um centro de custo.
Obtendo dados de cobrança do GitHub Actions com base nos novos dados de resposta
Exemplo da resposta anterior
{"total_minutes_used": 305, "total_paid_minutes_used": 0, "included_minutes": 3000, "minutes_used_breakdown": { "UBUNTU": 205, "MACOS": 10, "WINDOWS": 90 } }
Exemplo da nova resposta
{ "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"} ] }
Para obter os mesmos valores dos novos dados de resposta:
Propriedade anterior | Calcular com base na nova resposta à API |
---|---|
total_minutes_used |
|
total_paid_minutes_used | Agora, isso é representado como um valor de $ via netAmount .
|
included_minutes | Agora, isso é representado como um valor de $ via discountAmount .
|
minutes_used_breakdown |
|
Obtendo dados de cobrança do GitHub Packages com base nos novos dados de resposta
Exemplo da resposta anterior
{ "total_gigabytes_bandwidth_used": 50, "total_paid_gigabytes_bandwidth_used": 40, "included_gigabytes_bandwidth": 10 }
Exemplo da nova resposta
{ "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" } ] }
Propriedade anterior | Calcular com base na nova resposta à API |
---|---|
total_gigabytes_bandwidth_used |
|
total_paid_gigabytes_bandwidth_used | Agora, isso é representado como um valor de $ via netAmount .
|
included_gigabytes_bandwidth | Agora, isso é representado como um valor de $ via discountAmount .
|
Obtendo a cobrança do armazenamento compartilhado com base nos novos dados de resposta
Exemplo da resposta anterior
{ "days_left_in_billing_cycle": 20, "estimated_paid_storage_for_month": 15, "estimated_storage_for_month": 40 }
Exemplo da nova resposta
{ "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" } ] }
Propriedade anterior | Calcular com base na nova resposta à API |
---|---|
days_left_in_billing_cycle | Não disponível. Essas informações podem ser inferidas subtraindo o dia atual do mês do número de dias no mês atual. |
estimated_paid_storage_for_month | Agora, isso é representado como um valor de $ via netAmount . Pré-requisito: passe os parâmetros de consulta month e year . para armazenamento do Actions
|
estimated_storage_for_month | Pré-requisito: passe os parâmetros de consulta month e year . para armazenamento do Actions
|