Azure Repos
1 - Présentation
Azure Repos fournit des repositories Git privés illimités pour héberger votre code source.
2 - Créer un repository
2.1 Via l'interface
- Project Settings → Repos → Repositories
- Cliquer sur "New repository"
- Nommer le repo et choisir les options
2.2 Via CLI
# Créer un repo
az repos create --name mon-app --org https://dev.azure.com/MonOrg --project MonProjet
# Lister les repos
az repos list --org https://dev.azure.com/MonOrg --project MonProjet
# Cloner
git clone https://dev.azure.com/MonOrg/MonProjet/_git/mon-app
2.3 Importer un repo existant
# Importer depuis GitHub
az repos import create \
--git-source-url https://github.com/user/repo.git \
--repository mon-app
3 - Branches
3.1 Stratégie de branches
3.2 Créer une branche
# Via Git
git checkout -b feature/ma-feature
git push -u origin feature/ma-feature
# Via CLI Azure
az repos ref create \
--name refs/heads/feature/ma-feature \
--object-id <commit-id>
3.3 Comparer des branches
# Via CLI
az repos ref list --filter heads/
4 - Branch Policies
4.1 Types de policies
| Policy | Description |
|---|---|
| Require reviewers | Nombre minimum de reviewers |
| Check for linked work items | Lier à un work item |
| Check for comment resolution | Résoudre tous les commentaires |
| Limit merge types | Squash, rebase only, etc. |
| Build validation | Pipeline doit passer |
| Status checks | Checks externes |
4.2 Configurer via CLI
# Exiger 2 reviewers
az repos policy approver-count create \
--repository-id <repo-id> \
--branch main \
--enabled true \
--minimum-approver-count 2 \
--creator-vote-counts false \
--allow-downvotes false \
--reset-on-source-push true
# Exiger un build réussi
az repos policy build create \
--repository-id <repo-id> \
--branch main \
--enabled true \
--build-definition-id <pipeline-id> \
--display-name "Build Validation" \
--valid-duration 720
4.3 Configuration complète
# azure-pipelines.yml pour build validation
trigger: none # Désactiver les triggers automatiques
pr:
branches:
include:
- main
- develop
pool:
vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
inputs:
versionSpec: '18.x'
- script: npm ci
displayName: 'Install dependencies'
- script: npm run lint
displayName: 'Lint'
- script: npm test
displayName: 'Tests'
5 - Pull Requests
5.1 Créer une PR
# Via CLI
az repos pr create \
--source-branch feature/ma-feature \
--target-branch main \
--title "Add login feature" \
--description "This PR adds..." \
--reviewers [email protected] \
--work-items 123 456
# Lister les PRs
az repos pr list --status active
5.2 Workflow de review
5.3 Auto-complete
# Activer auto-complete (merge quand toutes les policies sont OK)
az repos pr update \
--id <pr-id> \
--auto-complete true \
--delete-source-branch true \
--squash true
6 - Code Search
6.1 Syntaxe de recherche
| Syntax | Description |
|---|---|
function:login | Rechercher une fonction |
class:UserService | Rechercher une classe |
file:*.ts | Filtrer par type de fichier |
path:src/ | Filtrer par chemin |
repo:mon-app | Rechercher dans un repo |
6.2 Exemples
# Trouver tous les TODO
comment:TODO
# Trouver une définition
def:authenticateUser
# Recherche avancée
class:Controller path:src/api file:*.ts
7 - Git LFS
7.1 Configurer LFS
# Installer Git LFS
git lfs install
# Tracker des fichiers
git lfs track "*.psd"
git lfs track "*.zip"
git lfs track "assets/**"
# Vérifier le .gitattributes
cat .gitattributes
7.2 Configuration Azure Repos
Azure Repos supporte Git LFS nativement. Pas de configuration serveur nécessaire.
8 - Forks
8.1 Créer un fork
# Via CLI
az repos fork create \
--repository mon-app \
--organization https://dev.azure.com/MonOrg \
--project MonProjet
8.2 Workflow de contribution
- Fork le repository
- Clone votre fork
- Créer une branche
- Faire vos modifications
- Push vers votre fork
- Créer une PR vers le repo original
Résumé
Dans ce chapitre, nous avons appris :
- La création et gestion de repositories
- Les branches et stratégies
- Les Branch Policies pour protéger le code
- Les Pull Requests et le workflow de review
- Le Code Search
- Git LFS et les Forks
Prochaine étape
Dans le prochain chapitre, nous verrons Azure Boards pour la gestion de projet.
→ Chapitre suivant : Azure Boards