Os centros de custos ajudam você a acompanhar e controlar GitHub os custos mapeando-os para a estrutura financeira da sua empresa.
Este tutorial orienta você pelo planejamento, criação e gerenciamento de centros de custos usando a interface do usuário e a API REST, ajudando você a decidir qual abordagem melhor atende às necessidades da sua organização.
1. Planejar sua estratégia de centro de custos
Os centros de custo permitem que você agrupe GitHub recursos , usuários, organizações e repositórios, para acompanhamento de custos e relatórios separados. Cada centro de custo deve representar um segmento da sua empresa para o qual você deseja relatar ou controlar os custos como uma entidade separada.
Se você usar a cobrança do Azure, poderá atribuir uma identidade de cobrança diferente a cada centro de custo.
Identificar os centros de custo de que você precisa
A melhor estratégia depende da complexidade tanto da sua estrutura de relatórios financeiros quanto da sua configuração GitHub. Comece com a abordagem mais simples: você sempre pode adicionar mais centros de custo mais tarde.
Siga estas etapas para planejar seus centros de custos:
-
**Mapear para entidades financeiras**: crie um centro de custos para cada entidade financeira que você deseja rastrear internamente (como departamentos, unidades de negócios ou equipes de projeto). -
**Identificar usuários**: listar os usuários que pertencem a cada entidade financeira. Atribuir usuários diretamente a um centro de custo garante que sua licença e o uso do produto sejam alocados corretamente. -
**Identificar organizações**: listar as organizações que pertencem a cada entidade financeira. Atribuir organizações a um centro de custos aloca corretamente o uso de ações, Codespaces, pacotes e outros produtos. -
**Identificar a propriedade mista**: se uma organização contiver repositórios pertencentes a diferentes entidades financeiras, planeje atribuir repositórios individuais aos centros de custos relevantes e deixe a organização sem atribuição.
Dica
Se um usuário for atribuído diretamente ao centro de custo A e indiretamente parte do centro de custo B por associação da organização, todos os seus custos para produtos licenciados serão alocados para o centro de custo A. Para obter mais detalhes e um exemplo, consulte Alocação de centros de custo para diferentes produtos.
2. Criar um centro de custo na interface do usuário
Agora, você criará seu primeiro centro de custo usando a interface do usuário (IU) para se familiarizar com o funcionamento dos centros de custo. Escolha um dos centros de custo que você identificou como um exemplo: é melhor começar com uma entidade financeira pequena.
- Navegue até sua empresa. Por exemplo, na página Enterprises em GitHub.com.
- Na parte superior da página, clique em Billing and licensing.
- Clique em Centros de custo.
- Clique em Novo centro de custo no canto superior direito.
- Na caixa de texto em "Nome", insira o nome da entidade financeira para a qual você deseja controlar os custos.
- Opcionalmente, se essa entidade financeira tiver uma assinatura Azure separada, você poderá adicionar a assinatura Azure ao centro de custos para cobrar o uso diretamente a ela. As credenciais serão verificadas em Azure para garantir que a ID de Azure associada à conta esteja disponível.
- Em Recursos, selecione os usuários, organizações e repositórios a serem rastreados como parte desse centro de custo.
- Clique em Criar centro de custo.
Seu novo centro de custos agora está ativo, e o uso começará a ser atribuído ao centro de custos imediatamente. Relatórios de cobrança futuros incluirão esse centro de custos com uma entrada na coluna cost_center_name para uso alocado a ele. Por esse centro de custos, você também poderá filtrar gráficos de uso.
3. Definir orçamentos para controlar os custos
A criação de um centro de custos permite que você acompanhe os custos separadamente para diferentes entidades financeiras. Para realmente controlar os custos, você precisa aplicar orçamentos aos seus centros de custos.
Noções básicas sobre orçamentos
Os orçamentos lhe dão controle sobre os gastos. Cada orçamento:
- Aplica-se a uma única organização, repositório, centro de custos ou toda a sua empresa
- Controla o uso mensal de um produto pago, SKU ou grupo de SKUs
- Pode ser configurado para interromper o uso ou para alertar somente quando o limite de orçamento for atingido
- Pode alertar proprietários de contas, gerentes de cobrança e usuários nomeados à medida que o limite de orçamento é abordado
Calcular seu orçamento do centro de custos
Se seu plano financeiro interno aloca um orçamento mensal único para GitHub para esse centro de custo, você precisará distribuí-lo entre os produtos que essa equipe usa.
-
**Calcular os custos fixos de licença**: some os custos das licenças que a equipe já utiliza para GitHub Enterprise, GitHub Copilot, GitHub Secret Protection and GitHub Code Security. -
**Calcular o orçamento variável**: subtrair os custos de licença do orçamento interno. O valor restante é o que você pode alocar para produtos baseados em uso além do que está incluído no plano.
Criar orçamentos para o centro de custos
Crie um orçamento para cada produto, SKU ou grupo de SKUs para os quais você deseja controlar os custos.
-
Na aba "Cobrança e licenciamento", clique em Orçamentos e alertas para exibir os orçamentos existentes.
-
Clique em Novo orçamento para abrir a página "Novo orçamento mensal".
-
Em "Tipo de Orçamento", selecione orçamento no nível do produto, orçamento no nível de SKU ou orçamento de solicitações premium agrupadas.
- Para limitar os gastos no nível do produto, em "Orçamento no nível do produto", escolha um produto na lista suspensa (por exemplo, Codespaces).
- Para limitar os gastos no nível de SKU, em "Orçamento no nível de SKU", escolha um produto e um SKU (por exemplo, Copilot e Copilot Solicitação Premium).
- Para limitar os gastos para todas as solicitações premium, use o "Orçamento de solicitações premium agrupadas".
-
Clique em Avançar: Configure o orçamento para exibir "Escopo do orçamento" e defina o escopo dos gastos para esse orçamento para o centro de custo criado anteriormente.
-
Em "Orçamento", defina um valor de orçamento. Para interromper qualquer uso e gastos adicionais depois que o limite de orçamento for atingido, selecione Parar o uso quando o limite de orçamento for atingido. Isso não está disponível para produtos baseados em licença.
-
Para receber um alerta quando o uso atingir 75%, 90%e 100% da meta de orçamento, selecione Receber alertas de limite de orçamento em "Alertas". Os proprietários da conta, os gerentes de cobrança e quaisquer destinatários especificados adicionais serão notificados por email. Você pode optar por sair a qualquer momento.
Em "Destinatários de Alerta", selecione os destinatários adicionais para receber os alertas.
-
Clique em Criar orçamento.
Examinar os orçamentos existentes para conflitos
Depois de criar seus orçamentos de centro de custos, verifique os orçamentos existentes em toda a empresa para garantir que eles não entrem em conflito ou substituam seus novos orçamentos do centro de custos.
Navegue até a página "Orçamentos e alertas". Você verá duas listas de orçamentos:
- Orçamentos corporativos: limites que se aplicam a toda a conta corporativa
- Outros orçamentos: limites para repositórios, organizações ou centros de custo específicos
Verificar orçamentos corporativos
Examine se os orçamentos corporativos se aplicam aos mesmos produtos ou SKUs que seus novos orçamentos do centro de custos. Se um orçamento corporativo for muito baixo, ele poderá bloquear o uso do centro de custos antes que o orçamento do próprio centro de custos seja atingido. Considere excluir ou ajustar orçamentos empresariais conflitantes.
Exibir orçamentos do centro de custos
Filtre a outra lista de orçamentos para mostrar um escopo dos Centros de Custos. Você deverá ver seu novo centro de custos com uma linha para cada orçamento criado. Inicialmente, o uso será próximo de zero, mas dentro de alguns dias você verá os custos se acumulando à medida que os usuários e repositórios consomem produtos além do subsídio em seu plano.
4. Criar um centro de custo com a API REST
Agora que você entende como criar centros de custo na interface do usuário, você pode explorar a API REST para ver como os centros de custo podem ser criados programaticamente. Entender a API ajuda você a avaliar se a automação beneficiaria sua organização.
Esta seção demonstra os principais endpoints da API REST usando GitHub CLI para o gerenciamento de Centro de Custos. Para obter detalhes sobre como instalar GitHub CLI e autenticar para acessar esses endpoints, consulte Início Rápido da API REST GitHub.
Observação
Os exemplos a seguir usam GitHub CLI, mas você pode adaptar esses comandos para usar curl ou qualquer cliente HTTP que dê suporte a chamadas à API REST.
Listar todos os centros de custo existentes
Primeiro, recupere todos os centros de custo em sua empresa para ver o que já existe. Essa solicitação simples permite garantir que você esteja autenticado corretamente para gerenciar a cobrança para sua empresa.
No terminal, execute o seguinte comando, substituindo ENTERPRISE pelo slug da sua empresa.
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
A resposta incluirá todos os centros de custo criados em sua empresa, incluindo o centro de custos que você criou anteriormente neste tutorial. Neste exemplo, a empresa possui um centro de custo, o "Octocenter", que tem uma organização à qual foram atribuídos dois usuários.
{
"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"
}
]
}
]
}
Criar um novo centro de custo
Crie um novo centro de custo fornecendo um nome. Você receberá um identificador exclusivo que usará para gerenciar esse centro de custos.
No terminal, execute o comando a seguir, substituindo ENTERPRISE e NAME com os valores apropriados.
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'
A resposta inclui o identificador do novo centro de custo. Você precisará utilizar este id para todas as operações futuras neste centro de custos.
{
"id": "3312fdf2-5950-4f64-913d-e734124059c9",
"name": "NAME",
"state": "active",
"resources": []
}
Adicionar recursos ao centro de custos
Atribua usuários, organizações e repositórios ao centro de custos. Este exemplo mostra como adicionar vários usuários e uma organização.
No terminal, execute o comando a seguir, substituindo COST_CENTER_ID pelo identificador da etapa anterior e ENTERPRISE, NAMEe ORG com os valores apropriados.
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"
]
}'
A resposta confirma a adição bem-sucedida de recursos. Se algum recurso tiver sido atribuído anteriormente a um centro de custo diferente, eles serão listados na reassigned_resources matriz.
{
"message": "Resources successfully added to the cost center.",
"reassigned_resources": [
{
"resource_type": "User",
"name": "monalisa",
"previous_cost_center": "Octocenter"
}
]
}
Se o ponto de extremidade responder com Problems parsing JSON, use um validador JSON para verificar se os dados especificados na opção --input são válidos.
5. Definir orçamentos com a API REST
Você pode criar orçamentos programaticamente para aplicar controles de gastos aos centros de custo criados. Isso é particularmente útil para gerenciar custos baseados em uso, como solicitações premium em escala.
Criar um orçamento para solicitações premium
Este exemplo mostra como criar um orçamento no nível de SKU para Copilot solicitações premium e aplicá-lo ao seu novo centro de custo. Isso permite que você defina um limite de gastos especificamente para o uso de solicitações premium pelos recursos neste centro de custos.
No terminal, execute o comando a seguir, substituindo ENTERPRISE, COST_CENTER_ID, USERNAME e 1000.0 pelos valores apropriados.
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"]}'
A resposta confirma que o orçamento foi criado e retorna sua configuração. Observe que esse orçamento define tanto prevent_further_usage quanto will_alert para true. O [email protected] endereço de email receberá alertas à medida que o limite de orçamento for atingido e o uso será bloqueado para recursos do centro de custos ao alcançar USD 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"
]
}
}
Dica
Você pode criar vários orçamentos para o mesmo centro de custo para controlar diferentes produtos ou SKUs de forma independente. Por exemplo, você pode definir orçamentos separados para Copilot solicitações premium, GitHub Actions computação e Codespaces uso. Confira GitHub nomes de produto e SKU.
6. Decidir se deseja automatizar
Este tutorial mostrou duas abordagens para criar centros de custo: usar a interface do usuário para gerenciamento prático e usar a API REST para gerenciamento programático. Entender ambas as abordagens ajuda você a decidir qual é o ideal para sua organização.
A interface do usuário é ideal quando você:
- Configurar seus primeiros centros de custo
- Fazer atualizações ocasionais para centros de custo existentes
- Preferir a confirmação visual de alterações
- Ter um pequeno número de centros de custo para gerenciar
A API REST é valiosa quando você:
- Precisa criar ou atualizar vários centros de custo regularmente
- Precisa integrar o gerenciamento de centro de custos a sistemas financeiros existentes ou gerar configurações de fontes de dados externas
- Precisa de centros de custo para refletir sua estrutura organizacional (como composição das equipes ou estrutura dos departamentos)
- Precisa manter as atribuições do centro de custo automaticamente à medida que os usuários alteram as funções ou se movem entre as equipes
Opções de automação
Se você decidir que a automação beneficiaria sua organização, os exemplos da API REST neste tutorial fornecerão a base para a criação de scripts personalizados. Para obter detalhes de outros pontos de extremidade, consulte Pontos de extremidade da API REST para faturamento.
Se você quiser automatizar centros de custo baseado na associação de membros da equipe ou criar um modelo de duas camadas para controlar os custos de solicitações premium, GitHub Cost Center Automation fornecerá uma implementação completa usando fluxos de trabalho de ações que você pode adaptar para suas necessidades.
Próximas etapas
Para saber mais sobre os pontos de extremidade que você pode usar para automatizar relatórios de uso e custos, consulte Automatizando relatórios de uso com a API REST.
Se houver produtos pagos aos quais você deseja bloquear todo o acesso, você poderá desabilitar o recurso usando uma política empresarial. Confira Políticas empresariais.