Skip to main content

Contrôle et suivi des coûts à grande échelle

Contrôlez les coûts et fournissez des rapports précis pour votre entreprise en mappant les structures financières de votre entreprise aux centres de coûts et en définissant des budgets à grande échelle.

Qui peut utiliser cette fonctionnalité ?

Enterprise owners and billing managers

Cost centers are available with GitHub Enterprise Set up a trial of GitHub Enterprise Cloud

Les centres de coûts vous aident à suivre et à contrôler GitHub les coûts en les mappant à la structure financière de votre entreprise.

Ce tutoriel vous guide tout au long de la planification, de la création et de la gestion des centres de coûts à l’aide de l’interface utilisateur et de l’API REST, ce qui vous aide à déterminer l’approche qui convient le mieux aux besoins de votre organisation.

1. Planifier votre stratégie de centre de coûts

Les centres de coûts vous permettent de regrouper GitHub des ressources (utilisateurs, organisations et référentiels) pour un suivi des coûts et des rapports distincts. Chaque centre de coûts doit représenter un segment de votre entreprise que vous souhaitez signaler ou contrôler les coûts en tant qu’entité distincte.

Si vous utilisez Azure facturation, vous pouvez affecter une identité de facturation différente à chaque centre de coûts.

Identifier les centres de coûts dont vous avez besoin

La meilleure stratégie dépend de la complexité de votre structure de rapports financiers et de votre GitHub configuration. Commencez par l’approche la plus simple : vous pouvez toujours ajouter plus de centres de coûts ultérieurement.

Procédez comme suit pour planifier vos centres de coûts :

  1.        **Mapper aux entités financières** : créez un centre de coûts pour chaque entité financière que vous souhaitez suivre en interne (comme les services, unités opérationnelles ou équipes de projet).
    
  2.        **Identifier les utilisateurs : répertorier** les utilisateurs qui appartiennent à chaque entité financière. L’attribution d’utilisateurs directement à un centre de coûts garantit que leur licence et leur utilisation du produit sont alloués correctement.
    
  3.        **Identifier les organisations : répertorier** les organisations qui appartiennent à chaque entité financière. L’affectation d’organisations à un centre de coûts alloue correctement leur utilisation des actions, Codespacesdes packages et d’autres produits.
    
  4.        **Identifier la propriété mixte** : si une organisation contient des référentiels appartenant à différentes entités financières, envisagez d’affecter des référentiels individuels aux centres de coûts appropriés et de laisser l’organisation non affectée.
    

Conseil

Si un utilisateur est directement affecté au centre de coûts A et qu’il fait indirectement partie du centre de coûts B par appartenance à l’organisation, tous leurs coûts pour les produits sous licence sont alloués au centre de coûts A. Pour plus d’informations et un exemple, consultez Allocation des centres de coûts pour les différents produits.

2. Créer un centre de coûts dans l’interface utilisateur

Vous allez maintenant créer votre premier centre de coûts à l’aide de l’interface utilisateur (IU) pour vous familiariser avec le fonctionnement des centres de coûts. Choisissez l’un des centres de coûts que vous avez identifiés comme exemple : il est préférable de commencer par une petite entité financière.

  1. Accédez à votre entreprise. Par exemple, depuis la page Entreprises sur GitHub.com.
  2. En haut de la page, cliquez sur Facturation et licences.
  3. Cliquez sur Centres de coûts.
  4. Dans le coin supérieur droit, cliquez sur Nouveau centre de coûts.
  5. Dans la zone de texte sous « Nom », entrez le nom de l’entité financière pour laquelle vous souhaitez suivre les coûts.
  6. Si cette entité financière dispose d’un abonnement Azure distinct, vous pouvez ajouter l’abonnement Azure au centre de coûts pour facturer l’utilisation directement à celui-ci. Les informations d’identification sont vérifiées par rapport à Azure pour vous assurer que l’ID de Azure associé au compte est disponible.
  7. Sous Ressources, sélectionnez les utilisateurs, les organisations et les référentiels à suivre dans le cadre de ce centre de coûts.
  8. Cliquez sur Créer un centre de coûts.

