GitScrum / Docs
Toutes les Bonnes Pratiques

Intégration Pipelines CI/CD | GitScrum

Connectez votre pipeline CI/CD à GitScrum pour des mises à jour de statut automatisées. Workflows fluides du commit au déploiement avec webhooks et API.

6 min de lecture

Les pipelines CI/CD automatisent le build et le déploiement, mais déconnectés de la gestion de projet créent des lacunes de visibilité. Les intégrations CI/CD de GitScrum mettent automatiquement à jour le statut des tâches basé sur les événements du pipeline, fournissant une visibilité en temps réel sur les déploiements et connectant les changements de code à la progression du projet.

Points d'Intégration CI/CD

Étape PipelineAction GitScrumBénéfice
Branche crééeLien vers tâcheTraçabilité
PR ouverteCommentaire sur tâcheVisibilité
Build échoueCommentaire + alerteFix rapide
Build passeMise à jour statutSuivi progression
Déployé en stagingTransition tâchePrêt pour test
Déployé en productionCompléter tâcheSuivi release

Architecture d'Intégration

FLUX CI/CD VERS GITSCRUM

┌─────────────────────────────────────────────────┐
│                DÉVELOPPEMENT                    │
│                                                 │
│  1. Développeur crée branche                    │
│     Branche: feature/TASK-234-user-search       │
│                 │                               │
│                 ▼                               │
│  2. Commits référencent la tâche                │
│     "TASK-234: Implement search API"            │
│                 │                               │
│                 ▼                               │
│  3. Ouvre Pull Request                          │
│     → GitScrum: Commentaire ajouté à TASK-234   │
│       "PR #567 ouverte: [lien]"                 │
└─────────────────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│                PIPELINE CI                      │
│                                                 │
│  4. Build & Test                                │
│     ├── Si ÉCHEC → Commentaire sur TASK-234     │
│     │              "Build échoué: [logs]"       │
│     │                                           │
│     └── Si SUCCÈS → Commentaire sur TASK-234    │
│                     "Build passé ✓"             │
│                 │                               │
│                 ▼                               │
│  5. Revue de Code Approuvée                     │
│     → GitScrum: TASK-234 → "En Revue"           │
│                 │                               │
│                 ▼                               │
│  6. Merge vers main                             │
│     → GitScrum: TASK-234 → "Prêt pour Deploy"   │
└─────────────────────────────────────────────────┘
                  │
                  ▼
┌─────────────────────────────────────────────────┐
│                PIPELINE CD                      │
│                                                 │
│  7. Déploiement vers Staging                    │
│     → GitScrum: TASK-234 → "En Staging"         │
│       Commentaire: "Déployé en staging [lien]"  │
│                 │                               │
│                 ▼                               │
│  8. Déploiement vers Production                 │
│     → GitScrum: TASK-234 → "Terminé"            │
│       Commentaire: "Livré dans v2.3.4"          │
└─────────────────────────────────────────────────┘

Configuration Webhook

CONFIGURATION WEBHOOK

WEBHOOKS ENTRANTS (CI/CD → GitScrum):
┌─────────────────────────────────────────────────┐
│  Endpoint: /api/webhooks/ci-cd                  │
│                                                 │
│  Événements à envoyer:                          │
│  ├── build.started                              │
│  ├── build.completed                            │
│  ├── build.failed                               │
│  ├── deploy.started                             │
│  ├── deploy.completed                           │
│  └── deploy.failed                              │
│                                                 │
│  Structure payload:                             │
│  {                                              │
│    "event": "build.completed",                  │
│    "task_id": "TASK-234",                       │
│    "status": "success",                         │
│    "details": {                                 │
│      "build_url": "...",                        │
│      "commit": "abc123",                        │
│      "duration": "3m 42s"                       │
│    }                                            │
│  }                                              │
└─────────────────────────────────────────────────┘

WEBHOOKS SORTANTS (GitScrum → CI/CD):
┌─────────────────────────────────────────────────┐
│  Déclencheur: Changement statut tâche → "Deploy"│
│                                                 │
│  Action: Démarrer pipeline de déploiement       │
│                                                 │
│  Payload:                                       │
│  {                                              │
│    "task_id": "TASK-234",                       │
│    "environment": "staging",                    │
│    "initiated_by": "jean@entreprise.com"        │
│  }                                              │
└─────────────────────────────────────────────────┘

