• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Intelligence de l'architecture des services avec GitHub Enterprise (sur site)

Aperçu

Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !

Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.

Cherchez-vous à obtenir des informations plus approfondies sur l'architecture de vos services en exploitant les données de votre compte GitHub Enterprise sur site ? L'intégration New Relic GitHub Enterprise importe les référentiels et les équipes directement dans la plateforme New Relic à l'aide d'un service de collecte sécurisé déployé au sein de votre réseau privé.

Grâce à la nouvelle fonctionnalité d'extraction sélective des données, vous pouvez choisir exactement les types de données à importer, qu'il s'agisse d'équipes, de référentiels et de demandes d'extraction, ou des deux. Cette intégration vise à améliorer la gestion et la visibilité des Équipes, des Catalogues et des Tableaux de bord au sein de New Relic. Pour plus d'informations, consultez la fonctionnalité Service Architecture Intelligence.

Prérequis

  • Compte GitHub Enterprise sur site avec les privilèges d'administrateur de l'organisation.
  • Environnement Docker pour exécuter le service de collecte au sein de votre réseau GitHub Enterprise.
  • Compte New Relic avec les autorisations appropriées pour créer des intégrations.

Considérations de sécurité

Cette intégration suit les meilleures pratiques de sécurité :

  • Utilise l'authentification GitHub App avec des autorisations minimales requises
  • Les événements Webhook sont authentifiés à l'aide de clés secrètes
  • Toutes les transmissions de données se font via HTTPS
  • Aucune information d'identification utilisateur n'est stockée ou transmise
  • Seules les données des référentiels et des équipes sont importées

Pour configurer l'intégration GitHub Enterprise :

Créez et configurez une application GitHub

Dans votre instance GHE, accédez à Settings → Developer Settings → GitHub Apps → New GitHub App. Pour des instructions détaillées sur la création d'une GitHub App, reportez-vous à la documentation GitHub sur l'enregistrement d'une GitHub App.

Configurer les permissions

Configurez avec précision les autorisations de l'application pour garantir une extraction transparente des données lors de la synchronisation initiale et une écoute efficace des événements de webhook par la suite. Les autorisations de l'application définissent l'étendue de l'accès de l'application à diverses ressources de référentiel et d'organisation sur GitHub. En adaptant ces autorisations, vous pouvez améliorer la sécurité, en vous assurant que l'application n'accède qu'aux données nécessaires tout en minimisant l'exposition. Une configuration appropriée facilite la synchronisation initiale des données et la gestion fiable des événements, optimisant ainsi l'intégration de l'application avec l'écosystème de GitHub.

Pour des conseils détaillés sur les permissions de l'application GitHub, consultez la documentation GitHub sur la définition des permissions pour les applications GitHub.

Autorisations de référentiel requises

