community.general.gitlab_project 模块 – 创建/更新/删除 GitLab 项目
注意
此模块是 community.general 集合 (版本 10.1.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.general
。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: community.general.gitlab_project
。
概要
当 GitLab 中不存在项目时,将创建该项目。
当项目存在且
state=absent
时,将删除该项目。当对项目进行更改时,将更新该项目。
要求
在执行此模块的主机上需要以下要求。
python-gitlab Python 模块
requests (Python 库 https://pypi.ac.cn/project/requests/)
参数
参数 |
注释 |
---|---|
允许在存在跳过的流水线时合并。 选项
|
|
用于登录的 GitLab CI 作业令牌。 |
|
用于登录的 GitLab OAuth 令牌。 |
|
用于针对 API 进行身份验证的密码。 |
|
具有 API 权限的 GitLab 访问令牌。 |
|
API 的可解析端点。 |
|
用于针对 API 进行身份验证的用户名。 |
|
配置头像的绝对路径图像。文件大小不应超过 200 kb。 此选项仅在创建时使用,不用于更新。 |
|
选项
|
|
用于验证 GitLab 服务器证书的 CA 证书包。 |
|
此项目的 CI 配置文件的自定义路径。 |
|
其容器注册表的项目清理策略。 |
|
应多久运行一次清理。 选项
|
|
启用清理策略。 选项
|
|
每个图像名称保留的标记数量。
选项
|
|
销毁与该正则表达式匹配的标记。 |
|
保留与该正则表达式匹配的标记。 |
|
销毁早于此时间的标记。
选项
|
|
选项
|
|
此项目的默认分支名称。 创建项目时,此选项需要 更新项目时,分支必须存在。 自 community.general 8.0.0 版本起支持项目默认分支更新。 |
|
项目的描述。 |
|
选项
|
|
选项
|
|
选项
|
|
此项目所属组的 ID 或完整路径。 |
|
将导入到 GitLab 的 Git 仓库。 GitLab 服务器需要对此 Git 仓库具有读取权限。 |
|
选项
|
|
将使用默认的 仅在创建项目时使用,否则忽略。 选项
|
|
选项
|
|
启用 Git 大型文件系统来管理大型文件,例如音频、视频和图形文件。 选项
|
|
对合并施加什么要求。 可能的值为 选项
|
|
是否可以进行合并请求。 选项
|
|
选项
|
|
选项
|
|
项目名称。 |
|
合并请求 (MR) 上的所有讨论都必须已解决。 选项
|
|
仅在管道成功后才允许合并。 选项
|
|
启用 GitLab 包仓库。 选项
|
|
选项
|
|
要创建的项目的路径,这将是 server_url/<group>/path。 如果未提供,将使用名称。 |
|
选项
|
|
合并后删除源分支。 选项
|
|
选项
|
|
选项
|
|
启用服务台。 选项
|
|
为该项目启用共享运行器。 选项
|
|
是否应提供代码片段创建功能。 选项
|
|
合并时压缩提交。 选项
|
|
创建或删除项目。 可能的值为 present 和 absent。 选项
|
|
要分配给项目的主题或主题列表。 它与旧版 GitLab 服务器版本兼容(14 版之前的版本,对应于 |
|
用于在用户的名称下创建一个个人项目。 |
|
提供 HTTPS 端点时是否验证 SSL 证书。 选项
|
|
选项
|
|
此项目是否应提供 wiki。 选项
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
可以在 |
|
支持:不支持 |
处于 diff 模式时,将返回有关已更改内容(或可能需要在 |
示例
- name: Create GitLab Project
community.general.gitlab_project:
api_url: https://gitlab.example.com/
api_token: "{{ api_token }}"
name: my_first_project
group: "10481470"
- name: Delete GitLab Project
community.general.gitlab_project:
api_url: https://gitlab.example.com/
api_token: "{{ access_token }}"
name: my_first_project
state: absent
delegate_to: localhost
- name: Create GitLab Project in group Ansible
community.general.gitlab_project:
api_url: https://gitlab.example.com/
validate_certs: true
api_username: dj-wasabi
api_password: "MySecretPassword"
name: my_first_project
group: ansible
issues_enabled: false
merge_method: rebase_merge
wiki_enabled: true
snippets_enabled: true
import_url: http://git.example.com/example/lab.git
initialize_with_readme: true
state: present
delegate_to: localhost
- name: get the initial root password
ansible.builtin.shell: |
grep 'Password:' /etc/gitlab/initial_root_password | sed -e 's/Password\: \(.*\)/\1/'
register: initial_root_password
- name: Create a GitLab Project using a username/password via oauth_token
community.general.gitlab_project:
api_url: https://gitlab.example.com/
api_username: root
api_password: "{{ initial_root_password }}"
name: my_second_project
group: "10481470"
返回值
常用返回值已在 此处 记录,以下是此模块独有的字段
键 |
描述 |
---|---|
GitLab API 返回的错误消息。 返回:失败 示例: |
|
成功或失败消息。 返回:始终 示例: |
|
API 对象。 返回:始终 |
|
来自服务器的 JSON 解析响应。 返回:始终 |