Configuration Git sous Windows avec GitLab interne, SSO, PAT et VS Code
Cette procédure décrit la configuration d'un poste Windows pour travailler avec GitLab Self-Managed interne de La Poste depuis Git Bash et Visual Studio Code.
1. Environnement cible
| Élément | Valeur |
|---|---|
| GitLab | https://gitlab.pop.sf.intra.laposte.fr |
| Groupe principal | caas |
| Authentification GitLab Web | SSO |
| Authentification Git | Personal Access Token (PAT) |
| Protocole Git | HTTPS |
| Gestionnaire d'identifiants | Git Credential Manager (GCM) |
| IDE | Visual Studio Code |
2. Principe général
Le SSO utilisé pour se connecter à GitLab dans le navigateur et l'authentification utilisée par Git ne sont pas nécessairement les mêmes.
Navigateur
|
+--> SSO La Poste
|
+--> GitLab
Git / VS Code
|
+--> HTTPS
|
+--> Git Credential Manager
|
+--> Personal Access Token
|
+--> GitLab
Avec Git over HTTPS, GitLab utilise le Personal Access Token comme mot de passe. Lorsqu'un compte utilise SAML/SSO ou 2FA, un PAT peut être nécessaire pour les opérations Git HTTPS. citeturn0search0
3. Pré-requis
- Un compte GitLab actif.
- Un accès SSO La Poste permettant d'accéder à GitLab.
- Les droits nécessaires sur les projets GitLab à utiliser.
- Git installé sous Windows.
- Git Credential Manager installé.
- Visual Studio Code installé.
4. Créer un Personal Access Token GitLab
4.1 Accéder à la gestion des tokens
Se connecter à GitLab avec le SSO puis ouvrir :
Avatar
|
+--> Edit profile
|
+--> Access
|
+--> Personal access tokens
GitLab documente actuellement ce chemin pour créer un Personal Access Token. citeturn0search0
4.2 Créer le token
Exemple de configuration :
| Champ | Valeur recommandée |
|---|---|
| Token name | VS Code - Windows |
| Expiration date | Selon la politique de l'organisation |
| Scope | write_repository |
4.3 Scope nécessaire
Pour les opérations Git classiques :
clone
fetch
pull
push
le scope write_repository donne les droits de lecture et d'écriture nécessaires sur les repositories accessibles au token. citeturn0search3
Il n'est pas nécessaire de donner le scope api uniquement pour effectuer des opérations Git.
4.4 Sauvegarder le token
Le token complet n'est généralement affiché qu'au moment de sa création. Il faut donc le conserver dans un gestionnaire de secrets/mots de passe approprié si nécessaire. citeturn0search0
5. Vérifier Git sous Windows
Ouvrir Git Bash ou le terminal intégré de Visual Studio Code.
Vérifier la version de Git :
git --version
Exemple :
git version 2.49.0.windows.1
6. Vérifier Git Credential Manager
Git Credential Manager permet à Git de gérer les informations d'authentification sans avoir à stocker manuellement un token dans un fichier texte.
Vérifier sa version :
git credential-manager --version
Exemple :
2.6.1+786ab03440ddc82e807a97c0e540f5247e44cec6
Vérifier le diagnostic :
git credential-manager diagnose
Un résultat avec Credential storage [ OK ] indique notamment que le stockage des credentials est fonctionnel.
7. Vérifier que Git utilise Git Credential Manager
Exécuter :
git config --show-origin --get-all credential.helper
Résultat attendu :
file:C:/Program Files/Git/etc/gitconfig manager
Cela signifie que Git utilise Git Credential Manager.
Il n'est donc pas nécessaire de créer manuellement un fichier .gitcredentials.
8. Ne pas créer manuellement .gitcredentials
La configuration recommandée est d'utiliser Git Credential Manager plutôt que de stocker le Personal Access Token directement dans un fichier texte.
À éviter :
~/.git-credentials
avec un contenu contenant directement le token.
Le stockage via Git Credential Manager évite notamment de devoir inscrire le token directement dans les URLs Git ou dans des scripts. citeturn0search6
9. Configurer l'identité Git
Le nom et l'adresse email Git servent à identifier l'auteur des commits. Ils ne correspondent pas directement au mot de passe ou au token GitLab.
9.1 Vérifier la configuration actuelle
git config --global user.name
git config --global user.email
9.2 Configurer le nom
git config --global user.name "Prénom Nom"
9.3 Configurer l'adresse email
git config --global user.email "prenom.nom@laposte.fr"
Utiliser de préférence l'adresse email professionnelle reconnue par GitLab.
10. Récupérer l'URL HTTPS d'un repository
Dans GitLab :
Projet
|
+--> Code
|
+--> Clone
|
+--> HTTPS
Une URL de repository ressemble à :
https://gitlab.pop.sf.intra.laposte.fr/caas/mon-projet.git
11. Cloner un repository
Se positionner dans le répertoire destiné à accueillir les repositories.
Exemple :
cd ~/OneDrive\ -\ LA\ POSTE\ GROUPE/Documents/LBP/Github
Cloner le repository :
git clone https://gitlab.pop.sf.intra.laposte.fr/caas/mon-projet.git
Cela pourrait notamment exposer le token dans l'historique du shell. GitLab recommande de saisir le token lorsqu'il est demandé plutôt que de l'inclure directement dans l'URL. citeturn0search0
12. Première authentification Git
Lors du premier accès au repository, Git Credential Manager peut ouvrir une fenêtre d'authentification.
Lorsque Git demande les informations :
| Champ | Valeur |
|---|---|
| Username | XIOE341 |
| Password | Personal Access Token |
Le Personal Access Token est utilisé comme mot de passe pour Git over HTTPS. citeturn0search0
13. Vérifier le repository cloné
Entrer dans le repository :
cd mon-projet
Afficher les remotes :
git remote -v
Résultat attendu :
origin https://gitlab.pop.sf.intra.laposte.fr/caas/mon-projet.git (fetch)
origin https://gitlab.pop.sf.intra.laposte.fr/caas/mon-projet.git (push)
14. Tester le pull
git pull
Si le repository est déjà à jour :
Already up to date.
Si des modifications existent sur GitLab, Git les récupère dans le repository local.
15. Workflow Git quotidien
15.1 Récupérer les dernières modifications
git pull
15.2 Vérifier l'état du repository
git status
15.3 Ajouter les modifications
Ajouter un fichier :
git add fichier.txt
Ajouter toutes les modifications :
git add .
15.4 Créer un commit
git commit -m "Description de la modification"
15.5 Envoyer les modifications vers GitLab
git push
16. Workflow complet
Le workflow classique est donc :
# 1. Récupérer les modifications distantes
git pull
# 2. Vérifier les modifications locales
git status
# 3. Ajouter les fichiers
git add .
# 4. Créer le commit
git commit -m "Description de la modification"
# 5. Envoyer vers GitLab
git push
17. Utilisation avec Visual Studio Code
Visual Studio Code utilise directement Git installé sur le poste. Il n'est donc pas nécessaire d'installer un deuxième Git uniquement pour VS Code.
17.1 Ouvrir le repository
Depuis Git Bash :
cd ~/OneDrive\ -\ LA\ POSTE\ GROUPE/Documents/LBP/Github/mon-projet
code .
Le repository est alors ouvert dans Visual Studio Code.
17.2 Source Control
Dans VS Code, sélectionner l'icône Source Control dans la barre latérale gauche.
Les fichiers modifiés apparaissent dans la section Changes.
17.3 Stage / git add
Cliquer sur le bouton + à côté d'un fichier pour effectuer :
git add fichier
L'équivalent de git add . est l'action permettant de stage toutes les modifications.
17.4 Commit
Entrer le message de commit dans le champ prévu à cet effet puis sélectionner Commit.
Équivalent terminal :
git commit -m "Description de la modification"
17.5 Pull
Le pull peut être effectué depuis le menu Source Control ou le menu Git de VS Code.
Équivalent terminal :
git pull
17.6 Push
Le push peut être effectué via Push ou Sync Changes, selon la version de VS Code.
Équivalent terminal :
git push
18. Résumé des correspondances VS Code / Git
| Action VS Code | Commande Git |
|---|---|
| Pull | git pull |
| Stage fichier | git add fichier |
| Stage all | git add . |
| Commit | git commit -m "..." |
| Push | git push |
| Afficher les modifications | git status |
19. Plusieurs repositories
Un même Personal Access Token peut être utilisé pour plusieurs repositories auxquels le compte dispose des droits nécessaires.
Exemple d'organisation locale :
Github/
├── projet-a/
├── projet-b/
├── projet-c/
├── projet-d/
└── projet-e/
Chaque repository possède son propre répertoire .git.
Il n'est pas nécessaire de créer manuellement ces répertoires .git : ils sont créés automatiquement par git clone ou git init.
20. Fichiers à ne pas créer manuellement
| Élément | Action |
|---|---|
.git |
Ne pas créer manuellement. Créé automatiquement dans chaque repository. |
.gitcredentials |
Ne pas créer manuellement. Utiliser Git Credential Manager. |
21. Vérification complète de la configuration
Les commandes suivantes permettent de contrôler la configuration :
# Version Git
git --version
# Version Git Credential Manager
git credential-manager --version
# Diagnostic GCM
git credential-manager diagnose
# Credential helper utilisé
git config --show-origin --get-all credential.helper
# Identité Git
git config --global user.name
git config --global user.email
# Remote du repository
git remote -v
# Etat du repository
git status
22. Exemple de configuration fonctionnelle
Une configuration fonctionnelle peut présenter les éléments suivants :
Git
version : 2.49.0.windows.1
Git Credential Manager
version : 2.6.1
credential.helper
manager
GitLab
https://gitlab.pop.sf.intra.laposte.fr
Authentification
SSO pour l'accès Web
PAT pour Git HTTPS
PAT
scope : write_repository
Git username
XIOE341
23. Dépannage
23.1 Git demande le login et le token à chaque pull
Vérifier que Git Credential Manager est configuré :
git config --show-origin --get-all credential.helper
Le résultat doit notamment contenir :
manager
Vérifier également :
git credential-manager diagnose
23.2 Le token est refusé
Vérifier :
- que le token n'est pas expiré ;
- que le token n'est pas révoqué ;
- que le scope
write_repositoryest présent ; - que le compte possède les droits nécessaires sur le repository ;
- que l'URL du remote pointe bien vers le GitLab interne ;
- que le token est utilisé comme mot de passe et non le mot de passe SSO.
23.3 Vérifier l'URL du remote
git remote -v
L'URL doit utiliser HTTPS et le domaine GitLab interne :
https://gitlab.pop.sf.intra.laposte.fr/...
23.4 Le repository fonctionne en lecture mais pas en push
Vérifier le scope du token.
write_repository
Le scope read_repository permet la lecture, tandis que write_repository permet la lecture et l'écriture via Git over HTTP. citeturn0search3
24. Sécurité
- Ne jamais communiquer un Personal Access Token.
- Ne jamais l'inscrire dans un script en clair.
- Ne jamais le mettre directement dans une URL Git.
- Ne jamais le committer dans un repository.
- Utiliser une date d'expiration adaptée à la politique de sécurité.
- Utiliser le scope minimal nécessaire.
- Révoquer immédiatement un token suspect ou compromis.
25. Extension GitLab pour VS Code
L'utilisation de Git avec VS Code ne nécessite pas obligatoirement l'extension GitLab for VS Code.
Pour les opérations classiques :
pull
add
commit
push
Git + Git Credential Manager + VS Code suffisent.
L'extension GitLab peut cependant être utilisée pour bénéficier de fonctions supplémentaires liées à GitLab, comme les issues, merge requests et autres fonctionnalités d'intégration.
Dans ce cas, consulter la politique interne et la documentation GitLab concernant les scopes supplémentaires requis par l'extension avant de créer un token dédié.
26. Architecture finale recommandée
┌─────────────────────────────┐
│ GitLab La Poste │
│ │
│ gitlab.pop.sf.intra... │
└──────────────┬──────────────┘
│
HTTPS / Git
│
▼
┌─────────────────────────────┐
│ Git Credential Manager │
│ │
│ Authentification sécurisée │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Windows │
│ │
│ Credentials sécurisés │
└──────────────┬──────────────┘
│
▼
┌─────────────────────────────┐
│ Git / VS Code │
│ │
│ pull │
│ add │
│ commit │
│ push │
└─────────────────────────────┘
27. Workflow recommandé au quotidien
Avant de commencer :
git pull
Pendant le travail :
modifier les fichiers
Avant le commit :
git status
Ajouter les modifications :
git add .
Créer le commit :
git commit -m "Description claire de la modification"
Envoyer vers GitLab :
git push
28. Références
- GitLab Documentation — Personal Access Tokens
- GitLab Documentation — Access Token Scopes
- GitLab Documentation — Clone a Git repository
- Git Credential Manager — GitLab support
Résumé : pour ce poste, la configuration recommandée est Git HTTPS + Personal Access Token avec write_repository + Git Credential Manager + Visual Studio Code. Aucun fichier .gitcredentials ne doit être créé manuellement.