Votre nouveau centre de coûts est désormais actif et l'utilisation sera immédiatement attribuée au centre de coûts. Les futurs rapports de facturation incluront ce centre de coûts avec une entrée dans la colonne cost_center_name pour l'usage qui lui est alloué. Vous pourrez également filtrer les graphiques d’utilisation par ce centre de coûts.

3. Définir des budgets pour contrôler les coûts

La création d’un centre de coûts vous permet de suivre les coûts séparément pour différentes entités financières. Pour contrôler réellement les coûts, vous devez appliquer des budgets à vos centres de coûts.

Présentation des budgets

Les budgets vous permettent de contrôler les dépenses. Chaque budget :

  • S’applique à une seule organisation, référentiel, centre de coûts ou toute votre entreprise
  • Contrôle l’utilisation mensuelle d’un produit payant, d’une référence SKU ou d’un groupe de références SKU
  • Peut être configuré pour arrêter l’utilisation ou pour alerter uniquement lorsque la limite budgétaire est atteinte
  • Peut alerter les propriétaires de compte, les gestionnaires de facturation et les utilisateurs nommés au fur et à mesure que la limite budgétaire est abordée

Calculer le budget de votre centre de coûts

Si votre plan financier interne alloue un budget mensuel unique pour GitHub à ce centre de coûts, vous devez le distribuer entre les produits utilisés par cette équipe.

  1.        **Calculer les coûts de licence fixe : additionner** les coûts des licences que l’équipe utilise déjà pour GitHub Enterprise, GitHub Copilot, GitHub Secret Protection and GitHub Code Security.
    
  2.        **Calculer le budget variable : soustraire** les coûts de licence du budget interne. Le montant restant est ce que vous pouvez allouer pour les produits basés sur l’utilisation au-delà de ce qui est inclus dans le plan.
    

Créer des budgets pour le centre de coûts

Créez un budget pour chaque produit, référence SKU ou groupe de références SKU dont vous souhaitez contrôler les coûts.

  1. Sous l’onglet « Facturation et licence », cliquez sur Budgets et alertes pour afficher les budgets existants.

  2. Cliquez sur Nouveau budget pour ouvrir la page « Nouveau budget mensuel ».

  3. Sous « Type de budget », sélectionnez le budget au niveau du produit, le budget au niveau de la référence SKU ou le budget des demandes Premium groupées.

    • Pour limiter les dépenses au niveau du produit, dans « Budget au niveau du produit », choisissez un produit dans la liste déroulante (par exemple). Codespaces
    • Pour limiter les dépenses à la référence SKU, dans le « budget SKU », choisissez un produit et une référence SKU (par exemple, Copilot et Copilot Requête Premium).
    • Pour limiter les dépenses pour toutes les demandes Premium, utilisez le « budget des demandes Premium groupées ».
  4. Cliquez sur Suivant : Configurez le budget pour afficher « Étendue budgétaire » et définissez l’étendue des dépenses pour ce budget sur le centre de coûts que vous avez créé précédemment.

  5. Sous « Budget », définissez un montant de budget. Pour arrêter toute utilisation et dépense supplémentaire une fois la limite budgétaire atteinte, sélectionnez Arrêter l’utilisation lorsque la limite budgétaire est atteinte. Cela n’est pas disponible pour les produits sous licence.

  6. Pour recevoir une alerte lorsque l’utilisation atteint 75%, 90%et 100% de la cible budgétaire, sélectionnez Recevoir des alertes de seuil budgétaire sous « Alertes ». Les propriétaires de compte, les gestionnaires de facturation et tous les destinataires spécifiés supplémentaires seront avertis par e-mail. Vous pouvez vous désinscrire à tout moment.

    Sous « Destinataires d’alerte », sélectionnez tous les destinataires supplémentaires pour recevoir les alertes.

  7. Cliquez sur Créer un budget.

Examiner les budgets existants pour les conflits

Après avoir créé vos budgets de centre de coûts, vérifiez les budgets existants à l’échelle de l’entreprise pour vous assurer qu’ils ne sont pas en conflit ou remplacent vos nouveaux budgets de centre de coûts.

