Connecter Semaphore à vos outils

Gérez les ressources, exécutez tâches et workflows et récupérez les résultats via la REST API. Connectez les événements entrants avec des webhooks.

Une automatisation dans un outil séparé interrompt le travail

Vos portails, pipelines et outils d’infrastructure pilotent déjà le travail. Garder l’automatisation à part oblige à répéter la configuration, changer d’interface et collecter les résultats manuellement.

Une API pour la configuration et l’exécution

Gérer SemaphoreProjets, accès et configuration d’automatisation
Déclencher l’automatisationTâches, workflows et exécutions événementielles
Obtenir les résultatsÉtat, journaux et sortie d’exécution

Gérer Semaphore depuis vos propres systèmes

Créez et modifiez projets, accès et ressources d’automatisation via la REST API. Synchronisez Semaphore avec votre catalogue de services, votre processus d’intégration ou vos outils d’infrastructure.

Déclencher l’automatisation et suivre le résultat

Connecter vos outils à la même automatisation

Conserver l’opération dans un Task Template

Votre portail démarre le même travail qu’un ingénieur dans l’interface.

Modèles de tâches

Déclencher une séquence de travaux

Reliez tâches, données, approbations et branches conditionnées par le résultat.

Workflows

Options d’intégration REST API et webhooks

Orienter les événements entrants vers le bon travail

Utilisez un alias webhook de projet pour évaluer les règles des intégrations et sélectionner les travaux acceptant l’événement. Un alias propre à une intégration l’appelle directement et contourne ses règles. Faites correspondre dépôt, branche ou champs d’événement si plusieurs systèmes partagent un point et testez requêtes correspondantes et non correspondantes.

Associer les données d’événement aux entrées d’exécution

Lisez les en-têtes ou champs de contenu avec des extracteurs et associez-les à des valeurs d’environnement ou paramètres de tâche pris en charge. Transmettez version de release, nom de service ou référence de demande sans reconstruire le travail enregistré. Les correspondances doivent respecter les champs exposés par le Task Template.

Authentifier les appels API et les webhooks entrants

Les appels REST API utilisent un jeton API personnel et les autorisations de son compte Semaphore. Les intégrations webhook ont leurs propres paramètres d’authentification : webhooks GitHub et Bitbucket, Token, HMAC SHA-256 ou SHA-512 et BasicAuth notamment. Configurez la méthode prise en charge par l’émetteur et séparez ses identifiants de requête des identifiants d’infrastructure du travail.

Gérer Semaphore depuis vos propres systèmes

La REST API couvre projets, dépôts, inventaires, identifiants, Variable Groups, Task Templates, planifications et intégrations, ainsi que l’exécution des tâches et la Workflow API Pro. Provisionnez les ressources depuis votre service, lancez l’opération configurée, puis lisez état et sortie. La référence OpenAPI documente paramètres, contenus de requête et schémas de réponse.

Suivre la tâche créée par votre requête

Une tâche créée est une exécution mise en file, pas une exécution terminée. Conservez l’identifiant renvoyé par l’API et interrogez les points de terminaison documentés pour obtenir son état et sa sortie. Votre service pourra ainsi distinguer une erreur de requête, une exécution en attente et un résultat final, et orienter un ingénieur vers les preuves réelles. Ne supposez aucune garantie de livraison : un service en amont peut réessayer après un délai dépassé alors que la première requête est arrivée. Gérez donc les doublons lorsque l’opération a des conséquences et rendez l’automatisation idempotente. L’envoi des résultats vers le chat ou l’e-mail est une fonction distincte.

Connecter GitHub, Bitbucket et d’autres sources d’événements

Les intégrations prennent en charge l’authentification webhook GitHub et Bitbucket, les jetons, HMAC SHA-256 ou SHA-512 et Basic Auth. Faites correspondre les en-têtes ou champs reçus, puis extrayez les valeurs nécessaires au travail enregistré. Utilisez la REST API si l’appelant doit aussi examiner les résultats ou gérer des ressources.

FAQ

Dois-je utiliser la REST API ou une intégration webhook pour démarrer un travail ?

Utilisez une intégration webhook lorsqu’un événement externe doit sélectionner un Task Template prédéfini et associer les valeurs reçues aux entrées acceptées. Utilisez la REST API si l’application nécessite un parcours explicite de ressources et d’exécution, comme lancer une tâche puis lire son état. Dans les deux cas, l’automatisation suit le modèle configuré de Semaphore. Choisissez selon ce que l’appelant doit envoyer et suivre.

Quelle différence entre alias de projet et alias propre à une intégration ?

