返回顶部
g

gitlab-workflowGitLab工作流

GitLab 工作流助手,严格遵循团队规范。用于 MR 管理、代码审查、CI/CD 状态查询、分支管理和合并操作。通过 MorphixAI 代理安全访问 GitLab API。

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.1.1
安全检测
已通过
370
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

gitlab-workflow

GitLab 工作流

通过 mx_gitlab 工具管理 GitLab 项目。严格遵守团队规范。

前置条件

  1. 1. 安装插件: openclaw plugins install openclaw-morphixai
  2. 获取 API Key: 访问 morphix.app/api-keys 生成 mkxxxxxx 密钥
  3. 配置环境变量: export MORPHIXAIAPIKEY=mkyourkeyhere
  4. 链接账号: 访问 morphix.app/connections 链接 GitLab 账号,或通过 mx_link 工具链接(app: gitlab)

参数命名规范(重要)

mx_gitlab 工具所有 action 的参数命名:

参数说明
project项目 ID(数字字符串)或路径(group/repo),不是 projectid
mriid
MR 在项目内的序号,不是 mergerequestiid |
| pipeline_id | Pipeline 的全局 ID |

description 字段换行格式

⚠️ description 字段必须使用真实换行符,不要使用 \n 字面量字符串。
错误示例(在 GitLab 上会显示为 \n):

description: 改动\n- 修复 bug\n- 新增功能

正确示例(使用 YAML 多行字符串):
yaml
description: |
## 改动
- 修复 bug
- 新增功能
## 测试
- 单元测试通过


代码审查策略(优先级顺序)

获取 MR 代码变更时,按以下顺序尝试:

✅ 优先:本地 git(推荐)

本地仓库 + git 命令是最可靠的代码审查方式:

  • - 无需额外认证(使用本地已有凭证)
  • 无响应体大小限制(任意规模的 diff)
  • 速度快,工具丰富(log、diff、show、blame)

第一步:查找本地仓库路径

bash

nodes.run — 在本机执行


find ~/www -maxdepth 4 -type d -name <仓库名>

例:find ~/www -maxdepth 4 -type d -name tanka-2b-web

第二步:fetch 最新数据

bash

nodes.run — 工作目录切换到仓库路径


cd ~/www/<项目路径> && git fetch origin

第三步:获取 MR 的 commits(需要知道源分支和目标分支)

bash

查看 MR 分支间的 commit 列表


git log origin/..origin/ --oneline

示例(MR: feat/zoom-v2/main → uat-tanka-oh)

git log origin/uat-tanka-oh..origin/feat/zoom-v2/main --oneline

第四步:获取文件变更统计

bash
git diff --stat origin/...origin/

示例


git diff --stat origin/uat-tanka-oh...origin/feat/zoom-v2/main

第五步:获取具体文件的 diff

bash

全量 diff(大 MR 慎用,建议指定文件)


git diff origin/...origin/

指定文件 diff(推荐)

git diff origin/...origin/ -- src/path/to/file.ts

只看特定目录

git diff origin/...origin/ -- src/components/

⚠️ 备用:mx_link proxy(本地无仓库时使用)

当本地不存在仓库时,通过 MorphixAI 代理调用 GitLab API。
注意:大型 MR 的 diff 可能因响应体过大返回 400,此时只能使用本地 git。

mx_link:
action: proxy
account_id:
method: GET
url: https://gitlab.com/api/v4/projects//merge_requests//changes

可用的 MR 相关 API:

  • - GET /api/v4/projects/{id}/mergerequests/{iid} — MR 详情
  • GET /api/v4/projects/{id}/mergerequests/{iid}/changes — 文件变更(可能因大小失败)
  • GET /api/v4/projects/{id}/mergerequests/{iid}/discussions — Discussion 线程
  • GET /api/v4/projects/{id}/mergerequests/{iid}/notes — 评论列表
  • POST /api/v4/projects/{id}/mergerequests/{iid}/notes — 发表评论
  • GET /api/v4/projects/{id}/mergerequests/{iid}/approvals — 审批状态



