BlackOps站点管理
Clawdbot控制
通过REST API与GitLab仓库交互,支持GitLab.com及私有化部署实例。可完成项目列表获取、文件读写、分支管理、目录浏览等常见仓库操作。
1. 安装配置
# 创建配置目录
mkdir -p ~/.config/gitlab
# 存储个人访问令牌
echo "glpat-YOUR_TOKEN_HERE" > ~/.config/gitlab/api_token
令牌权限需包含 api 或 read_api + write_repository。获取地址:GitLab.com用户设置 → 访问令牌;私有化部署替换对应域名。
私有化部署需额外配置实例地址:
echo "https://gitlab.example.com" > ~/.config/gitlab/instance_url
2. 常用操作示例
列出项目(默认20个):
GITLAB_TOKEN=$(cat ~/.config/gitlab/api_token)
GITLAB_URL=$(cat ~/.config/gitlab/instance_url 2>/dev/null || echo "https://gitlab.com")
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects?owned=true&per_page=20"
读取文件(需base64解码):
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/files/${FILE_PATH}?ref=$BRANCH" \
| jq -r '.content' | base64 -d
创建/更新文件(POST创建,PUT更新):
CONTENT=$(echo "print('hello')" | base64)
curl -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-H "Content-Type: application/json" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/files/${FILE_PATH}" \
-d '{"branch": "main", "content": "'$CONTENT'", "commit_message": "Add file", "encoding": "base64"}'
创建分支:
curl -X POST -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-H "Content-Type: application/json" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/branches" \
-d '{"branch": "feature-xyz", "ref": "main"}'
脚本辅助工具位于 scripts/gitlab_api.sh,支持 list-projects、read-file、write-file、delete-file、list-dir 等命令。
见下方输入与输出表格。
| 项目 | 内容 |
|---|---|
| 输入 | GitLab个人访问令牌;项目ID或URL编码路径;目标文件路径;分支名称;文件内容(需base64编码);提交信息 |
| 输出 | 项目列表、文件内容、目录结构、分支列表、操作执行结果 |
| 适用人群 | 开发人员、DevOps工程师、自动化脚本编写者 |
| 不包含 | CI/CD流水线配置、Issue管理、权限控制、Webhook功能 |
原始链接:https://github.com/openclaw/skills/tree/main/skills/d1gl3/gitlab-api/SKILL.md
来源类型:开源技能库