From 669a97adcb94a7c72c83714afa29d88a42388739 Mon Sep 17 00:00:00 2001 From: Johanna Dorothea Reichmann Date: Sat, 20 Aug 2022 16:52:30 +0200 Subject: [PATCH] feat(git): add role for configuring git --- roles/git/defaults/main.yml | 15 +++++++++++++ roles/git/tasks/main.yml | 45 +++++++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 roles/git/defaults/main.yml create mode 100644 roles/git/tasks/main.yml diff --git a/roles/git/defaults/main.yml b/roles/git/defaults/main.yml new file mode 100644 index 0000000..036c38a --- /dev/null +++ b/roles/git/defaults/main.yml @@ -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: [] diff --git a/roles/git/tasks/main.yml b/roles/git/tasks/main.yml new file mode 100644 index 0000000..2fc2d69 --- /dev/null +++ b/roles/git/tasks/main.yml @@ -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 %}