分支命名

  • - feature/JIRA-{ID}-{简短描述} — 新功能
  • fix/JIRA-{ID}-{简短描述} — bug 修复
  • release/v{X.Y.Z} — 发布分支
  • hotfix/v{X.Y.Z}-{描述} — 生产热修复

Commit Message 格式

{Scope}: {action} {description}

  • - Scope:模块名(SDK、CLI、Gateway、Bot 等)
  • Actions:add / update / fix / remove / refactor
  • 示例:SDK: add message retry logic
  • 相关改动一个 commit,绝不混杂无关重构

核心操作(mx_gitlab)

查看当前用户

mx_gitlab:
action: get_user

列出项目

mx_gitlab:
action: list_projects
per_page: 10

查看项目详情

mx_gitlab:
action: get_project
project: 12345

MR 操作

列出 MR:

mx_gitlab:
action: listmergerequests
project: 12345
state: opened

创建 MR:

mx_gitlab:
action: createmergerequest
project: 12345
source_branch: feature/JIRA-123-user-login
target_branch: main
title: [JIRA-123] 实现用户登录功能
description: ## 改动\n- 实现 JWT 登录\n\n## 测试\n- 单元测试通过\n\n## 关联\n- JIRA-123

审批 MR:

mx_gitlab:
action: approvemergerequest
project: 12345
mr_iid: 42

查看单条 MR 详情(含合并就绪状态):

mx_gitlab:
action: getmergerequest
project: 12345
mr_iid: 42

返回关键字段:

  • - detailedmergestatus: mergeable(可合并)/ preparing(准备中,需等待)/ checking(检查中)/ cimustpass(CI 未通过)/ notapproved(未获批准)/ discussionsnotresolved(有未解决讨论)
  • hasconflicts: 是否有冲突
  • blockingdiscussionsresolved: 阻塞性讨论是否已解决
  • pipeline: 最新 Pipeline 状态

合并前必须先检查状态(重要):

⚠️ 直接调用 mergemergerequest 而不检查状态会导致 500 错误(MR 未就绪时 GitLab 拒绝合并)

正确流程:

  1. 1. mxgitlab: getmergerequest → 确认 detailedmergestatus === mergeable
  2. 如果是 preparing 或 checking → 等待后重试 getmergerequest
  3. 如果是 cimustpass → CI 未通过,不能合并
  4. 如果是 notapproved → 需要审批,先 approvemergerequest
  5. 确认 mergeable 后 → mxgitlab: mergemerge_request

合并 MR:

mx_gitlab:
action: mergemergerequest
project: 12345
mr_iid: 42

✅ mergemergerequest 会自动检查 detailedmergestatus,若 MR 未就绪会直接返回错误和原因,无需手动 pre-check。

更新 MR(设置 Reviewer / Assignee / 标签等):

先搜索 GitLab 用户 ID

mx_gitlab: action: search_users search: usernameorname

再设置 reviewer(使用搜索结果中的 id 字段)

mx_gitlab: action: updatemergerequest project: 12345 mr_iid:

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 gitlab-workflow-1776208178 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 gitlab-workflow-1776208178 技能

通过命令行安装

skillhub install gitlab-workflow-1776208178

下载

⬇ 下载 gitlab-workflow v0.1.1(免费)

文件大小: 5.18 KB | 发布时间: 2026-4-15 10:41

v0.1.1 最新 2026-4-15 10:41
- 新增前置条件说明:明确要求安装 `openclaw-morphixai` 插件、获取并配置 MorphixAI API Key,以及链接 GitLab 账号。
- 前置条件从“配置环境变量和账号”扩展为分步详细引导,包括插件安装和访问链接。
- 其余内容与上一版一致,未见功能或行为方面的变更。

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部