Configurez exactement les autorisations au niveau du référentiel comme indiqué pour activer la synchronisation des données :

  • Administration: Lecture seule ✓

  • Checks: Lecture seule ✓

  • États de validation: Sélectionné ✓

  • Contenu: Sélectionné ✓

  • Propriétés personnalisées: Sélectionné ✓

  • Deployments: Lecture seule ✓

  • Métadonnées: Lecture seule (obligatoire) ✓

  • Demandes d'extraction: Sélectionné ✓

  • Webhooks: Lecture seule ✓

    Autorisations d'organisation requises

    Configurez les permissions au niveau de l'organisation suivantes exactement comme indiqué :

  • Administration: Lecture seule ✓

  • Rôles d'organisation personnalisés: Lecture seule ✓

  • Propriétés personnalisées: Lecture seule ✓

  • Rôles de référentiel personnalisés: Lecture seule ✓

  • Événements: Lecture seule ✓

  • Membres: Lecture seule ✓

  • Webhooks: Lecture seule ✓

    Abonnements aux événements Webhook

    Sélectionnez exactement les événements de webhook suivants, tels qu'ils sont affichés, pour la synchronisation et le monitoring en temps réel :

    ✓ Sélectionnez ces événements :

  • check_run - Mises à jour de l'état des exécutions de vérification

  • check_suite - Achèvement de la suite de contrôles

  • commit_comment - Commentaires sur les commits

  • create - Création de branche ou de balise

  • custom_property - Modifications des propriétés personnalisées pour les affectations d’équipe

  • custom_property_values - Modifications des valeurs des propriétés personnalisées

  • delete - Suppression de branche ou de balise

  • deployment - Activités de déploiement

  • deployment_review - Processus de révision du déploiement

  • deployment_status - Mises à jour de l'état du déploiement

  • fork - Événements de fork de référentiel

  • installation_target - Modifications de l'installation de l'application GitHub

  • label - Modifications d'étiquettes sur les problèmes et les demandes d'extraction

  • member - Modifications du profil des membres

  • membership - Ajouts et suppressions de membres

  • meta - Modifications des métadonnées de l'application GitHub

  • milestone - Modifications des jalons

  • organization - Modifications au niveau de l'organisation

  • public - Modifications de la visibilité du référentiel

  • pull_request - Activités de demande d'extraction

  • pull_request_review - Activités de révision des demandes d'extraction

  • pull_request_review_comment - Activités de commentaires de révision

  • pull_request_review_thread - Activités du fil de discussion de révision de la demande d'extraction

  • push - Poussées et validations de code

  • release - Publications et mises à jour de versions

  • repository - Création, suppression et modifications de référentiels

  • star - Événements d'étoile de référentiel

  • status - Mises à jour de l'état de validation

  • team - Création et modifications d'équipes

  • team_add - Ajouts de membres d'équipe

  • watch - Événements de monitoring de référentiel

    Conseil

    Meilleure pratique de sécurité: pour réduire l'exposition à la sécurité, suivez le principe du moindre privilège et n'activez que les autorisations minimales requises pour vos besoins d'intégration.

    Configurer les webhooks

    Configurez l'URL du webhook et créez un secret d'événement personnalisé pour une communication sécurisée :

  • URL du webhook: Utilisez le format suivant en fonction du déploiement de votre service de collecteur :

    • Pour HTTP : http://your-domain-name/github/sync/webhook
    • Pour HTTPS : https://your-domain-name/github/sync/webhook

    Exemple: Si votre service de collecteur est déployé sur collector.yourcompany.com, l'URL du webhook serait : https://collector.yourcompany.com/github/sync/webhook

  • Secret d’événement: Générez une chaîne aléatoire sécurisée (32 caractères ou plus) pour l’authentification du webhook. Enregistrez cette valeur, car vous en aurez besoin pour la variable d’environnement GITHUB_APP_WEBHOOK_SECRET.

    Générer et convertir des clés

  1. Après avoir créé l'application GitHub, vous devez générer une clé privée. Dans les paramètres de votre application GitHub, cliquez sur Generate a private key. L'application générera et téléchargera automatiquement un ID d'application unique et un fichier de clé privée (format .pem). Enregistrez-les en toute sécurité, car ils seront nécessaires pour la configuration du service de collecte.

  2. Convertissez votre fichier de clé privée téléchargé au format DER, puis encodez-le en Base64 :

    Étape 1 : Convertir .pem au format DER

    bash
    $
    openssl rsa -outform der -in private-key.pem -out output.der

    Étape 2 : Encoder le fichier DER en Base64

    bash
    $
    # For Linux/macOS
    $
    base64 -i output.der -o outputBase64
    $
    cat outputBase64 # Copy this output
    $
    $
    # For Windows (using PowerShell)
    $
    [Convert]::ToBase64String([IO.File]::ReadAllBytes("output.der"))
    $
    $
    # Alternative for Windows (using certutil)
    $
    certutil -encode output.der temp.b64 && findstr /v /c:- temp.b64

    Copiez la chaîne Base64 résultante et utilisez-la comme valeur pour la variable d'environnement GITHUB_APP_PRIVATE_KEY dans votre configuration de collecteur.

    ✓ Indicateurs de réussite :

  • L’application Github est créée avec succès
  • L'ID de l'application et la clé privée sont enregistrés en toute sécurité
  • L'URL du webhook est configurée et accessible

