feat(git): add role for configuring git

This commit is contained in:
transcaffeine 2022-08-20 16:52:30 +02:00
parent 8315d822ee
commit 669a97adcb
Signed by: transcaffeine
GPG Key ID: 03624C433676E465
2 changed files with 60 additions and 0 deletions

View File

@ -0,0 +1,15 @@
---
git_config_file: ~/.gitconfig
git_config_gpg_program: gpg2
git_config_commit_gpgsign: false
git_config_pull_rebase: true
git_config_pull_ff: only
git_config_rebase_autostash: true
git_config_merge_autostash: true
git_config_init_default_branch: main
git_config_core_editor: vim
git_config_user: []
git_config_credentials: []

45
roles/git/tasks/main.yml Normal file
View File

@ -0,0 +1,45 @@
---
- name: Ensure git configuration is persisted in git configs file
blockinfile:
dest: "{{ git_config_file }}"
mode: "0660"
create: yes
state: present
marker: "#{mark} ANSIBLE MANAGED BLOCK by finallycoffee.base.git"
block: |+2
{% if git_config_user_name|default(false, true) and git_config_user_email|default(false, true) %}
[user]
name = {{ git_config_user_name }}
email = {{ git_config_user_email }}
{% if git_config_user_signingkey %}
signingkey = {{ git_config_user_signingkey }}
{% endif %}
{% endif %}
[gpg]
program = {{ git_config_gpg_program }}
[core]
editor = {{ git_config_core_editor }}
[commit]
gpgsign = {{ git_config_commit_gpgsign }}
[pull]
rebase = {{ git_config_pull_rebase }}
ff = {{ git_config_pull_ff }}
[rebase]
autostash = {{ git_config_rebase_autostash }}
[merge]
autostash = {{ git_config_merge_autostash }}
[init]
defaultBranch = {{ git_config_init_default_branch }}
[alias]
{% for alias in git_config_alias %}
{{ alias.name }} = {{ alias.command }}
{% endfor %}
{% for credentialset in git_config_credentials %}
[credential "{{ credentialset.remote_url }}"]
{% for entry in credentialset.config | dict2items %}
{{ entry.key }} = {{ entry.value }}
{% endfor %}
{% endfor %}