github_deploy_key – Manages deploy keys for GitHub repositories.
github_deploy_key – Manages deploy keys for GitHub repositories.
New in version 2.4.
Synopsis
- Adds or removes deploy keys for GitHub repositories. Supports authentication using username and password, username and password and 2-factor authentication code (OTP), OAuth2 token, or personal access token.
Requirements
The below requirements are needed on the host that executes this module.
- python-requests
Parameters
Parameter | Choices/Defaults | Comments |
---|---|---|
force boolean |
|
If |
key - / required |
The SSH public key to add to the repository as a deploy key. | |
name - / required |
The name for the deploy key.
| |
otp - |
The 6 digit One Time Password for 2-Factor Authentication. Required together with username and password.
| |
owner - / required |
The name of the individual account or organization that owns the GitHub repository.
| |
password - |
The password to authenticate with. A personal access token can be used here in place of a password. | |
read_only boolean |
|
If |
repo - / required |
The name of the GitHub repository.
| |
state - |
|
The state of the deploy key. |
token - |
The OAuth2 token or personal access token to authenticate with. Mutually exclusive with password. | |
username - |
The username to authenticate with. |
Notes
Examples
# add a new read-only deploy key to a GitHub repository using basic authentication
- github_deploy_key:
owner: "johndoe"
repo: "example"
name: "new-deploy-key"
key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
read_only: yes
username: "johndoe"
password: "supersecretpassword"
# remove an existing deploy key from a GitHub repository
- github_deploy_key:
owner: "johndoe"
repository: "example"
name: "new-deploy-key"
key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
force: yes
username: "johndoe"
password: "supersecretpassword"
state: absent
# add a new deploy key to a GitHub repository, replace an existing key, use an OAuth2 token to authenticate
- github_deploy_key:
owner: "johndoe"
repository: "example"
name: "new-deploy-key"
key: "{{ lookup('file', '~/.ssh/github.pub') }}"
force: yes
token: "ABAQDAwXxn7kIMNWzcDfo..."
# re-add a deploy key to a GitHub repository but with a different name
- github_deploy_key:
owner: "johndoe"
repository: "example"
name: "replace-deploy-key"
key: "{{ lookup('file', '~/.ssh/github.pub') }}"
username: "johndoe"
password: "supersecretpassword"
# add a new deploy key to a GitHub repository using 2FA
- github_deploy_key:
owner: "johndoe"
repo: "example"
name: "new-deploy-key-2"
key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
username: "johndoe"
password: "supersecretpassword"
otp: 123456
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
error string |
failed |
the error message returned by the GitHub API
Sample: key is already in use |
http_status_code integer |
failed |
the HTTP status code returned by the GitHub API
Sample: 400 |
id integer |
changed |
the key identifier assigned by GitHub for the deploy key
Sample: 24381901 |
msg string |
always |
the status message describing what occurred
Sample: Deploy key added successfully |
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]
Authors
- Ali (@bincyber)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.7/modules/github_deploy_key_module.html