Préparer les variables d'environnement

Avant de déployer le service de collecte, rassemblez les informations suivantes :

Variables d'environnement requises

Variable

Source

Comment obtenir

NR_API_KEY

New Relic

Générez une clé API à partir du tableau de bord New Relic.

NR_LICENSE_KEY

New Relic

Générez une clé de licence à partir du tableau de bord New Relic.

GHE_BASE_URL

Serveur GHE

L’URL de base de votre serveur GHE (par exemple,

https://source.datanot.us

).

GITHUB_APP_ID

Application GitHub

L'ID d'application unique généré lors de la création de l'application GitHub.

GITHUB_APP_PRIVATE_KEY

Application GitHub

Le contenu du fichier de clé privée (

.pem

), converti en chaîne Base64. Consultez l’étape 1 pour les instructions de conversion.

GITHUB_APP_WEBHOOK_SECRET

Application GitHub

La valeur secrète d'événement personnalisée que vous avez définie lors de la création de l'application GitHub.

Variables d'environnement SSL facultatives

Les variables d'environnement facultatives suivantes permettent d'effectuer des appels HTTPS d'API.

Variable facultative

Source

Comment obtenir

SERVER_SSL_KEY_STORE

Configuration SSL

Chemin d'accès au fichier de magasin de clés SSL pour la configuration HTTPS. Consultez les instructions de configuration du certificat SSL ci-dessous.

SERVER_SSL_KEY_STORE_PASSWORD

Configuration SSL

Mot de passe du fichier de magasin de clés SSL. Il s’agit du mot de passe que vous avez défini lors de la création du magasin de clés PKCS12.

SERVER_SSL_KEY_STORE_TYPE

Configuration SSL

Type du magasin de clés SSL (par exemple, PKCS12, JKS). Utilisez PKCS12 lorsque vous suivez les instructions de configuration SSL ci-dessous.

SERVER_SSL_KEY_ALIAS

Configuration SSL

Alias de la clé SSL dans le magasin de clés. C'est le nom que vous spécifiez lors de la création du magasin de clés.

SERVER_PORT

Configuration SSL

Port serveur pour la communication HTTPS. Utilisez 8443 pour HTTPS.

Instructions de configuration du certificat SSL

Pour obtenir un certificat SSL auprès d'une autorité de certification (CA) de confiance pour la configuration HTTPS, suivez ces étapes :

  1. Générer une clé privée et une demande de signature de certificat (CSR):

    bash
    $
    openssl req -new -newkey rsa:2048 -nodes -keyout mycert.key -out mycert.csr
  2. Soumettez le CSR à la CA de votre choix: soumettez le fichier mycert.csr à l'autorité de certification (par exemple, DigiCert, Let's Encrypt, GoDaddy) de votre choix.

  3. Effectuez la validation du domaine: effectuez toutes les étapes de validation du domaine requises, comme indiqué par la CA.

  4. Télécharger le certificat: Téléchargez les fichiers de certificat émis à partir de l'AC (généralement un fichier .crt ou .pem).

  5. Créer un magasin de clés PKCS12: Combinez le certificat et la clé privée dans un magasin de clés PKCS12 :

    bash
    $
    openssl pkcs12 -export -in mycert.crt -inkey mycert.key -out keystore.p12 -name mycert
  6. Utilisez le magasin de clés: utilisez le fichier keystore.p12 généré comme valeur pour SERVER_SSL_KEY_STORE dans votre configuration Docker.

Déployer le service de collecteur

Le service de collecte est fourni sous forme d'image Docker. Le déploiement peut être effectué de deux manières :

Option A : Utilisation de Docker Compose (recommandé)