Accédez à la page « Budgets et alertes ». Vous verrez deux listes de budgets :

  •         **Budgets d’entreprise** : limites qui s’appliquent à l’ensemble du compte d’entreprise
    
  •         **Autres budgets** : Limites pour des référentiels, des organisations ou des centres de coûts spécifiques
    

Vérifier les budgets d’entreprise

Vérifiez si les budgets d’entreprise s’appliquent aux mêmes produits ou références SKU que vos nouveaux budgets de centre de coûts. Si un budget d’entreprise est très faible, il peut bloquer l’utilisation de votre centre de coûts avant que le budget du centre de coûts soit atteint. Envisagez de supprimer ou d’ajuster les budgets d’entreprise en conflit.

Afficher les budgets de votre centre de coûts

Filtrez la liste des autres budgets pour afficher une étendue de Centre de coûts. Vous devez voir votre nouveau centre de coûts avec une ligne pour chaque budget que vous avez créé. Initialement, l’utilisation sera proche de zéro, mais dans quelques jours, les coûts s’accumulent lorsque les utilisateurs et les dépôts consomment des produits au-delà de l’allocation prévue par leur plan.

4. Créer un centre de coûts avec l’API REST

Maintenant que vous comprenez comment créer des centres de coûts dans l’interface utilisateur, vous pouvez explorer l’API REST pour voir comment les centres de coûts peuvent être créés par programmation. Comprendre l’API vous aide à déterminer si l’automatisation profiterait à votre organisation.

Cette section démontre les points de terminaison d’API REST clés pour la gestion du centre de coûts à l’aide de GitHub CLI. Pour plus d’informations sur l’installation GitHub CLI et l’authentification pour accéder à ces points de terminaison, consultez Démarrage rapide pour l’API REST GitHub.

Remarque

Les exemples suivants utilisent GitHub CLI, mais vous pouvez adapter ces commandes pour utiliser curl ou tout client HTTP qui prend en charge les appels d’API REST.

Répertorier tous les centres de coûts existants

Tout d’abord, récupérez tous les centres de coûts de votre entreprise pour voir ce qui existe déjà. Cette demande simple vous permet de vous assurer que vous êtes correctement authentifié pour gérer la facturation pour votre entreprise.

Dans votre terminal, exécutez la commande suivante en remplaçant ENTERPRISE par le slug de votre entreprise.

Shell
gh api \
  -H "Accept: application/vnd.github+json" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  /enterprises/ENTERPRISE/settings/billing/cost-centers

La réponse inclut tous les centres de coûts créés dans votre entreprise, y compris le centre de coûts que vous avez créé précédemment dans ce tutoriel. Dans cet exemple, l’entreprise dispose d’un centre de coûts, « Octocenter », avec une organisation et deux utilisateurs affectés.

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

Créer un centre de coûts

Créez un centre de coûts en indiquant un nom. Vous recevrez un identificateur unique que vous utiliserez pour gérer ce centre de coûts.

Dans votre terminal, exécutez la commande suivante, en remplaçant ENTERPRISE et NAME par les valeurs appropriées.

Shell
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 réponse inclut l’identificateur du nouveau centre de coûts. Vous devrez l’utiliser id pour toutes les opérations futures sur ce centre de coûts.

{
  "id": "3312fdf2-5950-4f64-913d-e734124059c9",
  "name": "NAME",
  "state": "active",
  "resources": []
}

Ajouter des ressources au centre de coûts

Attribuez des utilisateurs, des organisations et des référentiels à votre centre de coûts. Cet exemple montre comment ajouter plusieurs utilisateurs et une organisation.

Dans votre terminal, exécutez la commande suivante, en remplaçant COST_CENTER_ID par l’identificateur de l’étape précédente, et ENTERPRISE, NAME et ORG par les valeurs appropriées.

Shell
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 réponse confirme la réussite de l’ajout de ressources. Si des ressources ont été précédemment affectées à un autre centre de coûts, elles sont répertoriées dans le reassigned_resources tableau.

