community.general.github_deploy_key 模块 – 管理 GitHub 仓库的部署密钥

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.general

要在 playbook 中使用它,请指定:community.general.github_deploy_key

概要

  • 添加或删除 GitHub 仓库的部署密钥。支持使用用户名和密码、用户名、密码和二次身份验证码 (OTP)、OAuth2 令牌或个人访问令牌进行身份验证。需要仓库的管理员权限。

参数

参数

注释

force

布尔值

如果为 true,则强制添加部署密钥,方法是删除任何具有相同公钥或标题的现有部署密钥。

选项

  • false ← (默认)

  • true

github_url

字符串

在 community.general 0.2.0 中添加

GitHub API 的基本 URL

默认值: "https://api.github.com"

key

字符串 / 必需

要作为部署密钥添加到仓库的 SSH 公钥。

name

别名:title, label

字符串 / 必需

部署密钥的名称。

otp

整数

6 位一次性密码,用于二次身份验证。需要与 usernamepassword 结合使用。

owner

别名:account, organization

字符串 / 必需

拥有 GitHub 仓库的个人帐户或组织的名称。

password

字符串

用于身份验证的密码。或者,可以使用个人访问令牌代替 usernamepassword 组合。

read_only

布尔值

如果为 true,则部署密钥只能读取仓库内容。否则,部署密钥将能够读取和写入。

选项

  • false

  • true ← (默认)

repo

别名:repository

字符串 / 必需

GitHub 仓库的名称。

state

字符串

部署密钥的状态。

选项

  • "present" ← (默认)

  • "absent"

token

字符串

用于身份验证的 OAuth2 令牌或个人访问令牌。与 password 互斥。

username

字符串

用于身份验证的用户名。使用个人访问令牌时不应设置。

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 中运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

备注

注意

示例

- name: Add a new read-only deploy key to a GitHub repository using basic authentication
  community.general.github_deploy_key:
    owner: "johndoe"
    repo: "example"
    name: "new-deploy-key"
    key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
    read_only: true
    username: "johndoe"
    password: "supersecretpassword"

- name: Remove an existing deploy key from a GitHub repository
  community.general.github_deploy_key:
    owner: "johndoe"
    repository: "example"
    name: "new-deploy-key"
    key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
    force: true
    username: "johndoe"
    password: "supersecretpassword"
    state: absent

- name: Add a new deploy key to a GitHub repository, replace an existing key, use an OAuth2 token to authenticate
  community.general.github_deploy_key:
    owner: "johndoe"
    repository: "example"
    name: "new-deploy-key"
    key: "{{ lookup('file', '~/.ssh/github.pub') }}"
    force: true
    token: "ABAQDAwXxn7kIMNWzcDfo..."

- name: Re-add a deploy key to a GitHub repository but with a different name
  community.general.github_deploy_key:
    owner: "johndoe"
    repository: "example"
    name: "replace-deploy-key"
    key: "{{ lookup('file', '~/.ssh/github.pub') }}"
    username: "johndoe"
    password: "supersecretpassword"

- name: Add a new deploy key to a GitHub repository using 2FA
  community.general.github_deploy_key:
    owner: "johndoe"
    repo: "example"
    name: "new-deploy-key-2"
    key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
    username: "johndoe"
    password: "supersecretpassword"
    otp: 123456

- name: Add a read-only deploy key to a repository hosted on GitHub Enterprise
  community.general.github_deploy_key:
    github_url: "https://api.example.com"
    owner: "janedoe"
    repo: "example"
    name: "new-deploy-key"
    key: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAwXxn7kIMNWzcDfou..."
    read_only: true
    username: "janedoe"
    password: "supersecretpassword"

返回值

常用的返回值已在此处记录 此处,以下是此模块特有的字段

描述

error

字符串

GitHub API 返回的错误消息

返回:失败

示例: "key is already in use"

http_status_code

整数

GitHub API 返回的 HTTP 状态码

返回:失败

示例: 400

id

整数

GitHub 为部署密钥分配的密钥标识符

返回:已更改

示例: 24381901

msg

字符串

描述发生情况的状态消息

返回:始终

示例: "Deploy key added successfully"

作者

  • Ali (@bincyber)