Les équipes d'ingénierie logicielle peinent fréquemment à maintenir la documentation de leurs API synchronisée avec des bases de code en constante évolution, ce qui entraîne des endpoints cassés, des paramètres manquants et de la frustration chez les développeurs. Adopter une méthodologie docs-as-code en associant Mintlify à GitHub permet aux équipes de traiter la documentation avec la même rigueur d'ingénierie que le code applicatif. En hébergeant les fichiers de documentation directement dans des dépôts Git, en configurant des déploiements automatisés via l'application GitHub Mintlify et en intégrant les spécifications OpenAPI dans les pipelines d'intégration continue (CI), les organisations d'ingénierie peuvent générer automatiquement des portails développeurs réactifs et interactifs. Cette configuration élimine les mises à jour manuelles de la documentation, garantit que les références d'API correspondent au code déployé et établit un flux de travail de révision fluide grâce aux prévisualisations des pull requests.
Comprendre l'architecture Docs-as-Code de Mintlify et GitHub
Mintlify fonctionne selon le principe du docs-as-code, où les fichiers sources de documentation résident dans un dépôt GitHub aux côtés du code de production ou à proximité immédiate. Au lieu de s'appuyer sur des systèmes de gestion de contenu (CMS) statiques ou des wikis isolés, la documentation est définie à l'aide de Markdown, de composants MDX et de fichiers de configuration structurés.
L'architecture comprend quatre composants fondamentaux :
- Configuration (
mint.json) : Le fichier de configuration central qui définit les métadonnées du site, l'identité de marque, les arborescences de navigation, les paramètres de recherche et les liens vers les spécifications OpenAPI externes ou internes. - Fichiers de contenu (
.mdx) : Fichiers Markdown étendus qui combinent le formatage de texte standard avec des composants interactifs de style React (tels que des tableaux de paramètres, des onglets, des accordéons extensibles et des groupes de code). - Spécifications OpenAPI (
openapi.json/openapi.yaml) : Descriptions standardisées et lisibles par machine des API REST que Mintlify analyse pour générer des références d'endpoints interactives et des bacs à sable de test de requêtes (« Try It »). - Intégration GitHub Mintlify : Une application GitHub native qui écoute les webhooks du dépôt, déclenchant automatiquement des builds dans le cloud lorsque des modifications sont fusionnées dans la branche de production et générant des environnements de prévisualisation pour les pull requests.
+-----------------------------------------------------------------------+
| GitHub Repository |
| |
| +----------------+ +--------------------+ +---------------------+ |
| | mint.json | | docs/**/*.mdx | | openapi.json | |
| | (Site Config) | | (Guides & Pages) | | (API Specification) | |
| +----------------+ +--------------------+ +---------------------+ |
+-----------------------------------------------------------------------+
| ^
| (Push to main / Open PR) | (CI Auto-Sync)
v |
+-----------------------+ +-----------------------+
| Mintlify GitHub App | | GitHub Actions CI/CD |
| - Validates syntax | | - Extract spec from |
| - Builds static docs | | backend code |
| - Posts PR preview | | - Commit / Trigger |
+-----------------------+ +-----------------------+
|
v
+-----------------------------------------------------------------------+
| Production Documentation Site |
| (Interactive Developer Portal & Live API Playground) |
+-----------------------------------------------------------------------+
Configuration du dépôt de documentation
Les équipes d'ingénierie peuvent implémenter Mintlify soit dans un dépôt de documentation dédié, soit au sein d'un monorepo d'application existant. Partir d'une structure de répertoires claire garantit une navigation intuitive et des limites nettes pour la CI/CD.
1. Structure du dépôt
Un espace de travail de documentation Mintlify standard suit cette disposition de fichiers :
my-docs-repo/
├── .github/
│ └── workflows/
│ └── sync-api-spec.yml
├── docs/
│ ├── api-reference/
│ │ ├── authentication.mdx
│ │ └── errors.mdx
│ ├── guides/
│ │ ├── quickstart.mdx
│ │ └── rate-limits.mdx
│ └── openapi.json
└── mint.json
2. Configuration de mint.json
Le fichier mint.json contrôle le thème visuel, la navigation de premier niveau et l'ingestion des références d'API. Les équipes configurent le tableau navigation pour organiser les guides conceptuels et lier automatiquement les endpoints d'API définis dans la spécification OpenAPI :
{
"$schema": "https://mintlify.com/schema.json",
"name": "Acme Developer Platform",
"logo": {
"dark": "/logo/dark.svg",
"light": "/logo/light.svg"
},
"favicon": "/favicon.svg",
"colors": {
"primary": "#0F52BA",
"light": "#4B9CD3",
"dark": "#002D62"
},
"navigation": [
{
"group": "Getting Started",
"pages": [
"docs/guides/quickstart",
"docs/guides/rate-limits"
]
},
{
"group": "API Reference",
"pages": [
"docs/api-reference/authentication",
"docs/api-reference/errors"
],
"openapi": "docs/openapi.json"
}
],
"api": {
"baseUrl": "https://api.acme.com/v1"
}
}
3. Développement local avec la CLI Mintlify
Les ingénieurs doivent vérifier les modifications de documentation localement avant de les pousser sur GitHub. La CLI Mintlify fournit un serveur de développement local avec rechargement à chaud :
- Installez la CLI globalement ou exécutez-la via
npx:npm install -g mint - Accédez au répertoire contenant
mint.jsonet lancez le serveur de développement :mint dev - Ouvrez
http://localhost:3000dans un navigateur. Toute modification apportée aux fichiers.mdx, àmint.jsonou au schéma OpenAPI est rechargée instantanément.
Automatisation des déploiements avec l'application GitHub Mintlify
Le mécanisme d'automatisation central reliant GitHub à Mintlify est l'application GitHub Mintlify. Une fois installée, elle remplace les scripts manuels de build et de déploiement.
Installation et configuration des branches
- Connectez-vous au tableau de bord Mintlify et accédez à Settings > Git Settings.
- Cliquez sur Install GitHub App et sélectionnez l'organisation ainsi que le dépôt cible.
- Configurez la branche de déploiement (Deployment Branch, généralement
main). Chaque fois que des commits sont poussés ou fusionnés dans cette branche, Mintlify déclenche un build de production. - Si votre documentation réside dans un sous-dossier d'un monorepo (comme
/docs), activez l'option de sous-répertoire et spécifiez le chemin. Cela restreint les builds afin que Mintlify ne se déclenche que lorsque des fichiers du dossier de documentation sont modifiés.
Prévisualisations des Pull Requests et contrôles de revue
Lorsqu'un ingénieur ouvre une pull request modifiant des fichiers de documentation, l'application GitHub exécute automatiquement une vérification de build et publie un commentaire sur la PR avec une URL de prévisualisation unique :
- Assurance qualité visuelle (Visual QA) : Les réviseurs peuvent inspecter les composants MDX rendus, le formatage et les bacs à sable interactifs directement sur le domaine de prévisualisation avant la fusion.
- Validation de la syntaxe : Si un élément Markdown mal formé, un lien interne rompu ou un schéma JSON invalide est introduit, la vérification de build échoue, empêchant la fusion de la PR dans
main. - Collaboration transversale : Les rédacteurs techniques, les chefs de produit et les développeurs peuvent réviser les modifications textuelles dans la même interface que celle utilisée pour les revues de code.
Automatisation des mises à jour des spécifications OpenAPI via GitHub Actions
Alors que les guides conceptuels sont rédigés manuellement en MDX, la documentation de référence d'API doit toujours dériver directement du code source. Lorsque les ingénieurs backend modifient des routes d'endpoints, des charges utiles de requêtes ou des schémas de réponse, un pipeline automatisé doit mettre à jour le fichier de spécification OpenAPI dans le répertoire de documentation.
Synchronisation des spécifications dans un monorepo
Dans un monorepo où le code du service d'API (par exemple FastAPI, Express, NestJS ou Go) réside aux côtés de la documentation, GitHub Actions peut générer la dernière spécification à chaque commit et maintenir le dossier de documentation à jour.
Le workflow GitHub Actions suivant illustre l'extraction d'un schéma OpenAPI à partir d'un service backend et le déclenchement d'un déploiement Mintlify :
name: Sync OpenAPI Spec and Deploy Docs
on:
push:
branches:
- main
paths:
- 'services/api/**'
- 'docs/**'
jobs:
sync-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Set up Python Environment
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install Dependencies
run: |
pip install -r services/api/requirements.txt
- name: Generate OpenAPI Specification
run: |
python -c "import json; from services.api.main import app; print(json.dumps(app.openapi()))" > docs/openapi.json
- name: Check for Spec Changes
id: git-diff
run: |
git diff --quiet docs/openapi.json || echo "changed=true" >> $GITHUB_OUTPUT
- name: Commit and Push Updated Spec
if: steps.git-diff.outputs.changed == 'true'
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add docs/openapi.json
git commit -m "chore(docs): auto-update openapi.json from backend"
git push origin main
- name: Trigger Mintlify Deployment
run: |
curl -X POST https://api.mintlify.com/api/deploy \
-H "Authorization: Bearer ${{ secrets.MINTLIFY_API_TOKEN }}"
Architecture de synchronisation multi-dépôts
Dans les architectures de microservices où les services backend résident dans des dépôts distincts du portail de documentation centralisé, les équipes utilisent des événements de repository dispatch ou des appels d'API directs :
- CI du service : Lorsque le service backend se compile dans son propre dépôt, la CI génère
openapi.json. - Dispatch ou PR : Le workflow utilise un jeton d'accès personnel GitHub pour envoyer un événement de webhook au dépôt de documentation, ouvrant une pull request automatisée avec la spécification mise à jour.
- Validation et fusion : Le dépôt de documentation exécute le linting du schéma, génère une prévisualisation Mintlify et fusionne la mise à jour après approbation.
Bonnes pratiques pour l'automatisation de la documentation d'API
Pour maintenir une documentation de haute qualité au sein d'équipes d'ingénierie en pleine croissance, mettez en œuvre les standards opérationnels suivants :
| Pratique | Mécanisme de mise en œuvre | Bénéfice |
|---|---|---|
| Validation de schéma | Exécuter mint validate ou des linters Spectral en CI avant la fusion. | Empêche les schémas OpenAPI corrompus ou les types de paramètres invalides d'atteindre la production. |
| PRs atomiques code et documentation | Exiger les modifications du code d'API et les mises à jour de documentation correspondantes dans la même PR. | Élimine le décalage entre le déploiement d'une fonctionnalité et la publication de sa documentation. |
| Sécurité des variables d'environnement | Ne jamais commiter de clés d'API ou de secrets de production dans les blocs de serveurs OpenAPI. | Protège l'infrastructure tout en permettant aux utilisateurs de saisir des clés de test dans les bacs à sable interactifs. |
| Balisage des endpoints (Tagging) | Organiser les routes OpenAPI avec des tags cohérents dans les annotations de code. | Mintlify regroupe automatiquement les endpoints en sections de navigation structurées en fonction des tags. |
| Automatisation du journal des modifications (Changelog) | Générer des notes de version dans docs/changelog.mdx à l'aide des GitHub Releases ou des tags Git. | Maintient les utilisateurs informés des dépréciations, des ajustements de limites de débit et des nouvelles fonctionnalités. |
En traitant la documentation d'API comme du code, en hébergeant les fichiers sources dans GitHub et en automatisant les pipelines de déploiement et de spécification, les équipes d'ingénierie logicielle peuvent éliminer la dérive documentaire, accélérer l'intégration des développeurs et fournir un portail d'API interactif qui reste précis à chaque version.