Conventions Branches & Commits

CONVENTIONS DE LIAISON DE TÂCHES

NOMMAGE BRANCHES:
┌─────────────────────────────────────────────────┐
│  Pattern: <type>/TASK-<id>-<description>        │
│                                                 │
│  Exemples:                                      │
│  feature/TASK-234-user-search                   │
│  bugfix/TASK-567-login-timeout                  │
│  hotfix/TASK-890-payment-fix                    │
│                                                 │
│  CI extrait: TASK-234 du nom de branche         │
└─────────────────────────────────────────────────┘

MESSAGE DE COMMIT:
┌─────────────────────────────────────────────────┐
│  Pattern: TASK-<id>: <message>                  │
│                                                 │
│  Exemples:                                      │
│  TASK-234: Add user search endpoint             │
│  TASK-234: Add search result pagination         │
│  TASK-234: Fix search query injection           │
│                                                 │
│  Tâches multiples:                              │
│  TASK-234, TASK-235: Refactor search module     │
└─────────────────────────────────────────────────┘

TITRE PR:
┌─────────────────────────────────────────────────┐
│  Pattern: [TASK-<id>] <description>             │
│                                                 │
│  Exemple:                                       │
│  [TASK-234] Implement user search functionality │
└─────────────────────────────────────────────────┘

Exemples de Scripts Pipeline

INTÉGRATION SCRIPT CI/CD

EXEMPLE GITHUB ACTIONS:

name: Build and Notify
on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      
      - name: Extract Task ID
        id: task
        run: |
          TASK_ID=$(echo "${{ github.ref }}" | grep -oP 'TASK-\d+')
          echo "task_id=$TASK_ID" >> $GITHUB_OUTPUT
      
      - name: Run Tests
        run: npm test
      
      - name: Notify GitScrum - Success
        if: success()
        run: |
          curl -X POST $GITSCRUM_WEBHOOK_URL \
            -H "Authorization: Bearer $GITSCRUM_TOKEN" \
            -d '{
              "task_id": "${{ steps.task.outputs.task_id }}",
              "event": "build.completed",
              "status": "success",
              "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
            }'
      
      - name: Notify GitScrum - Failure
        if: failure()
        run: |
          curl -X POST $GITSCRUM_WEBHOOK_URL \
            -H "Authorization: Bearer $GITSCRUM_TOKEN" \
            -d '{
              "task_id": "${{ steps.task.outputs.task_id }}",
              "event": "build.failed",
              "status": "failure",
              "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}"
            }'

Bénéfices d'Automatisation

MÉTRIQUES D'INTÉGRATION

AVANT INTÉGRATION:
┌─────────────────────────────────────────────────┐
│  Mises à jour statut manuelles: 15 min/jour/dev│
│  Info déploiement manquante: Courant            │
│  Notification échec build: Retardée             │
│  Suivi releases: Tableur                        │
└─────────────────────────────────────────────────┘

APRÈS INTÉGRATION:
┌─────────────────────────────────────────────────┐
│  Mises à jour statut manuelles: 0 (automatisé) │
│  Info déploiement manquante: Aucune             │
│  Notification échec build: Instantanée          │
│  Suivi releases: Liens tâches automatiques      │
└─────────────────────────────────────────────────┘

ÉCONOMIES DE TEMPS:
┌─────────────────────────────────────────────────┐
│  5 développeurs × 15 min/jour = 6.25 heures/sem│
│  Économies annuelles: 325 heures développeur    │
└─────────────────────────────────────────────────┘

Bonnes Pratiques

  • Nommage cohérent pour branches et commits
  • Automatiser toutes les transitions qui peuvent l'être
  • Inclure des liens vers builds et déploiements
  • Gérer les échecs avec information actionnable
  • Suivre les déploiements par environnement
  • Connecter les releases aux tâches complétées
  • Monitorer la santé de l'intégration
  • Documenter les conventions pour l'équipe
  • Anti-Patterns

    ✗ Mises à jour statut manuelles quand automatisation possible
    ✗ Pas d'IDs de tâche dans commits/branches
    ✗ Échecs de build silencieux
    ✗ Déploiements sans mises à jour tâches
    ✗ Automatisation trop complexe
    ✗ Pas de gestion d'erreurs dans webhooks
    

    Solutions Connexes