Si vos spécifications d'API sont dans Apidog mais que votre source de vérité est dans Git, configurez l'intégration Git d'Apidog pour garder les deux synchronisés. Vous pouvez connecter GitHub, GitLab ou Azure DevOps, pousser vos fichiers OpenAPI dans le contrôle de version, récupérer les changements du dépôt dans Apidog, et conserver un historique exploitable pour la revue, l'audit et la restauration.
Essayez Apidog dès aujourd’hui
Cette référence explique comment utiliser l'intégration Git d'Apidog de façon concrète : choisir le bon mode, connecter un fournisseur Git, structurer vos branches, gérer les permissions, éviter les conflits et dépanner les erreurs courantes. Si vous cherchez uniquement le pas-à-pas GitHub, consultez le guide dédié pour synchroniser votre spécification OpenAPI avec GitHub.
Ce que fait l'intégration Git d'Apidog
Apidog communique avec Git de deux manières. Avant de configurer quoi que ce soit, choisissez le mode qui correspond à votre workflow.
1. Synchronisation bidirectionnelle avec le mode Spec-First
Utilisez ce mode si votre équipe traite la spécification OpenAPI comme du code.
Flux typique :
- Vous éditez le fichier OpenAPI en YAML ou JSON dans Apidog.
- Vous validez vos changements.
- Vous poussez vers la branche Git connectée.
- Vous récupérez aussi dans Apidog les modifications faites depuis le dépôt.
Ce mode est adapté aux équipes qui veulent :
- des pull requests sur les changements d'API ;
- une revue de code sur le YAML OpenAPI ;
- un historique Git clair ;
- la possibilité de revenir à une version précédente.
2. Sauvegarde Git automatique
Utilisez ce mode si vous voulez surtout une copie versionnée de vos spécifications.
Flux typique :
- Vous configurez un dépôt Git pour un module Apidog.
- Apidog exporte automatiquement le fichier OpenAPI/Swagger du module.
- Le fichier est poussé vers Git selon un calendrier, pendant une fenêtre nocturne hors pointe.
Ce mode est unidirectionnel : Apidog écrit dans Git, mais ne récupère pas les changements du dépôt.
| Capacité | Direction | Déclencheur | Idéal pour |
|---|---|---|---|
| Synchronisation en mode Spec-First | Bidirectionnel : push et pull | Commit/push manuel, pull manuel | Les équipes qui traitent la spécification comme du code |
| Sauvegarde Git automatique | Unidirectionnel : Apidog → Git | Planifié, heures creuses | Les équipes qui veulent une sauvegarde versionnée sans changer leur workflow |
Retenez cette distinction :
- Synchronisation = aller-retour entre Apidog et Git.
- Sauvegarde = export automatique d'Apidog vers Git.
Fournisseurs Git pris en charge
Apidog prend en charge GitHub, GitLab et Azure DevOps.
| Fournisseur | Méthode d'authentification | Notes |
|---|---|---|
| GitHub | Autorisation OAuth | Fonctionne avec les dépôts personnels et d'organisation. Les dépôts d'organisation peuvent nécessiter l'approbation d'un administrateur. |
| GitLab | Autorisation OAuth | Prend en charge gitlab.com et les instances auto-gérées accessibles depuis Apidog. |
| Azure DevOps | Connexion Git générique : HTTPS + jeton | Utilisez l'URL HTTPS du dépôt et un jeton d'accès personnel avec les droits nécessaires sur le dépôt. |
La connexion Git générique est utile pour Azure DevOps et pour les hôtes Git accessibles en HTTPS avec authentification par jeton.
Connecter votre fournisseur Git
Le processus général est le même pour chaque fournisseur :
- Autoriser Apidog à accéder au fournisseur Git.
- Sélectionner un dépôt.
- Sélectionner une branche.
- Lier le projet Apidog à cet emplacement Git.
Connecter GitHub
Pour GitHub :
- Ouvrez les paramètres Git dans votre projet Apidog.
- Choisissez GitHub comme fournisseur.
- Autorisez Apidog via l'écran OAuth GitHub.
- Sélectionnez le dépôt.
- Sélectionnez la branche cible, par exemple
main.
Si le dépôt appartient à une organisation, GitHub peut exiger l'approbation d'un administrateur. Si l'autorisation semble réussir mais que le dépôt n'apparaît pas dans Apidog, vérifiez d'abord ce point.
Connecter GitLab
Pour GitLab :
- Choisissez GitLab comme fournisseur.
- Connectez-vous via l'écran OAuth GitLab.
- Accordez l'accès au dépôt.
- Sélectionnez le dépôt et la branche.
Pour une instance GitLab auto-gérée, assurez-vous qu'Apidog peut atteindre l'instance via le réseau.
Connecter Azure DevOps
Pour Azure DevOps, utilisez la connexion Git générique.
Étapes :
- Dans Azure DevOps, créez un jeton d'accès personnel, ou PAT.
- Donnez au PAT les permissions de lecture et d'écriture sur le code pour le projet cible.
- Copiez l'URL HTTPS du dépôt.
- Dans Apidog, choisissez la connexion Git générique.
- Collez l'URL HTTPS du dépôt.
- Collez le PAT.
- Sélectionnez la branche à utiliser.
Bonnes pratiques pour le PAT :
- limitez-le au projet ou dépôt nécessaire ;
- évitez les jetons à accès complet ;
- stockez-le comme un secret ;
- faites-le pivoter régulièrement ;
- révoquez-le si la personne qui l'a créé quitte l'équipe.
Si vous débutez avec les conventions Git pour OpenAPI, consultez aussi le guide sur le contrôle de version OpenAPI avec Git.
Synchronisation bidirectionnelle avec le mode Spec-First
Le mode Spec-First transforme Apidog en éditeur OpenAPI connecté à Git. Vous pouvez consulter la documentation officielle d'Apidog, mais voici le workflow pratique.
Workflow recommandé
- Tirez les derniers changements depuis Git.
- Modifiez la spécification dans Apidog.
- Vérifiez la validation en direct.
- Commitez avec un message clair.
- Poussez vers la branche connectée.
- Ouvrez une pull request si vous travaillez sur une branche de fonctionnalité.
Exemple de message de commit :
Add GET /v1/orders/{orderId} endpoint
Exemple de modification OpenAPI
Supposons que vous ajoutiez un endpoint pour récupérer une commande :
paths:
/v1/orders/{orderId}:
get:
operationId: getOrder
summary: Retrieve a single order
parameters:
- name: orderId
in: path
required: true
schema:
type: string
responses:
'200':
description: The requested order
content:
application/json:
schema:
$ref: '#/components/schemas/Order'
Dans Apidog, l'éditeur vous aide à repérer les problèmes courants :
-
$refincorrect ; - champ obligatoire manquant ;
- structure YAML invalide ;
- schéma mal formé.
Après l'enregistrement, Apidog considère la modification comme locale. Vous pouvez ensuite la valider et la pousser vers Git. Lorsque le push est terminé, l'indicateur de synchronisation confirme que la branche et Apidog sont alignés.
Récupérer les changements du dépôt
La synchronisation est aussi importante dans l'autre sens. Si un coéquipier modifie le fichier OpenAPI dans Git, récupérez les changements dans Apidog avant de continuer.
Règle simple :
Pull avant de modifier, push après validation.
Cela réduit fortement les conflits.
Annuler des modifications non poussées
Si vous avez fait des tests que vous ne voulez pas conserver, utilisez l'option d'annulation des modifications non poussées. Apidog revient alors au dernier état synchronisé avec Git.
Ce workflow correspond à un workflow API Git-native : la conception d'API suit les mêmes pratiques que le code applicatif.
Sauvegarde Git automatique des spécifications d'API
La sauvegarde automatique est plus simple : vous configurez le dépôt une fois, puis Apidog pousse régulièrement les fichiers OpenAPI/Swagger exportés.
Quand l'utiliser
Utilisez la sauvegarde automatique si vous voulez :
- conserver une copie versionnée de chaque module ;
- comparer une spécification actuelle avec une ancienne version ;
- restaurer une version précédente depuis Git ;
- garder un historique sans imposer de nouveau workflow à l'équipe.
Fonctionnement
Pour chaque module configuré :
- Apidog exporte le fichier OpenAPI/Swagger.
- Apidog pousse le fichier dans le dépôt Git choisi.
- Chaque push crée un commit.
- Git conserve l'historique des versions.
Le push est exécuté pendant une fenêtre nocturne aléatoire hors pointe. Cela évite de perturber le travail quotidien et répartit la charge.
Important : ce flux est unidirectionnel. Si quelqu'un modifie le fichier dans Git, la sauvegarde automatique ne réimporte pas cette modification dans Apidog. Pour cela, utilisez le mode Spec-First.
Choisir une branche et une structure de dépôt
La structure Git influence directement la qualité du workflow.
Choix de la branche
Deux approches sont courantes.
Option 1 : synchroniser avec main
Simple et rapide.
À utiliser si :
- l'équipe est petite ;
- les changements de spécification sont peu risqués ;
- vous n'avez pas besoin de revue systématique.
Limite : les changements arrivent directement sur la branche canonique.
Option 2 : utiliser des branches de fonctionnalité
Plus robuste.
Exemple :
git checkout -b api/add-order-endpoint
Workflow :
- Connectez Apidog à une branche de fonctionnalité.
- Modifiez la spécification.
- Poussez les changements.
- Ouvrez une pull request.
- Faites relire le diff OpenAPI.
- Fusionnez dans
main.
C'est l'approche recommandée si votre API est utilisée par plusieurs équipes ou clients.
Un dépôt ou plusieurs dépôts
Un dépôt par API
Avantages :
- historique plus lisible ;
- permissions plus précises ;
- ownership clair par équipe.
À privilégier si chaque API appartient à une équipe différente.
Monorepo pour toutes les spécifications
Avantages :
- centralisation ;
- recherche plus simple ;
- revue inter-API plus facile.
Si vous utilisez un monorepo, gardez une structure prévisible :
api-specs/
billing/
openapi.yaml
orders/
openapi.yaml
users/
openapi.yaml
Attribuez un chemin distinct à chaque module pour éviter les collisions entre sauvegardes ou synchronisations.
Permissions et accès de l'équipe
L'intégration Git manipule des identifiants. Configurez les droits avec prudence.
Dans Apidog
Définissez qui peut :
- lire la spécification ;
- modifier la spécification ;
- synchroniser ;
- pousser vers Git.
Bonne pratique : limitez les droits de push aux personnes responsables de la spécification.
Dans le fournisseur Git
Pour GitHub et GitLab, l'accès dépend de l'utilisateur qui autorise Apidog via OAuth.
Pour Azure DevOps et les connexions génériques, l'accès dépend du PAT fourni.
Checklist sécurité :
- utiliser un jeton à portée limitée ;
- éviter les jetons personnels trop larges ;
- ne jamais partager le jeton dans un document ou un canal non sécurisé ;
- révoquer les jetons inutilisés ;
- renouveler le jeton si le propriétaire quitte l'équipe.
Le principe : l'intégration est aussi sécurisée que l'identifiant utilisé pour l'autoriser.
Gérer les conflits de fusion et la dérive
Comme Apidog écrit un historique Git réel, les conflits Git restent possibles.
Exemple de conflit
Scénario :
- Vous modifiez le schéma
Orderdans Apidog. - Un coéquipier modifie le même schéma dans Git.
- Il pousse avant vous.
- Votre synchronisation rencontre un conflit sur le YAML.
Ce n'est pas un problème spécifique à Apidog. C'est un conflit Git classique sur un fichier YAML.
Réduire les conflits
Appliquez ces règles :
- récupérez les changements avant de modifier ;
- évitez de modifier le même schéma à plusieurs en parallèle ;
- utilisez des branches de fonctionnalité ;
- relisez les diffs OpenAPI dans les pull requests ;
- gardez les fichiers YAML valides après résolution.
Exemple de réflexe avant modification :
1. Pull depuis Git
2. Modifier dans Apidog
3. Valider
4. Push
Résoudre un conflit
Lorsqu'un conflit survient :
- Ouvrez le YAML concerné.
- Identifiez les sections en conflit.
- Conservez les lignes correctes.
- Supprimez les marqueurs de conflit.
- Vérifiez que le document OpenAPI reste valide.
- Resynchronisez.
La validation en direct d'Apidog aide à détecter rapidement les erreurs de structure après fusion.
Surveiller la dérive
La dérive apparaît lorsque l'état d'Apidog et celui du dépôt ne sont plus alignés. L'indicateur de synchronisation est votre signal principal.
Si l'état n'affiche pas que tout est synchronisé :
- poussez les changements locaux en attente ;
- ou récupérez les changements distants ;
- ou résolvez le conflit bloquant.
Dépannage
Avant de chercher un problème complexe, vérifiez l'authentification, la branche et l'état de synchronisation.
| Symptôme | Cause probable | Solution |
|---|---|---|
| L'autorisation échoue ou le dépôt n'apparaît pas | L'organisation n'a pas approuvé l'accès tiers, ou le jeton manque de portée | Demandez à un administrateur d'approuver l'application GitHub/GitLab ; pour Azure DevOps, recréez le PAT avec les droits de lecture/écriture sur le code |
| Push rejeté | Jeton révoqué, expiré ou sans permission d'écriture | Réautorisez le fournisseur ; pour une connexion générique, générez un nouveau PAT et mettez-le à jour dans Apidog |
| Modifications poussées mais non visibles | Mauvaise branche sélectionnée | Vérifiez que la branche connectée correspond à la branche attendue |
| Synchronisation bloquée | Modifications locales non poussées ou récupération nécessaire | Validez et poussez les changements en attente ; si un coéquipier a poussé, récupérez d'abord |
| Conflit de fusion sur la spécification | Deux modifications sur les mêmes lignes YAML | Résolvez le conflit comme un conflit Git classique, gardez le document valide, puis resynchronisez |
| Sauvegarde non exécutée | La fenêtre nocturne planifiée n'est pas encore passée | Attendez le cycle suivant ou vérifiez la configuration du dépôt et de la branche |
| Modifications expérimentales à abandonner | Changements locaux avant commit | Annulez les modifications non poussées pour revenir au dernier état synchronisé |
Dans la majorité des cas, le problème vient d'un jeton révoqué, d'une portée insuffisante ou d'une approbation d'organisation manquante.
FAQ
La synchronisation est-elle unidirectionnelle ou bidirectionnelle ?
Cela dépend de la fonctionnalité.
Le mode Spec-First est bidirectionnel : vous poussez les modifications vers Git et récupérez les changements du dépôt dans Apidog.
La sauvegarde automatique est unidirectionnelle : Apidog exporte la spécification vers Git selon un calendrier, sans récupérer les changements du dépôt.
Où mes spécifications sont-elles stockées ?
Dans le dépôt Git que vous configurez.
Avec le mode Spec-First, le document OpenAPI se trouve sur la branche connectée.
Avec la sauvegarde automatique, le fichier OpenAPI/Swagger exporté de chaque module est validé dans le dépôt configuré.
Dans les deux cas, Git conserve la copie versionnée.
Vers quelle branche dois-je synchroniser ?
Utilisez main pour la spécification canonique.
Pour les modifications en cours, utilisez une branche de fonctionnalité afin de passer par une pull request avant fusion.
Que se passe-t-il si mon jeton est révoqué ?
Les pushes échouent, car Apidog n'a plus l'accès en écriture.
Solution :
- Réautorisez GitHub ou GitLab.
- Ou, pour Azure DevOps et les connexions génériques, créez un nouveau PAT.
- Mettez à jour l'identifiant dans Apidog.
- Relancez la synchronisation ou attendez le prochain cycle de sauvegarde.
Conclusion
L'intégration Git d'Apidog fournit deux workflows complémentaires :
- mode Spec-First pour synchroniser OpenAPI dans les deux sens et traiter la spécification comme du code ;
- sauvegarde automatique pour pousser régulièrement les spécifications vers Git sans changer le travail quotidien.
Si vous voulez une revue systématique des changements d'API, utilisez le mode Spec-First avec des branches de fonctionnalité et des pull requests. Si vous voulez surtout un historique versionné et restaurable, activez la sauvegarde automatique. Beaucoup d'équipes utilisent les deux : Git devient alors à la fois le lieu de collaboration et le filet de sécurité pour leurs contrats d'API.


Top comments (0)