Créez un fichier Docker Compose qui automatise le téléchargement et le déploiement du service.

  1. Créez un fichier docker-compose.yml avec le contenu suivant :

    version: '3.9'
    services:
    nr-ghe-collector:
    image: newrelic/nr-ghe-collector:tag # use latest tag available in dockerhub starting with v*
    container_name: nr-ghe-collector
    restart: unless-stopped
    ports:
    - "8080:8080" # HTTP port, make 8443 in case of HTTPS
    environment:
    # Required environment variables
    - NR_API_KEY=${NR_API_KEY:-DEFAULT_VALUE}
    - NR_LICENSE_KEY=${NR_LICENSE_KEY:-DEFAULT_VALUE}
    - GHE_BASE_URL=${GHE_BASE_URL:-DEFAULT_VALUE}
    - GITHUB_APP_ID=${GITHUB_APP_ID:-DEFAULT_VALUE}
    - GITHUB_APP_PRIVATE_KEY=${GITHUB_APP_PRIVATE_KEY:-DEFAULT_VALUE}
    - GITHUB_APP_WEBHOOK_SECRET=${GITHUB_APP_WEBHOOK_SECRET:-DEFAULT_VALUE}
    # Optional SSL environment variables (uncomment and configure if using HTTPS)
    # - SERVER_SSL_KEY_STORE=${SERVER_SSL_KEY_STORE}
    # - SERVER_SSL_KEY_STORE_PASSWORD=${SERVER_SSL_KEY_STORE_PASSWORD}
    # - SERVER_SSL_KEY_STORE_TYPE=${SERVER_SSL_KEY_STORE_TYPE}
    # - SERVER_SSL_KEY_ALIAS=${SERVER_SSL_KEY_ALIAS}
    # - SERVER_PORT=8443
    #volumes: # Uncomment the line below if using SSL keystore
    # - ./keystore.p12:/app/keystore.p12 # path to your keystore file
    network_mode: bridge
    networks:
    nr-network:
    driver: bridge
  2. Définissez vos variables d’environnement en remplaçant les espaces réservés DEFAULT_VALUE dans le fichier Docker Compose par vos valeurs réelles, ou créez des variables d’environnement sur votre système avant d’exécuter la commande.

    Prudence

    Ne jamais valider les fichiers d'environnement contenant des secrets dans le contrôle de version. Utilisez des pratiques de gestion des secrets sécurisées en production.

  3. Exécutez la commande suivante pour démarrer le service :

    bash
    $
    docker-compose up -d

    Option B : Exécution directe de l'image Docker

    Vous pouvez télécharger l'image Docker directement à partir de notre registre Docker Hub et l'exécuter à l'aide du pipeline CI/CD ou de la méthode de déploiement préférée de votre organisation. Notez que le client doit transmettre toutes les variables d'environnement répertoriées ci-dessus lors du démarrage du service de collecte.

    ✓ Indicateurs de réussite :

  • Le service de collecte est en cours d'exécution et accessible sur le port configuré
  • Les logs du conteneur Docker indiquent un démarrage réussi sans erreurs
  • Le service répond aux contrôles d'intégrité (si configuré)

Installer l'application GitHub sur les organisations

Une fois le service de collecteur en cours d'exécution, vous devez installer l'application GitHub sur les organisations spécifiques que vous souhaitez intégrer :

  1. Accédez à votre instance GitHub Enterprise.

  2. Accédez à SettingsDeveloper SettingsGitHub Apps.

  3. Recherchez l'application GitHub que vous avez créée à l'étape 1 et cliquez dessus.

  4. Dans la barre latérale gauche, cliquez sur Install App.

  5. Sélectionnez les organisations dans lesquelles vous souhaitez installer l'application.

  6. Choisissez d’installer sur tous les référentiels ou de sélectionner des référentiels spécifiques.

  7. Cliquez sur Install pour terminer l'installation.

    ✓ Indicateurs de réussite :

  • Les livraisons de webhook apparaissent dans les paramètres de l’application GitHub
  • Aucune erreur d’authentification dans les logs du service de collecte

