ワンクリックで
gitlab
GitLab 操作。用于:(1) 管理 GitLab 项目和仓库 (2) 操作 Merge Request (3) 触发 CI/CD Pipeline (4) 管理文件和代码 (5) 管理用户和权限
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
GitLab 操作。用于:(1) 管理 GitLab 项目和仓库 (2) 操作 Merge Request (3) 触发 CI/CD Pipeline (4) 管理文件和代码 (5) 管理用户和权限
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
GitHub 操作。用于:(1) 管理 GitHub 仓库 (2) 操作 Pull Request (3) 触发 Actions (4) 管理文件和代码 (5) 管理 Issue
⚠️ 需要 ZADIG_API_URL + ZADIG_API_KEY | Zadig DevOps 平台 API 客户端
Apache Apisix API 网关操作。用于:(1) 管理 Apisix 路由 (2) 配置上游和服务 (3) 管理插件 (4) 流量管理和灰度发布。环境变量:APISIX_URL, APISIX_ADMIN_KEY
Grafana 可视化和监控操作。用于:(1) 查询 Grafana 指标数据 (2) 管理仪表盘和数据源 (3) 创建和编辑图表 (4) 告警配置
Jenkins CI/CD 操作。用于:(1) 触发 Jenkins 任务构建 (2) 查询任务状态和构建历史 (3) 获取构建日志 (4) 操作 Jenkins 节点和配置
Nacos 配置中心操作。用于:(1) 查询 Nacos 配置 (2) 发布/更新配置 (3) 删除配置 (4) 管理命名空间。环境变量:NACOS_URL, NACOS_USERNAME, NACOS_PASSWORD
| name | gitlab |
| description | GitLab 操作。用于:(1) 管理 GitLab 项目和仓库 (2) 操作 Merge Request (3) 触发 CI/CD Pipeline (4) 管理文件和代码 (5) 管理用户和权限 |
# ~/.openclaw/workspace/.env
GITLAB_URL=https://gitlab.example.com
GITLAB_TOKEN=your-gitlab-private-token
api 或需要的权限source ~/.openclaw/workspace/.env
source ~/.openclaw/workspace/.env
# 列出用户项目
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects?membership=true&owned=true" | jq '.[].name'
# 获取项目详情
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID"
# 获取项目文件
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/repository/files/PATH?ref=BRANCH"
source ~/.openclaw/workspace/.env
# 列出 MR
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/merge_requests?state=opened"
# 创建 MR
curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--data-urlencode "source_branch=feature-xxx" \
--data-urlencode "target_branch=main" \
--data-urlencode "title=Feature XXX" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/merge_requests"
# 接受 MR
curl -s -X PUT -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/merge_requests/ IID/merge"
source ~/.openclaw/workspace/.env
# 触发 Pipeline
curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--data-urlencode "ref=main" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/pipeline"
# Pipeline 状态
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/pipelines"
# 获取 Pipeline 日志
curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/ PROJECT_ID/pipelines/ PIPELINE_ID/jobs"
# 安装: brew install glab
# 配置: glab auth login
glab repo list
glab mr list
glab mr create --source-branch feature --target-branch main --title "Feature"
glab pipeline run
当分支开发完成后自动创建 MR:
source ~/.openclaw/workspace/.env
# 创建 MR
MR_IID=$(curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--data-urlencode "source_branch=feature-user-auth" \
--data-urlencode "target_branch=main" \
--data-urlencode "title=Feature: 用户认证模块" \
--data-urlencode "description=实现用户登录注册功能\n\nCloses #123" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/merge_requests" | \
jq -r '.iid')
echo "MR created: !$MR_IID"
触发部署流水线并等待结果:
source ~/.openclaw/workspace/.env
# 触发 Pipeline
PIPELINE_ID=$(curl -s -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
--data-urlencode "ref=main" \
--data-urlencode "variables[0][key]=DEPLOY_ENV&variables[0][value]=production" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/pipeline" | \
jq -r '.id')
# 等待完成
while true; do
STATUS=$(curl -s -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/pipelines/$PIPELINE_ID" | \
jq -r '.status')
[[ "$STATUS" == "success" || "$STATUS" == "failed" ]] && break
sleep 15
done
echo "Pipeline $STATUS"
批量修改多个仓库的配置:
source ~/.openclaw/workspace/.env
# 更新 .gitlab-ci.yml
curl -X PUT -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-H "Content-Type: application/json" \
--data '{"branch": "main", "author_email": "ci@gitlab.com", "content": "'$(base64 -w0 .gitlab-ci.yml)'", "commit_message": "Update CI config"}' \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/files/.gitlab-ci.yml"