Module 3 : Azure Repos

Créer un Repository

# Via Azure CLI (PowerShell)
az repos create --name synapse-pipelines --project FOLAB-Data

# Cloner le repo
git clone https://dev.azure.com/mycompany-folab/FOLAB-Data/_git/synapse-pipelines

# Structure recommandée
synapse-pipelines/
    +-- pipelines/          # Definitions des pipelines
    +-- notebooks/          # Notebooks PySpark exportes
    +-- sql/               # Scripts SQL
    +-- tests/             # Tests unitaires
    +-- docs/              # Documentation
    +-- azure-pipelines.yml # Pipeline CI/CD
Version Bash (cliquez pour afficher)
# Via Azure CLI (Bash)
az repos create \
    --name synapse-pipelines \
    --project FOLAB-Data

# Cloner le repo
git clone https://dev.azure.com/mycompany-folab/FOLAB-Data/_git/synapse-pipelines

Stratégie de branches


+----------------------------------------------------------+
|                    GIT FLOW SIMPLIFIÉ                     |
+----------------------------------------------------------+
|                                                           |
|   main ─────────────────────────────────────────────>    |
|     \                     /                               |
|      \   develop ────────/───────────────────────>       |
|       \     \           /                                 |
|        \     feature/esg-pipeline                        |
|         \                                                 |
|          hotfix/fix-critical                             |
|                                                           |
+----------------------------------------------------------+

Branches:
- main      : production, toujours stable
- develop   : intégration, pré-production
- feature/* : nouvelles fonctionnalités
- hotfix/*  : corrections urgentes
- release/* : preparation de release
            

Commandes Git essentielles

# Créer une feature branch
git checkout develop
git pull origin develop
git checkout -b feature/esg-silver-pipeline

# Travailler et committer
git add .
git commit -m "Add: Pipeline Bronze to Silver ESG #123"

# Pousser la branche
git push -u origin feature/esg-silver-pipeline

# Mettre a jour depuis develop
git fetch origin
git rebase origin/develop

# Résoudre les conflits si nécessaire
git rebase --continue

Pull Requests

Une Pull Request (PR) permet de :
  • Demander une revue de code
  • Exécuter des validations automatiques
  • Discuter des changements
  • Merger de manière contrôlée
# Créer une PR via CLI (PowerShell)
az repos pr create --title "Feature: Pipeline ESG Bronze to Silver" --description "Implémente la transformation des données ESG brutes" --source-branch feature/esg-silver-pipeline --target-branch develop --work-items 123 456

# Lister les PRs
az repos pr list --status active

# Approuver une PR
az repos pr set-vote --id 42 --vote approve

# Compléter (merger) une PR
az repos pr update --id 42 --status completed --delete-source-branch true
Version Bash (cliquez pour afficher)
# Créer une PR via CLI (Bash)
az repos pr create \
    --title "Feature: Pipeline ESG Bronze to Silver" \
    --description "Implémente la transformation des données ESG brutes" \
    --source-branch feature/esg-silver-pipeline \
    --target-branch develop \
    --work-items 123 456

# Lister les PRs
az repos pr list --status active

# Approuver une PR
az repos pr set-vote \
    --id 42 \
    --vote approve

# Compléter (merger) une PR
az repos pr update \
    --id 42 \
    --status completed \
    --delete-source-branch true

Branch Policies

Les policies protègent les branches importantes :

# Configurer via Repos > Branches > Branch policies

Policies recommandées pour 'main' et 'develop':

1. Require a minimum number of reviewers: 2
2. Check for linked work items: Required
3. Check for comment resolution: Required
4. Build validation: azure-pipelines.yml must succeed
5. Automatically include reviewers: @team-leads
Policy Description main develop
Min reviewers Nombre de reviewers requis 2 1
Build validation Build doit réussir Oui Oui
Work items Work item lié Required Optional
Comments Tous commentaires résolus Required Required

Code Review

# Bonnes pratiques de review

1. Vérifier la logique métier
2. Vérifier la qualité du code (nommage, structure)
3. Vérifier les tests
4. Vérifier la documentation
5. Vérifier les impacts de performance

# Commentaires constructifs
- LGTM (Looks Good To Me)
- Nit: suggestion mineure
- Consider: alternative à considérer
- Blocker: doit être corrigé avant merge

Tags et Releases

# Créer un tag
git tag -a v1.0.0 -m "Release 1.0.0 - Initial ESG Pipeline"
git push origin v1.0.0

# Convention de versioning (SemVer)
v{MAJOR}.{MINOR}.{PATCH}
- MAJOR: changements incompatibles
- MINOR: nouvelles fonctionnalites compatibles
- PATCH: corrections de bugs

# Exemple
v1.0.0 -> v1.0.1 (bug fix)
v1.0.1 -> v1.1.0 (nouvelle feature)
v1.1.0 -> v2.0.0 (breaking change)
Conventions de commits :
Type: Description courte #WorkItem

Types:
- Add:    Nouvelle fonctionnalité
- Fix:    Correction de bug
- Update: Modification existante
- Refactor: Refactoring sans changement fonctionnel
- Docs:   Documentation
- Test:   Ajout/modification de tests