Центры затрат помогают отслеживать и контролировать GitHub расходы, сопоставляя их с финансовой структурой вашей компании.
В этом учебнике вы узнаете о планировании, создании и управлении центрами затрат с помощью пользовательского интерфейса и REST API, что поможет вам решить, какой подход лучше всего соответствует потребностям вашей организации.
1. Спланируйте стратегию центра затрат
Центры затрат позволяют группировать GitHub ресурсы — пользователей, организации и репозитории — для отдельного отслеживания затрат и отчетности. Каждое МВЗ должно представлять сегмент компании, по которому требуется отчитываться или контролировать затраты как отдельную организацию.
Если вы используете Azure billing, вы можете назначить разные биллинговые идентификаторы каждому центру затрат.
Определите нужные центры затрат
Лучшая стратегия зависит от сложности как вашей структуры финансовой отчетности, так и GitHub вашей структуры. Начните с самого простого подхода — вы всегда можете добавить больше центров затрат позже.
Выполните следующие действия, чтобы спланировать центры затрат:
-
**Сопоставление с финансовыми объектами**: создайте одно МВЗ для каждой финансовой организации, которую вы хотите отслеживать внутри компании (например, отделы, бизнес-единицы или проектные группы). -
**Идентификация пользователей**: Список пользователей, принадлежащих к каждой финансовой организации. Назначение пользователей непосредственно в центр затрат обеспечивает правильное распределение их лицензий и использования продуктов. -
**Идентификация организаций**: Перечислите организации, принадлежащие каждой финансовой организации. Назначение организаций в центр затрат правильно распределяет их использование действий Codespaces, пакетов и других товаров. -
**Определите смешанное владение**: если организация содержит репозитории, принадлежащие разным финансовым организациям, запланируйте назначение отдельных репозиториев соответствующим центрам затрат и оставьте организацию неназначенной.
Совет
Если пользователь непосредственно назначен МВЗ А и косвенно является частью МВЗ Б в результате членства в организации, все его затраты на лицензированные продукты распределяются на МВЗ А. Для получения более подробной информации и примера см. AUTOTITLE.
2. Создание МВЗ в пользовательском интерфейсе
Теперь вы создадите свое первое МВЗ с помощью пользовательского интерфейса (UI), чтобы ознакомиться с тем, как работают МВЗ. Выберите в качестве примера один из центров затрат, которые вы определили, — лучше всего начать с небольшой финансовой организации.
- Перейдите к своему предприятию. Например, на странице Enterprises на GitHub.com.
- В левой части страницы на боковой панели учетной записи предприятия щелкните Выставление счетов и лицензирование.
- Щелкните центры затрат.
- Щелкните "Создать центр затрат" в правом верхнем углу.
- В текстовом поле в поле "Имя" введите название финансового учреждения, для которого требуется отслеживать расходы.
- Опционально, если у этой финансовой организации есть отдельная подписка на Azure, вы можете добавить подписку на Azure в центр затрат, чтобы напрямую взимать плату за использование. Учетные данные будут проверены по Azure, чтобы убедиться, что Azure ID, связанный с аккаунтом, доступен.
- В разделе Ресурсы выберите пользователей, организации и репозитории для отслеживания в рамках этого центра затрат.
- Нажмите кнопку "Создать центр затрат".
Теперь новое МВЗ активно, и использование начнет немедленно атрибутироваться МВЗ. Будущие отчеты о выставлении счетов будут включать этот центр затрат с записью cost_center_name в столбце о выделенном ему использовании. Вы также сможете фильтровать диаграммы использования по этому центру затрат.
3. Установите бюджеты для контроля расходов
Создание МВЗ позволяет отслеживать затраты отдельно для разных финансовых организаций. Чтобы реально контролировать расходы, необходимо применять бюджеты к центрам затрат.
Понимание бюджетов
Бюджеты дают вам контроль над расходами. Каждый бюджет:
- Применяется к отдельной организации, репозиторию, центру затрат или всему предприятию
- Контролирует ежемесячное использование одного платного продукта, SKU или группы SKU
- Может быть настроен на прекращение использования или оповещение только при достижении лимита бюджета
- Может оповещать владельцев учетных записей, менеджеров по выставлению счетов и назначенных пользователей о приближении бюджетного лимита.
Рассчитайте бюджет центра затрат
Если ваш внутренний финансовый план выделяет один ежемесячный бюджет для GitHub этого центра затрат, вам нужно распределить его между продуктами, которые использует эта команда.
-
**Рассчитайте фиксированные лицензионные** расходы: сложите стоимость лицензий, которые команда уже использует для GitHub Enterprise, GitHub Copilot, . GitHub Secret Protection and GitHub Code Security -
**Рассчитать переменный бюджет**: вычтите стоимость лицензии из внутреннего бюджета. Оставшаяся сумма — это сумма, которую можно выделить для продуктов на основе использования сверх того, что включено в план.
Создание бюджетов для МВЗ
Создайте один бюджет для каждого продукта, SKU или группы SKU, для которых требуется контролировать затраты.
-
На вкладке «Биллинг и лицензирование» нажмите «Бюджеты и уведомления », чтобы отобразить существующие бюджеты.
-
Нажмите «Новый бюджет », чтобы открыть страницу «Новый ежемесячный бюджет».
-
В разделе "Тип бюджета" выберите Бюджет на уровне продукта, Бюджет на уровне SKU или Бюджет пакетных премиум-запросов.
- Чтобы ограничить расходы на уровне продукта, в разделе «Бюджет на уровне продукта» выберите продукт из выпадающего списка (например, Codespaces).
- Чтобы ограничить расходы на уровне SKU, в «бюджете на уровне SKU» выберите Copilot продукт и SKU (например, Copilot и Premium Request).
- Чтобы ограничить траты по всем премиум-запросам, используйте параметр «Бюджет пакетных премиум-запросов».
-
**Нажмите Далее: Настройте бюджет** для отображения «Объема бюджета» и установите объем расходов для этого бюджета на центр затрат, который вы создали ранее. -
В разделе "Бюджет" задайте бюджетную сумму. Чтобы прекратить любое использование и дальнейшие расходы после достижения бюджетного лимита, выберите Остановить использование при достижении бюджетного лимита. Эта функция недоступна для лицензированных продуктов.
-
Чтобы получать оповещение, когда использование достигает 75%, 90%и 100% от целевого бюджета, выберите Получать оповещения о пороговом значении бюджета в разделе "Оповещения". Владельцы аккаунтов, менеджеры по выставлению счетов и все дополнительные указанные получатели будут уведомлены по электронной почте. Вы можете отказаться в любое время.
В разделе «Получатели оповещений» выберите дополнительных получателей для получения оповещений.
-
Нажмите кнопку "Создать бюджет".
Проверка существующих бюджетов на предмет конфликтов
После создания бюджетов МВЗ проверьте существующие бюджеты всего предприятия, чтобы убедиться, что они не конфликтуют с новыми бюджетами МВЗ и не переопределяют их.
Перейдите на страницу "Бюджеты и оповещения". Вы увидите два списка бюджетов:
- Корпоративные бюджеты: ограничения, применяемые ко всему корпоративному аккаунту
- Другие бюджеты: ограничения для определенных репозиториев, организаций или центров затрат
Проверка корпоративных бюджетов
Проверьте, применяются ли корпоративные бюджеты к тем же продуктам или SKU, что и бюджеты новых центров затрат. Если корпоративный бюджет очень низкий, это может заблокировать использование для центра затрат до того, как будет достигнут собственный бюджет центра затрат. Рассмотрите возможность удаления или корректировки конфликтующих корпоративных бюджетов.
Просмотр бюджетов МВЗ
Отфильтруйте список других бюджетов, чтобы отобразить область МВЗ. Вы должны увидеть новое МВЗ со строкой для каждого созданного бюджета. Первоначально использование будет близко к нулю, но в течение нескольких дней вы увидите, как затраты накапливаются, поскольку пользователи и репозитории потребляют продукты сверх допустимых в их плане.
4. Создание центра затрат с помощью REST API
Теперь, когда вы понимаете, как создавать МВЗ в пользовательском интерфейсе, вы можете изучить REST API, чтобы увидеть, как можно создавать МВЗ программным способом. Понимание API поможет вам оценить, принесет ли автоматизация пользу вашей организации.
В этом разделе демонстрируются ключевые конечные точки REST API для управления центром затрат с использованием GitHub CLI. Для подробностей установки GitHub CLI и аутентификации для доступа к этим конечным точкам см. Быстрый старт для GitHub REST API.
Примечание.
В следующих примерах используется GitHub CLI, но вы можете адаптировать эти команды для использования curl или любого HTTP-клиента, поддерживающего вызовы REST API.
Список всех существующих МВЗ
Во-первых, извлеките все центры затрат на предприятии, чтобы увидеть, что уже существует. Этот простой запрос позволяет убедиться, что вы правильно прошли проверку подлинности для управления выставлением счетов для вашего предприятия.
В терминале выполните следующую команду, заменив ENTERPRISE на слаг вашего предприятия.
gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /enterprises/ENTERPRISE/settings/billing/cost-centers
gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers
Ответ будет включать все центры затрат, созданные на предприятии, включая центр затрат, созданный ранее в этом руководстве. В этом примере у предприятия есть один центр затрат, "Октоцентр", которому назначена организация и два пользователя.
{
"costCenters": [
{
"id": "33635e2c-edc0-40b8-abea-261839ff73c1",
"name": "Octocenter",
"state": "active",
"resources": [
{
"type": "User",
"name": "monalisa"
},
{
"type": "Org",
"name": "doctocat-org"
},
{
"type": "User",
"name": "doctocat"
}
]
}
]
}
Создание нового МВЗ
Создайте новое МВЗ, указав имя. Вы получите уникальный идентификатор, который будете использовать для управления этим центром затрат.
В терминале выполните следующую команду, заменив ENTERPRISE и NAME соответствующими значениями.
gh api \ --method POST \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /enterprises/ENTERPRISE/settings/billing/cost-centers \ -f 'name=NAME'
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers \
-f 'name=NAME'
Ответ включает идентификатор нового МВЗ. Вам нужно будет использовать его id для всех будущих операций в этом МВЗ.
{
"id": "3312fdf2-5950-4f64-913d-e734124059c9",
"name": "NAME",
"state": "active",
"resources": []
}
Добавление ресурсов в центр затрат
Назначьте пользователей, организации и репозитории центру затрат. В этом примере показано, как добавить несколько пользователей и организацию.
В терминале выполните следующую команду, заменив COST_CENTER_ID ее на идентификатор из предыдущего шага, а ENTERPRISE``NAMEтакже на , и ORG на соответствующие значения.
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers/COST_CENTER_ID/resource \
--input - <<< '{
"users": [
"NAME-1",
"NAME-2"
],
"organizations": [
"ORG-1"
]
}'
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/cost-centers/COST_CENTER_ID/resource \
--input - <<< '{
"users": [
"NAME-1",
"NAME-2"
],
"organizations": [
"ORG-1"
]
}'
Ответ подтверждает успешное добавление ресурсов. Если какие-либо ресурсы ранее были назначены другому центру затрат, они будут перечислены в массиве reassigned_resources .
{
"message": "Resources successfully added to the cost center.",
"reassigned_resources": [
{
"resource_type": "User",
"name": "monalisa",
"previous_cost_center": "Octocenter"
}
]
}
Если конечная точка отвечает Problems parsing JSON, используйте валидатор JSON, чтобы проверить, что данные, указанные в параметре --input , действительны.
5. Установите бюджеты с помощью REST API
Бюджеты можно создавать программным способом, чтобы применить элементы управления расходами к созданным центрам затрат. Это особенно полезно для управления затратами на основе использования, такими как запросы уровня "Премиум" в большом масштабе.
Создание бюджета для премиум-запросов
В этом примере показано, как создать бюджет на уровне SKU для Copilot премиум-запросов и применить его к вашему новому центру затрат. Это позволяет установить предельную сумму расходов специально для использования премиум-запросов ресурсами в этом центре затрат.
В терминале выполните следующую команду, заменив ENTERPRISE, COST_CENTER_ID, USERNAME, и 1000.0 соответствующими значениями.
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/budgets \
-f budget_type='SkuPricing' \
-f budget_product_sku='copilot_premium_request' \
-f budget_scope='cost_center' \
-f budget_entity_name='COST_CENTER_ID' \
-F budget_amount=1000.0 \
-F prevent_further_usage=true \
-f budget_alerting='{"will_alert":true,"alert_recipients":["USERNAME"]}'
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/enterprises/ENTERPRISE/settings/billing/budgets \
-f budget_type='SkuPricing' \
-f budget_product_sku='copilot_premium_request' \
-f budget_scope='cost_center' \
-f budget_entity_name='COST_CENTER_ID' \
-F budget_amount=1000.0 \
-F prevent_further_usage=true \
-f budget_alerting='{"will_alert":true,"alert_recipients":["USERNAME"]}'
Ответ подтверждает, что бюджет был создан, и возвращает его конфигурацию. Обратите внимание, что этот бюджет устанавливает оба prevent_further_usage значения и will_alert для true. На octocat@github.com адрес электронной почты будут поступать оповещения по мере приближения к бюджетному лимиту, а использование ресурсов центра затрат будет заблокировано, как только будет достигнута сумма в 1000 долларов США.
{
"id": "budget-uuid-here",
"budget_type": "SkuPricing",
"budget_product_sku": "copilot_premium_request",
"budget_scope": "cost_center",
"budget_entity_name": "3312fdf2-5950-4f64-913d-e734124059c9",
"budget_amount": 1000.0,
"prevent_further_usage": true,
"budget_alerting": {
"will_alert": true,
"alert_recipients": [
"octocat"
]
}
}
Совет
Вы можете создать несколько бюджетов для одного и того же центра затрат, чтобы независимо управлять разными продуктами или SKU. Например, можно установить отдельные бюджеты для Copilot премиум-запросов, GitHub Actions вычислений и Codespaces использования. См . раздел AUTOTITLE.
6. Решите, стоит ли автоматизировать
В этом учебнике показаны два подхода к созданию центров затрат: использование пользовательского интерфейса для практического управления и использование REST API для программного управления. Понимание обоих подходов поможет вам решить, какой из них подходит для вашей организации.
**Пользовательский интерфейс** идеально подходит в следующих случаях:
-
Настройка первых нескольких центров затрат
-
Время от времени вносите изменения в существующие центры затрат
-
Отдайте предпочтение визуальному подтверждению изменений
-
Наличие небольшого количества центров затрат для управления
**REST API** полезен, когда вы: -
Необходимость регулярно создавать или обновлять несколько центров затрат
-
Необходимость интеграции управления МВЗ с существующими финансовыми системами или создание конфигураций из внешних источников данных
-
Вам нужно, чтобы центры затрат отражали вашу организационную структуру (например, членство в команде или структуру отдела)
-
Необходимость автоматического ведения назначений центров затрат при изменении ролей пользователей или переходе между командами
Варианты автоматизации
Если вы решили, что автоматизация принесет пользу вашей организации, примеры REST API в этом учебнике обеспечат основу для создания пользовательских скриптов. Дополнительные сведения о других конечных точках см. в разделе AUTOTITLE.
Если вы хотите автоматизировать центры затрат на основе членства в команде или создать двухуровневую модель для контроля затрат на премиум-запросы, GitHub Cost Center Automation обеспечивает полное внедрение с помощью рабочих процессов действий, которые вы можете адаптировать под свои нужды.
Дальнейшие шаги
Сведения о конечных точках, которые можно использовать для автоматизации отчетов об использовании и затратах, см. в разделе AUTOTITLE.
Если есть платные продукты, доступ к которым вы хотите заблокировать, вы можете отключить эту функцию с помощью корпоративной политики. См . раздел AUTOTITLE.