Skip to main content

Автоматизация отчетов об использовании с помощью REST API

Узнайте, как автоматизировать отчеты об использовании платных функций с помощью REST API.

Кто может использовать эту функцию?

Enterprise owners, organization owners, and billing managers

Новая платформа выставления счетов теперь доступна всем пользователям.

Вы можете автоматически извлекать данные из GitHub для заполнения бизнес-систем, используемых для мониторинга затрат и использования с помощью REST API. Если вы еще не использовали REST API GitHub до этого, см . раздел AUTOTITLE.

Общие сведения о конечных точках

Для сбора данных в зависимости от типа учетной записи и нужного уровня информации необходимо использовать разные конечные точки.

Учетная записьОтчетОткрытьКонечная точкаДополнительные сведения
ПользователиДанные об использовании для всех платных продуктовВладелец учетной записи/users/{username}/settings/billing/usageРасширенная платформа выставления счетов
ОрганизацииПотребление запросов уровня "Премиум" с подробными сведениями о квоте и выставлении счетовВладельцы и менеджер по выставлению счетов организации/organizations/{org}/settings/billing/premium_request/usageРасширенная платформа выставления счетов
ОрганизацииДанные об использовании для всех платных продуктовВладельцы и менеджер по выставлению счетов организации/organizations/{org}/settings/billing/usageРасширенная платформа выставления счетов
ПредприятияПотребление запросов уровня "Премиум" с подробными сведениями о квоте и выставлении счетовВладельцы предприятия и менеджер по выставлению счетов/enterprises/{enterprise}/settings/billing/premium_request/usageКонечные точки REST API для выставления счетов предприятия
ПредприятияДанные об использовании для всех платных продуктовВладельцы предприятия и менеджер по выставлению счетов/enterprises/{enterprise}/settings/billing/usageКонечные точки REST API для выставления счетов предприятия

Получение потребления запросов уровня "Премиум"

  1. Проверка подлинности с помощью GitHub с помощью одного из следующих методов:

  2. Вызовите необходимую premium_request/usage конечную точку, указав предприятия, организации или пользователя, для которого нужны данные.

Чтобы скачать другие метрики для GitHub Copilot, см. раздел Анализ использования с течением времени с помощью API метрик GitHub Copilot.

Получение данных об использовании для всех платных продуктов

  1. Проверка подлинности с помощью GitHub с помощью одного из следующих методов:

  2. Вызовите необходимую usage конечную точку, указав предприятия, организации или пользователя, для которого нужны данные.

  3. По умолчанию сообщается данные обо всех продуктах за текущий год. Для предприятий сообщается только данные, которые не связаны с центром затрат.

    Вы можете запросить более конкретные данные с помощью параметров запроса.

    • Укажите период времени, задав один или несколько следующих параметров: year, , month``dayи hour.
    • Укажите центр затрат для отчета по идентификатору cost_center_id с помощью параметра запроса (только корпоративная конечная точка).

Дополнительные сведения и примеры вызовов и ответов см. в следующих примерах:

Миграция с конечных точек, используемых для предыдущей платформы выставления счетов

После перехода на тарифное выставление счетов конечные точки, используемые для получения данных из предыдущей платформы выставления счетов, больше не будут возвращать точные сведения об использовании.

  • Обновите все вызовы формы: /ACCOUNT-TYPE/NAME/settings/billing/PRODUCT
  • Для использования эквивалента: /ACCOUNT-TYPE/NAME/settings/billing/usage конечная точка

Изменения в проверке подлинности

Если вы использовали fine-grained personal access token для проверки подлинности с помощью предыдущих конечных точек, вам потребуется создать personal access token (classic) для проверки подлинности с помощью новой конечной точки.

Кроме того, может потребоваться использовать новые параметры запроса для указания периода времени или центра затрат.

Вычисление данных GitHub Actions из новых данных ответа

Пример предыдущего ответа

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

Пример нового ответа

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

Чтобы получить те же значения из новых данных ответа:

Предыдущее свойствоВычисление из нового ответа API
total_minutes_used
  • Фильтрация результатов по "product": "Actions" и "unitType": "minutes"
  • Сумма quantity
total_paid_minutes_usedВ настоящее время это представляется в виде суммы $ через netAmount.
  • Фильтрация результатов по "product": "Actions" и "unitType": "minutes"
  • Сумма netAmount
included_minutesВ настоящее время это представляется в виде суммы $ через discountAmount.
  • Фильтрация результатов по "product": "Actions" и "unitType": "minutes"
  • Сумма discountAmount
minutes_used_breakdown
  • Фильтрация результатов по "product": "Actions" и "unitType": "minutes"
  • Сумма quantity сгруппирована по sku

Вычисление данных GitHub Packages из новых данных ответа

Пример предыдущего ответа

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

Пример нового ответа

{ "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" } ] }
Предыдущее свойствоВычисление из нового ответа API
total_gigabytes_bandwidth_used
  • Фильтрация результатов по "product": "Packages" и "unitType": "gigabytes"
  • Сумма quantity
total_paid_gigabytes_bandwidth_usedВ настоящее время это представляется в виде суммы $ через netAmount.
  • Фильтрация результатов по "product": "Packages" и "unitType": "gigabytes"
  • Сумма netAmount
included_gigabytes_bandwidthВ настоящее время это представляется в виде суммы $ через discountAmount.
  • Фильтрация результатов по "product": "Packages" и "unitType": "gigabytes"
  • Сумма discountAmount

Вычисление общих сведений о хранилище из новых данных ответа

Пример предыдущего ответа

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

Пример нового ответа

{ "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" } ] }
Предыдущее свойствоВычисление из нового ответа API
days_left_in_billing_cycleНедоступна. Эти сведения можно вывести, вычитая текущий день месяца из числа дней в текущем месяце.
estimated_paid_storage_for_monthВ настоящее время это представляется в виде суммы $ через netAmount.

Предварительные требования: передайте month параметры и year параметры запроса.

Для хранилища действий
  • Фильтрация результатов по "product": "Actions" и "unitType": "GigabyteHours"
  • Сумма netAmount
Для хранилища пакетов
  • Фильтрация результатов по "product": "Packages" и "unitType": "GigabyteHours"
  • Сумма netAmount
estimated_storage_for_monthПредварительные требования: передайте month параметры и year параметры запроса.

Для хранилища действий
  • Фильтрация результатов по "product": "Actions" и "unitType": "GigabyteHours"
  • Сумма quantity
Для хранилища пакетов
  • Фильтрация результатов по "product": "Packages" и "unitType": "GigabyteHours"
  • Сумма quantity