Los centros de costos le ayudan a realizar un seguimiento y control de los costos GitHub mediante su asignación a la estructura financiera de su empresa.
Este tutorial le guía a través de la planeación, creación y administración de centros de costos mediante la interfaz de usuario y la API REST, lo que le ayuda a decidir qué enfoque se adapta mejor a las necesidades de su organización.
1. Planear la estrategia del centro de costos
Los centros de costos permiten agrupar GitHub recursos (usuarios, organizaciones y repositorios) para el seguimiento de costos e informes independientemente. Cada centro de costos debe representar un segmento de su empresa en el que desea informar o controlar los costos de como una entidad independiente.
Si usa la facturación de Azure, puede asignar una identidad de facturación diferente a cada centro de costos.
Identificación de los centros de costos que necesita
La mejor estrategia depende de la complejidad de la estructura de informes financieros y de la configuración de GitHub . Comience con el enfoque más sencillo: siempre puede agregar más centros de costos más adelante.
Siga estos pasos para planear los centros de costos:
-
**Asignar a entidades financieras**: cree un centro de costes para cada entidad financiera de la que quiera realizar un seguimiento interno (por ejemplo, departamentos, unidades de negocio o equipos de proyecto). -
**Identificar usuarios**: enumere los usuarios que pertenecen a cada entidad financiera. La asignación de usuarios directamente a un centro de costos garantiza que su uso de productos y licencias se asigne correctamente. -
**Identificar organizaciones**: enumere las organizaciones que pertenecen a cada entidad financiera. La asignación de organizaciones a un centro de costes distribuye correctamente su uso de acciones, Codespaces, paquetes y otros productos. -
**Identificar la propiedad mixta**: si una organización contiene repositorios propiedad de diferentes entidades financieras, planifique asignar repositorios individuales a los centros de costes pertinentes y deje sin asignar la organización.
Sugerencia
Si un usuario se asigna directamente al centro de costos A e indirectamente parte del centro de costos B por pertenencia a la organización, todos sus costos para los productos con licencia se asignan al centro de costos A. Para obtener más información y un ejemplo, consulte Asignación del centro de coste para diferentes productos.
2. Creación de un centro de costos en la interfaz de usuario
Ahora creará su primer centro de costos mediante la interfaz de usuario (UI) para familiarizarse con el funcionamiento de los centros de costos. Elija uno de los centros de costo que ha identificado como ejemplo: es mejor empezar con una pequeña entidad financiera.
- Vaya a su empresa. Por ejemplo, desde https://github.com/settings/enterprises.
- En la parte superior de la página, haz clic en Billing and licensing.
- Haz clic en Centros de costes.
- En la esquina superior derecha, haz clic en Nuevo centro de coste.
- En el cuadro de texto debajo de "Nombre", escriba el nombre de la entidad financiera para la que desea realizar un seguimiento de los costos.
- Opcionalmente, si esta entidad financiera tiene una suscripción de Azure independiente, puede agregar la suscripción de Azure al centro de costos para cobrar el uso directamente a ella. Las credenciales se comprobarán en Azure para asegurarse de que el identificador de Azure asociado a la cuenta está disponible.
- En Recursos, seleccione los usuarios, las organizaciones y los repositorios para realizar el seguimiento como parte de este centro de costos.
- Haz clic en Crear centro de coste.
El nuevo centro de costes ahora está activo y el uso comenzará a atribuirse al centro de costes inmediatamente. Los informes de facturación futuros incluirán este centro de costes con una entrada en la columna cost_center_name para su uso asignado. También podrá filtrar los gráficos de uso por este centro de costes.
3. Establecer presupuestos para controlar los costos
La creación de un centro de costos le permite realizar un seguimiento de los costos por separado para diferentes entidades financieras. Para controlar realmente los costos, debe aplicar presupuestos a los centros de costos.
Descripción de los presupuestos
Los presupuestos le proporcionan control sobre el gasto. Cada presupuesto:
- Se aplica a una sola organización, repositorio, centro de costos o a toda la empresa
- Controla el uso mensual de un producto de pago, SKU o grupo de SKU
- Se puede configurar para detener el uso o solo para alertar cuando se alcanza el límite de presupuesto.
- Puede alertar a los propietarios de cuentas, a los administradores de facturación y a los usuarios designados a medida que se aproxima el límite de presupuesto.
Cálculo del presupuesto del centro de costos
Si el plan financiero interno asigna un solo presupuesto mensual para GitHub para este centro de costos, deberá distribuirlo entre los productos que usa este equipo.
-
**Calcular los costes fijos de licencia**: agregue los costes de licencias que el equipo ya usa para GitHub Enterprise, GitHub Copilot, GitHub Secret Protection and GitHub Code Security. -
**Calcular el presupuesto variable**: reste los costes de licencia del presupuesto interno. La cantidad restante es lo que puede asignar para productos basados en uso más allá de lo que se incluye en el plan.
Creación de presupuestos para el centro de costos
Cree un presupuesto para cada producto, SKU o grupo de SKU para los que quiera controlar los costos.
-
En la pestaña "Facturación y licencias", haga clic en Presupuestos y alertas para mostrar los presupuestos existentes.
-
Haga clic en Nuevo presupuesto para abrir la página "Nuevo presupuesto mensual".
-
En "Tipo de presupuesto", seleccione Presupuesto de nivel de producto, presupuesto de nivel de SKU o Presupuesto de solicitudes Premium agrupadas.
- Para limitar el gasto en el nivel de producto, en "Presupuesto de nivel de producto", elija un producto en la lista desplegable (por ejemplo, Codespaces).
- Para limitar el gasto en el nivel de SKU, en "Presupuesto de nivel de SKU", elija un producto y una SKU (por ejemplo, solicitud Premium de Copilot y Copilot).
- Para limitar el gasto de todas las solicitudes Premium, use el "Presupuesto de solicitudes Premium agrupadas".
-
Haga clic en Siguiente: Configurar presupuesto para mostrar "Ámbito de presupuesto" y establecer el ámbito de gasto de este presupuesto en el centro de costos que creó anteriormente.
-
En "Presupuesto", establece un importe presupuestario. Para detener cualquier uso y gastar más una vez alcanzado el límite de presupuesto, seleccione Detener uso cuando se alcance el límite de presupuesto. Esto no está disponible para productos basados en licencias.
-
Para recibir una alerta cuando el uso alcance 75%, 90%y 100% del destino de presupuesto, seleccione Recibir alertas de umbral de presupuesto en "Alertas ". Los propietarios de cuentas, los administradores de facturación y los destinatarios especificados adicionales se notificarán por correo electrónico. Puede optar por no recibir estas alertas en cualquier momento.
En "Destinatarios de alerta", seleccione los destinatarios adicionales para recibir las alertas.
-
Haz clic en Crear presupuesto.
Revisión de los presupuestos existentes para los conflictos
Después de crear los presupuestos del centro de costos, compruebe los presupuestos existentes para toda la empresa para asegurarse de que no entran en conflicto ni invalidan los nuevos presupuestos del centro de costos.
Vaya a la página "Presupuestos y alertas". Verá dos listas de presupuestos:
-
**Presupuestos de empresa: límites** que se aplican a toda la cuenta empresarial -
**Otros presupuestos**: límites para repositorios, organizaciones o centros de costos específicos
Comprobación de presupuestos empresariales
Revise si los presupuestos empresariales se aplican a los mismos productos o SKU que los nuevos presupuestos del centro de costos. Si el presupuesto de una empresa es muy bajo, podría bloquear el uso en el centro de costes antes de que se alcance el presupuesto propio del centro de costes. Considere la posibilidad de eliminar o ajustar los presupuestos empresariales en conflicto.
Visualización de los presupuestos del centro de costos
Filtre la lista de otros presupuestos para mostrar un ámbito de Centros de costes. Debería ver su nuevo centro de costes con una fila para cada presupuesto que haya creado. Inicialmente, el uso estará cerca de cero, pero en unos días verá que los costos se acumulan a medida que los usuarios y los repositorios consumen productos más allá de la asignación en su plan.
4. Creación de un centro de costos con la API REST
Ahora que comprende cómo crear centros de costos en la interfaz de usuario, puede explorar la API REST para ver cómo se pueden crear centros de costos mediante programación. Comprender la API le ayuda a evaluar si la automatización beneficiaría a su organización.
En esta sección se muestran los puntos de conexión de API REST clave para la administración del centro de costes mediante GitHub CLI. Para obtener más información sobre cómo instalar GitHub CLI y autenticarse para acceder a estos extremos, consulte Inicio rápido para la APi de REST GitHub.
Nota:
En los ejemplos siguientes se usa GitHub CLI, pero puede adaptar los comandos para usar curl o cualquier cliente HTTP que admita invocaciones REST API.
Enumeración de todos los centros de costos existentes
En primer lugar, recupere todos los centros de costos de su empresa para ver lo que ya existe. Esta solicitud sencilla le permite asegurarse de que se ha autenticado correctamente para administrar la facturación de su empresa.
En el terminal, ejecute el siguiente comando, reemplazando ENTERPRISE por el slug de su 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
La respuesta incluirá todos los centros de costos creados en su empresa, incluido el centro de costos que creó anteriormente en este tutorial. En este ejemplo, la empresa tiene un centro de costos, "Octocenter", con una organización y dos usuarios asignados.
{
"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"
}
]
}
]
}
Creación de un nuevo centro de costos
Cree un nuevo centro de costos proporcionando un nombre. Recibirá un identificador único que usará para administrar este centro de costos.
En el terminal, ejecute el siguiente comando, reemplazando ENTERPRISE y NAME por los valores adecuados.
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'
La respuesta incluye el identificador del nuevo centro de costos. Deberá utilizarlo id para todas las operaciones futuras en este centro de costes.
{
"id": "3312fdf2-5950-4f64-913d-e734124059c9",
"name": "NAME",
"state": "active",
"resources": []
}
Agrega recursos al centro de costos
Asigne usuarios, organizaciones y repositorios al centro de costos. En este ejemplo se muestra cómo agregar varios usuarios y una organización.
En el terminal, ejecute el comando siguiente, reemplazando COST_CENTER_ID por el identificador del paso anterior, y ENTERPRISE, NAMEy ORG por los valores adecuados.
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"
]
}'
La respuesta confirma la incorporación exitosa de recursos. Si los recursos se asignaron previamente a un centro de costos diferente, se mostrarán en la reassigned_resources matriz.
{
"message": "Resources successfully added to the cost center.",
"reassigned_resources": [
{
"resource_type": "User",
"name": "monalisa",
"previous_cost_center": "Octocenter"
}
]
}
Si el punto de conexión responde con Problems parsing JSON, use un validador JSON para comprobar que los datos especificados en la --input opción son válidos.
5. Establecer presupuestos con la API REST
Puede crear presupuestos mediante programación para aplicar controles de gasto a los centros de costos que ha creado. Esto es especialmente útil para administrar los costos basados en el uso, como las solicitudes premium a escala.
Creación de un presupuesto para las solicitudes Premium
En este ejemplo se muestra cómo crear un presupuesto de nivel de SKU para solicitudes premium de Copilot y aplicarlo al nuevo centro de costes. Esto le permite establecer un límite de gasto específicamente para el uso de solicitudes premium por parte de los recursos de este centro de costes.
En su terminal, ejecute el siguiente comando, reemplazando ENTERPRISE, COST_CENTER_ID, USERNAME, y 1000.0 con los valores adecuados.
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"]}'
La respuesta confirma que se creó el presupuesto y devuelve su configuración. Tenga en cuenta que este presupuesto establece tanto prevent_further_usage como will_alert en true. La [email protected] dirección de correo electrónico recibirá alertas a medida que se aproxima el límite presupuestario y el uso se bloqueará para los recursos del centro de costos una vez alcanzados los 1000 USD.
{
"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"
]
}
}
Sugerencia
Puede crear varios presupuestos para el mismo centro de costos para controlar diferentes productos o SKU de forma independiente. Por ejemplo, puede establecer presupuestos independientes para solicitudes premium de Copilot, proceso de GitHub Actions y uso de Codespaces. Consulta Nombres de producto y SKU de GitHub.
6. Decidir si desea automatizar
En este tutorial se muestran dos enfoques para crear centros de costos: el uso de la interfaz de usuario para la administración práctica y el uso de la API REST para la administración mediante programación. Comprender ambos enfoques le ayuda a decidir cuál es el adecuado para su organización.
La interfaz de usuario es ideal cuando:
- Configura tus primeros centros de costos
- Realizar actualizaciones ocasionales en los centros de costos existentes
- Preferir la confirmación visual de los cambios
- Tener un pequeño número de centros de costos para administrar
La API REST es valiosa cuando:
- Necesidad de crear o actualizar varios centros de costos con regularidad
- Necesidad de integrar la administración del centro de costos con sistemas financieros existentes o generar configuraciones a partir de orígenes de datos externos
- Necesita centros de costos para reflejar la estructura organizativa (como la pertenencia al equipo o la estructura del departamento)
- Es necesario mantener las asignaciones del centro de costos automáticamente a medida que los usuarios cambian los roles o se mueven entre equipos
Opciones de automatización
Si decide que la automatización beneficiaría a su organización, los ejemplos de la API REST de este tutorial proporcionan la base para crear scripts personalizados. Para obtener más información sobre otros puntos de conexión, consulte Puntos de conexión de la API de REST para la facturación.
Si desea automatizar los centros de costos en función de la pertenencia al equipo o crear un modelo de dos niveles para controlar los costos de las solicitudes Premium, GitHub Cost Center Automation proporciona una implementación completa mediante flujos de trabajo de acciones que puede adaptar para sus necesidades.
Pasos siguientes
Para obtener información sobre los puntos de conexión que puede usar para automatizar los informes de uso y costos, consulte Automatización de informes de uso con la API de REST.
Si hay productos de pago a los que desea bloquear todo el acceso, puede deshabilitar la característica mediante una directiva de empresa. Consulta Directivas de empresa.