git_acp
is an Ansible module for git add
, git commit
, git push
and git config
operations on local or remote (https/ssh) git repo. The module interact with the local shell execution environment so certain commands - such as set new git URL - will edit local .git/config
PyPi package is not longer supported (last version available is 1.1.2
). Using collection is strongly advised.
For older Ansible versions that do not support collection, you can copy ansible_collections/lvrfrc87/git_acp/plugins/modules/git_acp.py
into library
directory in the root of your Ansible project:
myproject/
├── ansible.cfg
├── inv/
├── library/
│ ├── git_acp.py
├── playbooks/
├── roles/
All info related to Ansible Galax install are available here
module: git_acp
options:
path:
description:
- Folder path where C(.git/) is located.
required: true
type: path
comment:
description:
- Git commit comment. Same as C(git commit -m).
type: str
required: true
add:
description:
- List of files under C(path) to be staged. Same as C(git add .).
File globs not accepted, such as C(./*) or C(*).
type: list
elements: str
default: ["."]
user:
description:
- Git username for https operations.
type: str
token:
description:
- Git API token for https operations.
type: str
branch:
description:
- Git branch where perform git push.
required: True
type: str
push_option:
description:
- Git push options. Same as C(git --push-option=option).
type: str
mode:
description:
- Git operations are performend eithr over ssh, https or local.
Same as C(git@git...) or C(https://user:token@git...).
choices: ['ssh', 'https', 'local']
default: ssh
type: str
url:
description:
- Git repo URL.
required: True
type: str
ssh_params:
description:
- Dictionary containing SSH parameters.
type: dict
default: None
options:
key_file:
description:
- Specify an optional private key file path, on the target host, to use for the checkout.
accept_hostkey:
description:
- If C(yes), ensure that "-o StrictHostKeyChecking=no" is
present as an ssh option.
type: bool
default: 'no'
ssh_opts:
description:
- Creates a wrapper script and exports the path as GIT_SSH
which git then automatically uses to override ssh arguments.
An example value could be "-o StrictHostKeyChecking=no"
(although this particular option is better set via
C(accept_hostkey)).
type: str
default: None
executable:
description:
- Path to git executable to use. If not supplied,
the normal mechanism for resolving binary paths will be used.
version_added: "1.4"
remote:
description:
- Local system alias for git remote PUSH and PULL repository operations.
type: str
default: origin
user_name:
description:
- Explicit git local user name. Nice to have for remote operations.
type: str
user_email:
description:
- Explicit git local email address. Nice to have for remote operations.
type: str
- name: HTTPS | add file1.
git_acp:
user: Federico87
token: mytoken
path: /Users/git/git_acp
branch: master
comment: Add file1.
remote: origin
add: [ "." ]
mode: https
url: "https://gitlab.com/networkAutomation/git_test_module.git"
- name: SSH | add file1.
git_acp:
path: /Users/git/git_acp
branch: master
comment: Add file1.
add: [ file1 ]
remote: dev_test
mode: ssh
url: "[email protected]:networkAutomation/git_test_module.git"
user_name: lvrfrc87
user_email: [email protected]
- name: SSH with private key | add file1.
git_acp:
path: /Users/git/git_acp
branch: master
comment: Add file1.
add: [ file1 ]
remote: dev_test
mode: ssh
url: "[email protected]:networkAutomation/git_test_module.git"
ssh_params:
accept_newhostkey: true
key_file: '{{ lookup('env', 'HOME') }}/.ssh/id_rsa'
ssh_opts: '-o UserKnownHostsFile={{ remote_tmp_dir }}/known_hosts'
- name: LOCAL | push on local repo.
git_acp:
path: "~/test_directory/repo"
branch: master
comment: Add file1.
add: [ file1 ]
mode: local
url: /Users/federicoolivieri/test_directory/repo.git