Skip to main content

Automatizando relatórios de uso com a API REST

Saiba como automatizar relatórios sobre o uso de recursos pagos usando a API REST.

Quem pode usar esse recurso?

Enterprise owners, organization owners, and billing managers

A nova plataforma de cobrança está disponível para todos os usuários.

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ê ainda não usou a API REST do GitHub, consulte Usando a API REST.

Visão geral dos pontos de extremidade

Você precisa usar pontos de extremidade diferentes para coletar dados dependendo do tipo de conta e do nível de informações desejado.

ContaRelatórioAcessoPonto de extremidadeMais informações
UsuáriosDados de uso de todos os produtos pagosTitular da conta/users/{username}/settings/billing/usagePlataforma de faturamento aprimorada
OrganizaçõesConsumo de solicitações premium, com detalhes de cota e uso cobradoProprietários de organizações e gerentes de faturamento/organizations/{org}/settings/billing/premium_request/usagePlataforma de faturamento aprimorada
OrganizaçõesDados de uso de todos os produtos pagosProprietários de organizações e gerentes de faturamento/organizations/{org}/settings/billing/usagePlataforma de faturamento aprimorada
EnterprisesConsumo de solicitações premium, com detalhes de cota e uso cobradoProprietários de empresas e gerentes de faturamento/enterprises/{enterprise}/settings/billing/premium_request/usagePontos de extremidade da API REST para faturamento corporativo
EnterprisesDados de uso de todos os produtos pagosProprietários de empresas e gerentes de faturamento/enterprises/{enterprise}/settings/billing/usagePontos de extremidade da API REST para faturamento corporativo

Obtendo o consumo de solicitações premium

  1. Autentique com o GitHub com um dos seguintes métodos:

  2. Chame o ponto de extremidade premium_request/usage necessário, especificando a empresa, a organização ou o usuário cujos dados você deseja.

Para baixar outras métricas do GitHub Copilot, consulte Analisar o uso ao longo do tempo com a API de métricas do GitHub Copilot.

Obtendo dados de uso de todos os produtos pagos

  1. Autentique com o GitHub com um dos seguintes métodos:

  2. Chame o ponto de extremidade usage necessário, especificando a empresa, a organização ou o usuário cujos dados você deseja.

  3. Por padrão, os dados de todos os produtos do ano atual são relatados. Para empresas, apenas os dados que não estão associados a um centro de custo são relatados.

    Você pode solicitar dados mais específicos usando parâmetros de consulta.

    • Especifique um período definindo um ou mais dos seguintes parâmetros: year, month, day e hour.
    • Especifique um centro de custo para relatar por identificador usando o parâmetro de consulta cost_center_id (somente no ponto de extremidade empresarial).

Para obter informações mais detalhadas e exemplos de chamadas e respostas, consulte:

Migrando dos pontos de extremidade usados para a plataforma de cobrança anterior

Após você fazer a transição para a cobrança limitada, os pontos de extremidade usados para obter dados da plataforma de cobrança anterior não retornarão mais informações de uso precisas.

  • Atualize todas as chamadas do formulário: /ACCOUNT-TYPE/NAME/settings/billing/PRODUCT
  • Para usar o equivalente: ponto de extremidade /ACCOUNT-TYPE/NAME/settings/billing/usage

Alterações na autenticação

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.

Calculando informações de GitHub Actions dos 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 anteriorCalcular com base na nova resposta à API
total_minutes_used
  • Filtre os resultados por "product": "Actions" e "unitType": "minutes"
  • Some quantity
total_paid_minutes_usedAgora, isso é representado como um valor de $ via netAmount.
  • Filtre os resultados por "product": "Actions" e "unitType": "minutes"
  • Some netAmount
included_minutesAgora, isso é representado como um valor de $ via discountAmount.
  • Filtre os resultados por "product": "Actions" e "unitType": "minutes"
  • Some discountAmount
minutes_used_breakdown
  • Filtre os resultados por "product": "Actions" e "unitType": "minutes"
  • Some quantity agrupado por sku

Calculando informações de GitHub Packages dos 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 anteriorCalcular com base na nova resposta à API
total_gigabytes_bandwidth_used
  • Filtre os resultados por "product": "Packages" e "unitType": "gigabytes"
  • Some quantity
total_paid_gigabytes_bandwidth_usedAgora, isso é representado como um valor de $ via netAmount.
  • Filtre os resultados por "product": "Packages" e "unitType": "gigabytes"
  • Some netAmount
included_gigabytes_bandwidthAgora, isso é representado como um valor de $ via discountAmount.
  • Filtre os resultados por "product": "Packages" e "unitType": "gigabytes"
  • Some discountAmount

Calculando informações de armazenamento compartilhado dos 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 anteriorCalcular com base na nova resposta à API
days_left_in_billing_cycleNã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_monthAgora, isso é representado como um valor de $ via netAmount.

Pré-requisito: passe os parâmetros de consulta month e year.

para armazenamento do Actions
  • Filtre os resultados por "product": "Actions" e "unitType": "GigabyteHours"
  • Some netAmount
para armazenamento do Packages
  • Filtre os resultados por "product": "Packages" e "unitType": "GigabyteHours"
  • Some netAmount
estimated_storage_for_monthPré-requisito: passe os parâmetros de consulta month e year.

para armazenamento do Actions
  • Filtre os resultados por "product": "Actions" e "unitType": "GigabyteHours"
  • Some quantity
para armazenamento do Packages
  • Filtre os resultados por "product": "Packages" e "unitType": "GigabyteHours"
  • Some quantity