بنقرة واحدة
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"