Aller au contenu principal

Poser le webhook GitHub

Avec le webhook GitHub, Astrolabe apprend un push, un tag, une release ou un workflow dès qu'il arrive. L'onglet Événements de chaque composant se remplit, et les personnes concernées sont prévenues quand un workflow échoue.

Tu le fais une fois, en tant qu'administrateur : un secret dans Astrolabe, puis le même secret dans GitHub.

Avant de commencer​

  • GitHub est configuré dans Administration › Connexions de l'entreprise. Sans lui, l'écran Webhooks n'a pas de carte GitHub.
  • Les plugins GitHub et Événements sont allumés dans Administration › Plugins.
  • Choisis un secret : un long texte au hasard. Tu écris le même dans GitHub.

🔧 Enregistrer le secret dans Astrolabe​

  1. Dans la barre latérale, en bas, clique sur Administration.

  2. Sous PLATEFORME, clique sur Webhooks.

  3. Sur la carte GitHub, clique sur Configurer.

  4. Dans la fenêtre Configurer le secret GitHub, à côté de Adresse du webhook, clique sur Copier l'adresse. Garde cette adresse : tu la colles dans GitHub plus bas. Elle finit par /api/orion-events/github, par exemple https://astrolabe.exemple.com/api/orion-events/github.

  5. Dans Secret du webhook, tape ton secret, par exemple un-long-texte-au-hasard.

  6. Clique sur Enregistrer.

La carte dit maintenant Aucun appel reçu depuis le démarrage d'Astrolabe. et propose Gérer.

Un proxy de connexion devant Astrolabe ?

GitHub ne se connecte jamais : laisse passer son adresse, sinon ses appels n'arrivent jamais à Astrolabe. Voir Ouvrir Astrolabe à tes outils.

🔧 Ajouter le webhook dans GitHub​

Pose-le sur l'organisation pour couvrir tous ses dépôts d'un coup, ou sur un seul dépôt. Cette partie se passe dans GitHub et n'a pas été vérifiée sur une instance.

  1. Dans GitHub, ouvre ton organisation (ou le dépôt), puis Settings › Webhooks.

  2. Clique sur Add webhook.

  3. Remplis le formulaire :

    ChampQuoi écrire
    Payload URLL'adresse copiée dans Astrolabe
    Content typeapplication/json
    SecretLe même secret que dans Astrolabe
    SSL verificationEnable SSL verification
  4. Sous Which events would you like to trigger this webhook?, choisis Let me select individual events., puis coche :

    ÉvénementCe qu'Astrolabe en fait
    PushesUne ligne par commit dans l'onglet Événements
    Branch or tag creationUne ligne par tag
    ReleasesUne ligne par release publiée
    Workflow runsDébut et fin de chaque workflow, et une notification quand il échoue
    Workflow jobsL'étape en échec d'un workflow
    Pull requestsUne notification aux propriétaires du composant
    Pull request reviewsUne notification aux propriétaires du composant
  5. Laisse Active coché et clique sur Add webhook.

GitHub envoie aussitôt un premier appel de test.

🔗 Relier un dépôt à son composant​

Astrolabe range un événement sur le composant dont le catalog-info.yaml nomme le dépôt :

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: order-service
annotations:
github.com/project-slug: acme/order-service
spec:
type: service
lifecycle: production
owner: team-checkout

La valeur est <organisation>/<dépôt>, exactement comme dans l'adresse du dépôt sur GitHub.

✅ Vérifier que ça marche​

  1. Pousse un commit sur un dépôt relié.

  2. Dans Administration › Webhooks, la carte GitHub dit Dernier appel accepté le suivi d'une date.

  3. Dans le Catalogue, ouvre le composant, puis son onglet Événements. Le commit y est, par exemple Dev Acme a poussé le commit d448215 sur main — « Fix the checkout total ».

✅ C'est tout !

Problèmes courants​

Ce que tu voisQue faire
Sur la carte GitHub, Refusé (1), la dernière fois le … : la source signe avec un autre secret que celui d'Astrolabe : mets le même des deux côtés.Clique sur Gérer, Remplacer, tape le secret que GitHub utilise et clique sur Enregistrer. Ou mets le secret d'Astrolabe dans le webhook GitHub.
Sur la carte GitHub, Refusé (1), la dernière fois le … : la source n'envoie aucun secret : mets le même secret dans les réglages de son webhook.Le webhook GitHub n'a pas de Secret. Modifie-le dans GitHub et tape le même secret que dans Astrolabe.
La carte dit toujours Aucun appel reçu depuis le démarrage d'Astrolabe., et dans GitHub, sous Recent Deliveries, la réponse d'un appel est une page de connexion au lieu de ReceivedUn proxy de connexion répond à la place d'Astrolabe. Laisse passer l'adresse : Ouvrir Astrolabe à tes outils.
La carte dit toujours Aucun appel reçu depuis le démarrage d'Astrolabe., et dans GitHub l'appel répond 400 avec unsupported media type application/x-www-form-urlencodedContent type vaut application/x-www-form-urlencoded. Modifie le webhook dans GitHub et choisis application/json.
Sur la carte GitHub, 2 événements n'ont atteint personne : le plugin de cette source est éteint, ses événements sont abandonnés. Allume-le dans Administration › Plugins.Dans Administration › Plugins, allume GitHub.
La carte dit Dernier appel accepté, mais l'onglet Événements du composant reste videLe dépôt n'est pas relié au composant. Vérifie github.com/project-slug dans son catalog-info.yaml : <organisation>/<dépôt>, comme sur GitHub.
L'onglet Événements montre les pushs mais aucun workflowWorkflow runs n'est pas coché dans le webhook GitHub. Modifie-le et coche-le.
Pas de carte GitHub sur l'écran WebhooksGitHub n'est pas configuré dans Administration › Connexions de l'entreprise. Configure-le d'abord.
Toujours bloqué ?

Écris à support@forgeit.fr avec ce que dit la carte GitHub.

La suite : Vérifier que tes outils joignent Astrolabe.