Configuration complète de l'intégration dans l'interface utilisateur New Relic

Une fois le service de collecte en cours d'exécution et l'application GitHub installée sur votre ou vos organisations GHE, terminez la configuration de l'intégration comme indiqué dans l'interface utilisateur de New Relic :

  1. Les organisations GHE correspondantes apparaîtront dans l'interface utilisateur de New Relic.

  2. Pour démarrer la synchronisation initiale des données, cliquez sur First time sync.

  3. (Facultatif) Cliquez sur On-demand sync pour synchroniser manuellement les données.

    conseil

    Vous pouvez synchroniser manuellement les données une fois toutes les 4 heures. Le bouton On-demand sync reste désactivé si la synchronisation a eu lieu dans les 4 heures précédentes.

  4. Après avoir affiché le message Sync started (Synchronisation démarrée), cliquez sur Continue. L'écran GitHub Enterprise Integration affiche le nombre d'équipes et de référentiels, en actualisant toutes les 5 secondes. Prévoyez 15 à 30 minutes pour l'importation complète de toutes les données (le délai dépend du nombre de référentiels).

    GitHub Enterprise Integration dashboard showing integration progress

    Affichage de vos données

    Sur l'écran GitHub Enterprise Integration :

  • Pour afficher les informations sur les équipes importées sur Teams, cliquez sur Go to Teams.
  • Pour afficher les informations sur les référentiels importés sur Catalogs, cliquez sur Go to Repositories.

Configurer les attributions d'équipe (facultatif)

Vous pouvez attribuer automatiquement des référentiels GitHub à leurs équipes en ajoutant teamOwningRepo en tant que propriété personnalisée dans GitHub Enterprise.

  1. Créez la propriété personnalisée au niveau de l’organisation et attribuez une valeur à la propriété personnalisée au niveau du référentiel. De plus, vous pouvez configurer une propriété personnalisée pour plusieurs référentiels au niveau de l'organisation simultanément.

  2. Ensuite, dans New Relic Teams, activez la fonctionnalité Automated Ownership, en veillant à utiliser team comme clé de tag.

    Une fois cette opération configurée, New Relic associe automatiquement chaque référentiel à son équipe correcte.

    Pour plus d'informations sur la création de propriétés personnalisées, reportez-vous à la documentation GitHub.

Dépannage

Problèmes courants et solutions

Échecs de livraison de webhook :

  • Vérifiez que le service de collecte est en cours d'exécution et accessible depuis GitHub Enterprise
  • Vérifiez les paramètres du pare-feu et la connectivité réseau

Erreurs d'authentification :

  • Vérifiez que l’ID de l’application GitHub et la clé privée sont correctement configurés
  • Assurez-vous que la clé privée est correctement convertie au format DER et encodée en Base64
  • Vérifiez que le secret du webhook correspond entre GitHub App et la configuration du collecteur

Échecs de synchronisation :

  • Vérifiez que l'application GitHub dispose des permissions requises
  • Vérifiez que l'application est installée sur les organisations appropriées
  • Consultez les logs du service de collecte pour des messages d'erreur spécifiques

Problèmes de connectivité réseau :

  • Assurez-vous que le service de collecte peut atteindre votre instance GitHub Enterprise
  • Vérifiez que les certificats SSL sont correctement configurés si vous utilisez HTTPS
  • Vérifiez la résolution DNS pour votre domaine GitHub Enterprise

Désinstallation

Pour désinstaller l'intégration GitHub Enterprise :

  1. Accédez à l'interface utilisateur de votre GitHub Enterprise.
  2. Accédez aux paramètres de l'organisation où l'application est installée.
  3. Désinstallez l’application GitHub directement à partir de l’interface GitHub Enterprise. Cette action déclenchera le processus backend pour cesser la collecte de données.
  4. Arrêtez et supprimez le service de collecte de votre environnement Docker.
Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.