Skip to main content

À propos des hooks de pré-réception

Les hooks de pré-réception sont des scripts qui s’exécutent sur l’appliance GitHub Enterprise Server dont vous pouvez vous servir pour implémenter des contrôles de qualité.

À propos des hooks de pré-réception

Quand une poussée (push) est effectuée, chaque script s’exécute dans un environnement isolé et peut effectuer des vérifications sur le contenu de la poussée. Les scripts déclenchent l’acceptation de la poussée si l’état de sortie est 0 ou son rejet si l’état de sortie n’est pas zéro.

Utilisez des hooks de pré-réception pour répondre aux règles métier, appliquer la conformité réglementaire et prévenir certaines erreurs courantes.

Exemples de la façon dont vous pouvez utiliser des hooks de pré-réception :

  • Exiger que les messages de commit suivent un modèle ou un format spécifique, par exemple qu’ils incluent un numéro de ticket valide ou respectent une certaine longueur
  • Verrouiller une branche ou un dépôt en rejetant toutes les poussées
  • Empêcher l’ajout de données sensibles au dépôt en bloquant des mots clés, des modèles ou des types de fichiers
  • Empêcher l’auteur d’une demande de tirage (pull request) de fusionner ses propres modifications

Vous pouvez voir des exemples de hooks de pré-réception pour GitHub Enterprise Server dans le dépôt github/platform-samples.

Impact sur les performances et les workflows

L’impact sur les développeurs et leurs workflows peut être important et doit être considéré avec attention. Les hooks de pré-réception basés sur des besoins métier et implémentés de manière réfléchie sont ceux qui offrent le plus d’avantages à l’organisation dans son ensemble.

Les hooks de pré-réception peuvent avoir des effets inattendus sur les performances de votre instance GitHub Enterprise Server et doivent être implémentés et vérifiés attentivement.

En raison du risque d’échec et d’impact sur les performances pour tous les utilisateurs de votre instance, voici nos recommendations.

  • Évitez les demandes d’API au sein d’un hook de pré-réception. En particulier, nous déconseillons fortement d’effectuer des demandes à des services externes, ce qui peut prendre plus de temps et entraîner un impact sur les performances.
  • Évitez les opérations Git de longue durée au sein d’un hook de pré-réception. Si votre hook de pré-réception effectue des opérations Git dans des référentiels volumineux ou occupés, les performances globales de votre instance peuvent être affectées négativement.

Note

Pour éviter le rejet d'une requête en raison d'un dépassement de délai, tous les crochets de pré-réception combinés doivent être exécutés en moins de cinq secondes.