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

注意

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

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

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

要在 playbook 中使用它,请指定: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

字符串 / 必需

合并请求的目标分支。

标题

字符串 / 必需

合并请求的标题。

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

字符串

成功或失败消息。

已返回: 总是

示例: "成功"

作者

  • zvaraondrej (@zvaraondrej)