Un alias de projet évalue les règles de correspondance configurées dans ses intégrations et peut démarrer celles qui correspondent à la requête. Un alias propre à une intégration cible directement celle-ci sans évaluer ses règles. Cette distinction est importante si une règle de branche ou de type d’événement doit contrôler l’exécution. Choisissez le point de terminaison délibérément et testez les données correspondantes et non correspondantes, au lieu de supposer que le même filtre s’applique à tous les chemins d’alias.

Comment un webhook transmet-il une version de release ou une valeur d’environnement ?

Configurez les extracteurs pour lire les en-têtes ou champs de contenu pertinents et les associer aux valeurs d’environnement ou paramètres de tâche documentés. Les destinations des paramètres doivent correspondre aux champs acceptés par le modèle. Gardez une correspondance précise : une version de release doit devenir l’entrée prévue, pas un fragment de commande sans restriction. Validez la valeur dans votre automatisation lorsque sa signification l’exige et testez les champs manquants ou inattendus avant la production.

Quelle identité et quelles autorisations utilise une requête API ?

Un jeton API agit avec les autorisations de son utilisateur Semaphore. Utilisez une identité dont l’accès aux projets correspond aux opérations prévues et protégez le jeton là où l’appelant le stocke. L’API ne contourne pas les autorisations des projets. Pour les intégrations webhook, configurez aussi délibérément l’authentification documentée des requêtes et l’exposition du point de terminaison. Séparez l’authentification de l’appelant des identifiants utilisés par la tâche pour joindre l’infrastructure.

Comment mon service doit-il suivre la tâche après son démarrage ?

Pour un parcours REST API, conservez l’identifiant de tâche renvoyé par l’opération documentée et utilisez les méthodes API correspondantes pour examiner état et sortie. Une requête réussie signifie que l’exécution a été demandée, pas que le travail d’infrastructure a réussi. Votre service doit distinguer erreurs de requête, tâches en attente ou en cours et résultats terminés. Orientez les ingénieurs vers la tâche lorsqu’ils doivent examiner les preuves réelles de l’exécution.

Les nouvelles tentatives d’un webhook garantissent-elles une seule exécution du travail ?

Ne supposez ni exécution exactement une fois ni garantie de livraison durable. Un service externe peut réessayer une requête après un délai dépassé, même si la première a atteint Semaphore. Concevez la gestion des doublons et les décisions de nouvelle tentative selon les conséquences de l’opération et rendez l’automatisation sous-jacente idempotente lorsque c’est approprié. Conservez la correspondance entre l’événement d’origine et l’exécution suivie par votre service pour comprendre les livraisons répétées ou incertaines.

Où trouver la spécification de l’API Semaphore ?

La référence de ce site affiche le document Swagger/OpenAPI publié avec la version Semaphore. Opérations, chemins et schémas correspondent donc à une version précise plutôt qu’à un résumé manuel. Parcourez-le par ressource dans /api-docs/ ou lisez le document brut pour générer un client. Vérifiez toujours la spécification de votre version réelle, car points de terminaison et schémas peuvent changer entre versions.

Une intégration webhook nécessite-t-elle un point de terminaison exposé à Internet ?

Le système appelant doit joindre votre instance Semaphore, mais pas nécessairement via Internet public. Réseau privé, VPN ou répartiteur interne suffisent si l’appelant s’y trouve. Nos tests de correspondances et extracteurs utilisaient un point d’écoute limité au loopback sans authentification, ce qui n’est pas un modèle pour un point exposé. Dès que l’alias est accessible hors du réseau de confiance, configurez une méthode d’authentification prise en charge et limitez aussi son exposition au niveau réseau.

Comment tester une intégration avant de connecter un système réel ?

Ciblez d’abord un Task Template sans danger, puis envoyez vous-même les données avec curl ou un client HTTP. Envoyez un contenu non correspondant et vérifiez qu’aucune tâche n’apparaît, puis un contenu correspondant et vérifiez qu’une seule tâche démarre. Ouvrez sa vue Details : elle indique l’intégration comme source et les valeurs extraites sont accessibles à l’exécution. Nous avons utilisé cette même séquence localement ; elle détecte une mauvaise clé de correspondance avant qu’un service externe en dépende.

Puis-je gérer les ressources Semaphore et exécuter des workflows via l’API ?

Oui. La REST API couvre projets, dépôts, inventaires, identifiants, Variable Groups, Task Templates et autres ressources. Votre portail ou service peut les configurer, lancer des tâches et lire état et sortie. Pro expose aussi exécutions et approbations de workflows pour qu’une pipeline CI/CD lance une opération complète à plusieurs étapes. Consultez la référence OpenAPI pour paramètres et schémas de réponse.