Skip to main content

git push options — Manipuler GitLab depuis votre CLI

warning

Bien que reposant sur une fonctionnalité standard de git, ce qui suit ne fonctionne qu'avec GitLab nativement. On peut par contre créer des intégrations ou des hooks qui exploitent les push options.

Qu'est-ce que les push options ?

Les push options permettent de transmettre des chaînes de caractères personnalisées au serveur Git lors d'un push. Ces options sont passées aux hooks pre-receive et post-receive. Elles ne doivent pas contenir de caractères NUL ou LF.

Avec GitLab, ces options peuvent être utilisées pour manipuler les merge requests directement depuis la ligne de commande, sans passer par l'interface web.

Options disponibles pour GitLab

Voici les principales options supportées par GitLab pour les merge requests :

  • merge_request.create : Crée une merge request au moment du push.
  • merge_request.draft : Marque la merge request comme brouillon (draft).
  • merge_request.title="Titre personnalisé" : Définit le titre de la merge request.
  • merge_request.description="Description" : Définit la description de la merge request.
  • merge_request.target="branche-cible" : Spécifie la branche cible (par défaut : main).
  • merge_request.auto_merge : Active l'auto-merge si les conditions sont remplies.
  • merge_request.merge_when_pipeline_succeeds : Fusionne automatiquement quand le pipeline CI/CD réussit.
  • merge_request.remove_source_branch : Supprime la branche source après fusion.

Exemples pratiques

Créer une merge request simple

git push -o merge_request.create origin ma-branche

Créer une merge request en draft avec un titre personnalisé

git push -o merge_request.create -o merge_request.draft -o merge_request.title="feat(front): ma super fonctionnalité" origin ma-branche

Pousser et préparer l'auto-merge

git push -o merge_request.create -o merge_request.auto_merge -o merge_request.remove_source_branch origin ma-branche

Cheat sheet

# Créer une MR
git push -o merge_request.create origin/branche

# MR en draft
git push -o merge_request.draft origin/branche

# Titre personnalisé
git push -o merge_request.title="Mon titre" origin/branche

# Auto-merge activé
git push -o merge_request.auto_merge origin/branche

# Combinaison complète
git push -u origin ma-branche \
-o merge_request.create \
-o merge_request.draft \
-o merge_request.title="feat: nouvelle feature" \
-o merge_request.description="Description détaillée"