Aller au contenu principal

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

  1. Project Settings → Repos → Repositories
  2. Cliquer sur "New repository"
  3. 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

PolicyDescription
Require reviewersNombre minimum de reviewers
Check for linked work itemsLier à un work item
Check for comment resolutionRésoudre tous les commentaires
Limit merge typesSquash, rebase only, etc.
Build validationPipeline doit passer
Status checksChecks 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.1 Syntaxe de recherche

SyntaxDescription
function:loginRechercher une fonction
class:UserServiceRechercher une classe
file:*.tsFiltrer par type de fichier
path:src/Filtrer par chemin
repo:mon-appRechercher 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

  1. Fork le repository
  2. Clone votre fork
  3. Créer une branche
  4. Faire vos modifications
  5. Push vers votre fork
  6. 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


← Retour à la table des matières