community.general.gitlab_merge_request 模块 – 创建、更新或删除 GitLab 合并请求

注意

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

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

要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求

要在剧本中使用它,请指定: community.general.gitlab_merge_request

community.general 7.1.0 中的新增功能

概要

  • 如果合并请求不存在,则创建它。

  • 当存在单个合并请求时,如果提供的参数不同,则将对其进行更新。

  • 当存在单个合并请求并且 state=absent 时,将删除合并请求。

  • 当检测到多个合并请求时,任务失败。

  • 基于 titlesource_branchtarget_branchstate_filter 过滤器匹配现有合并请求。

要求

执行此模块的主机需要以下要求。

参数

参数

注释

api_job_token

字符串

community.general 4.2.0 中添加

用于登录的 GitLab CI 作业令牌。

api_oauth_token

字符串

community.general 4.2.0 中添加

用于登录的 GitLab OAuth 令牌。

api_password

字符串

用于针对 API 进行身份验证的密码。

api_token

字符串

具有 API 权限的 GitLab 访问令牌。

api_url

字符串

API 的可解析端点。

api_username

字符串

用于针对 API 进行身份验证的用户名。

assignee_ids

字符串

指派者的用户名逗号分隔列表,省略 @ 字符。

设置为空字符串可取消指派所有指派者。

ca_path

字符串

community.general 8.1.0 中添加

用于验证 GitLab 服务器证书的 CA 证书包。

description

字符串

合并请求的描述。

如果找到,则会被 description_path 指定的文件内容覆盖。

description_path

路径

包含合并请求描述的文件的路径。

接受 MarkDown 格式的文件。

labels

字符串

标签名称的逗号分隔列表。

默认值: ""

project

字符串 / 必填

项目的路径或名称。

remove_source_branch

布尔值

指示合并时是否应删除源分支的标志。

选项

  • false ← (默认)

  • true

reviewer_ids

字符串

审阅者的用户名逗号分隔列表,省略 @ 字符。

设置为空字符串可取消指派所有审阅者。

source_branch

字符串 / 必填

合并请求的源分支。

更新现有合并请求时忽略。

state

字符串

创建或删除合并请求。

选项

  • "present" ← (默认)

  • "absent"

state_filter

字符串

搜索时指定合并请求状态的过滤器。

选项

  • "opened" ← (默认)

  • "closed"

  • "locked"

  • "merged"

target_branch

字符串 / 必填

合并请求的目标分支。

title

字符串 / 必填

合并请求的标题。

validate_certs

布尔值

提供 HTTPS 端点时是否验证 SSL 证书。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

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

diff_mode

支持:不支持

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

示例

- name: Create Merge Request from branch1 to branch2
  community.general.gitlab_merge_request:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: "group1/project1"
    source_branch: branch1
    target_branch: branch2
    title: "Ansible demo MR"
    description: "Demo MR description"
    labels: "Ansible,Demo"
    state_filter: "opened"
    remove_source_branch: True
    state: present

- name: Delete Merge Request from branch1 to branch2
  community.general.gitlab_merge_request:
    api_url: https://gitlab.com
    api_token: secret_access_token
    project: "group1/project1"
    source_branch: branch1
    target_branch: branch2
    title: "Ansible demo MR"
    state_filter: "opened"
    state: absent

返回值

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

描述

mr

字典

API 对象。

返回: 成功

msg

字符串

成功或失败消息。

返回: 始终

示例: "Success"

作者

  • zvaraondrej (@zvaraondrej)