{
  "message": "Resources successfully added to the cost center.",
  "reassigned_resources": [
    {
      "resource_type": "User",
      "name": "monalisa",
      "previous_cost_center": "Octocenter"
    }
  ]
}

Si le point de terminaison répond avec Problems parsing JSON, utilisez un validateur JSON pour vérifier que les données spécifiées dans l’option --input sont valides.

5. Définir des budgets avec l’API REST

Vous pouvez créer des budgets par programmation pour appliquer des contrôles de dépense aux centres de coûts que vous avez créés. Cela est particulièrement utile pour gérer les coûts basés sur l’utilisation, comme les demandes Premium à grande échelle.

Créer un budget pour les demandes Premium

Cet exemple montre comment créer un budget au niveau SKU pour les demandes premium et l'implémenter à votre nouveau centre de dépense. Cela vous permet de définir une limite de dépenses spécifiquement pour l’utilisation des requêtes premium par les ressources de ce centre de coûts.

Dans votre terminal, exécutez la commande suivante, en remplaçant ENTERPRISE, COST_CENTER_ID, USERNAME et 1000.0 par les valeurs appropriées.

Shell
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 réponse confirme que le budget a été créé et retourne sa configuration. Notez que ce budget définit à la fois prevent_further_usage et will_alert sur true. L’adresse [email protected] e-mail recevra des alertes lorsque la limite budgétaire est approchée, et l'utilisation sera bloquée pour les ressources du centre de coûts une fois que le montant de 1 000 USD est atteint.

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

Conseil

Vous pouvez créer plusieurs budgets pour le même centre de coûts pour contrôler indépendamment différents produits ou références SKU. Par exemple, vous pouvez définir des budgets distincts pour Copilot les demandes Premium, GitHub Actions le calcul et Codespaces l’utilisation. Consultez « Noms des produits et des références SKU GitHub ».

6. Décider s’il faut automatiser

Ce tutoriel vous a montré deux approches pour créer des centres de coûts : l’utilisation de l’interface utilisateur pour la gestion pratique et l’utilisation de l’API REST pour la gestion programmatique. La compréhension des deux approches vous aide à décider qui convient à votre organisation.

          **L’interface utilisateur** est idéale lorsque vous :
  • Configurer vos premiers centres de coûts

  • Effectuer des mises à jour occasionnelles des centres de coûts existants

  • Préférer la confirmation visuelle des modifications

  • Avoir un petit nombre de centres de coûts à gérer

            **L’API REST** est précieuse lorsque vous effectuez les étapes suivantes :
    
  • Besoin de créer ou de mettre à jour plusieurs centres de coûts régulièrement

  • Besoin d’intégrer la gestion du centre de coûts à des systèmes financiers existants ou de générer des configurations à partir de sources de données externes

  • Besoin de centres de coûts pour mettre en miroir votre structure organisationnelle (par exemple, l’appartenance à l’équipe ou la structure du service)

  • Besoin de maintenir automatiquement les attributions du centre de coûts lorsque les utilisateurs changent de rôles ou se déplacent entre les équipes

Options d’automatisation

Si vous décidez que l’automatisation profiterait à votre organisation, les exemples d’API REST de ce didacticiel fournissent la base de la création de scripts personnalisés. Pour plus d’informations sur les autres points de terminaison, consultez Points de terminaison d’API REST pour la facturation.

Si vous souhaitez automatiser les centres de coûts en fonction de l’appartenance à l’équipe ou créer un modèle à deux niveaux pour contrôler les coûts des demandes Premium, GitHub Cost Center Automation fournit une implémentation complète à l’aide des workflows d’actions que vous pouvez adapter à vos besoins.

Étapes suivantes

Pour en savoir plus sur les points de terminaison que vous pouvez utiliser pour automatiser la création de rapports sur l’utilisation et les coûts, consultez Automatisation des rapports d’utilisation avec l’API REST.

S’il existe des produits payants auxquels vous souhaitez bloquer tout accès, vous pouvez désactiver la fonctionnalité à l’aide d’une stratégie d’entreprise. Consultez « Stratégies d’entreprise ».