hiboxsystems/marge-bot该镜像是专为GitLab设计的合并机器人,旨在自动化代码合并流程。通过集成GitLab API,实现对合并请求(Merge Request)的自动检测、条件验证与执行合并,减少手动操作成本,提高开发团队协作效率。
api:访问GitLab APIwrite_repository:修改仓库权限read_api:读取合并请求信息bashdocker run -d \ --name gitlab-merge-bot \ -e GITLAB_URL="[***]" \ # GitLab实例URL(必填) -e GITLAB_API_TOKEN="glpat-xxxxxx" \ # 个人访问令牌(必填) -e PROJECT_ID="123" \ # 目标项目ID(必填,可在项目设置>一般>项目ID查看) -e MERGE_CONDITIONS="ci_passed,approved,no_conflicts" \ # 合并条件(可选,默认:ci_passed,no_conflicts) -e TARGET_BRANCH="main" \ # 目标分支(可选,默认:main) -e POLL_INTERVAL="30" \ # 扫描间隔(秒,可选,默认:60) merge-bot:latest
yamlversion: '3.8' services: merge-bot: image: merge-bot:latest container_name: gitlab-merge-bot restart: always environment: - GITLAB_URL=[***] - GITLAB_API_TOKEN=glpat-xxxxxx - PROJECT_ID=123 - MERGE_CONDITIONS=ci_passed,approved,no_conflicts - TARGET_BRANCH=main - POLL_INTERVAL=30 - AUTO_MERGE=true # 是否自动执行合并(可选,默认:true) - CONFLICT_NOTIFY=true # 冲突时通知(可选,默认:true)
| 变量名 | 描述 | 类型 | 默认值 | 是否必填 |
|---|---|---|---|---|
| GITLAB_URL | GitLab实例基础URL(如[***]或自托管实例地址) | string | - | 是 |
| GITLAB_API_TOKEN | GitLab个人访问令牌,需包含api、write_repository权限 | string | - | 是 |
| PROJECT_ID | 目标项目ID(数字格式,非项目路径) | string | - | 是 |
| MERGE_CONDITIONS | 合并条件,多条件用逗号分隔,支持值:ci_passed/approved/no_conflicts | string | ci_passed,no_conflicts | 否 |
| TARGET_BRANCH | 目标合并分支(如main、master) | string | main | 否 |
| POLL_INTERVAL | 扫描合并请求的时间间隔(秒) | int | 60 | 否 |
| AUTO_MERGE | 是否自动执行合并操作 | boolean | true | 否 |
| CONFLICT_NOTIFY | 检测到冲突时是否发送通知(GitLab评论) | boolean | true | 否 |
| 变量名 | 描述 | 类型 | 默认值 |
|---|---|---|---|
| SOURCE_BRANCH_PATTERN | 源分支匹配规则(如feature/*,支持通配符) | string | *(全部分支) |
| MAX_RETRIES | 合并失败后的重试次数 | int | 3 |
| RETRY_DELAY | 合并失败重试间隔(秒) | int | 120 |
approved条件)CONFLICT_NOTIFY参数开启通知manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务