Configuration Git Ansible recommandée
Le fichier suivant contient des tâches Ansible pour un utilisateur donné (identifié par username) afin de configurer la configuration Git recommandée. Cela inclut la définition du nom et de l’email de l’utilisateur, la configuration de l’éditeur, la mise en place de la gestion des identifiants, la définition des alias et la configuration des paramètres de couleur.
ansible_git_config.yml
- name: Set git user name
git_config:
name: user.name
value: "{{ fullname }}"
scope: global
become: true
become_user: "{{ username }}"
- name: Set git user email
git_config:
name: user.email
value: "{{ email }}"
scope: global
become: true
become_user: "{{ username }}"
- name: Set git editor to code
git_config:
name: core.editor
value: "code"
scope: global
become: true
become_user: "{{ username }}"
- name: Run git-credential-manager configure
command: git-credential-manager configure
become: true
become_user: "{{ username }}"
- name: Configure git credential store
git_config:
name: credential.credentialStore
value: "plaintext"
scope: global
become: true
become_user: "{{ username }}"
- name: Configure git aliases
git_config:
name: "alias.{{ item.name }}"
value: "{{ item.value }}"
scope: global
become: true
become_user: "{{ username }}"
loop:
- { name: "st", value: "status" }
- { name: "ci", value: "commit" }
- { name: "br", value: "branch" }
- { name: "co", value: "checkout" }
- { name: "df", value: "diff" }
- { name: "lg", value: "log -p" }
- { name: "lol", value: "log --graph --decorate --pretty=oneline --abbrev-commit" }
- { name: "lola", value: "log --graph --decorate --pretty=oneline --abbrev-commit --all" }
- { name: "mr", value: "!sh -c 'git switch master ; git branch -D mr-$1-$2 ; git fetch $1 merge-requests/$2/head:mr-$1-$2 && git checkout mr-$1-$2' -" }
- { name: "pu", value: "!sh -c 'git switch master ; git pull upstream master'" }
- { name: "r", value: "!r() { git rebase -i HEAD~$1; }; r" }
- { name: "rium", value: "rebase -i upstream/master" }
- { name: "rum", value: "rebase upstream/master" }
- { name: "rhum", value: "reset --hard upstream/master" }
- { name: "pusu", value: "!git push --set-upstream origin $(git symbolic-ref --short HEAD)" }
- { name: "sc", value: "!git switch -c" }
- name: Configure git color settings
git_config:
name: "color.{{ item }}"
value: "auto"
scope: global
become: true
become_user: "{{ username }}"
loop:
- diff
- status
- branch
- name: Configure git push settings
git_config:
name: "{{ item.name }}"
value: "{{ item.value }}"
scope: global
become: true
become_user: "{{ username }}"
loop:
- { name: "push.default", value: "tracking" }
- { name: "push.autoSetupRemote", value: "true" }
- name: Configure git diff settings
git_config:
name: "{{ item.name }}"
value: "{{ item.value }}"
scope: global
become: true
become_user: "{{ username }}"
loop:
- { name: "diff.renamelimit", value: "0" }
- { name: "diff.algorithm", value: "patience" }If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow