GitLab仓库操作

3小时前更新 1 00
GitLab仓库操作GitLab仓库操作
GitLab仓库操作

技能简介

通过REST APIGitLab仓库交互,支持GitLab.com及私有化部署实例。可完成项目列表获取、文件读写、分支管理、目录浏览等常见仓库操作。

能做什么

  • 读取、创建、更新、删除仓库文件
  • 列出项目、获取项目ID
  • 浏览目录结构、下载仓库归档
  • 查看、创建分支

使用说明

1. 安装配置

# 创建配置目录
mkdir -p ~/.config/gitlab

# 存储个人访问令牌
echo "glpat-YOUR_TOKEN_HERE" > ~/.config/gitlab/api_token

令牌权限需包含 apiread_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-projectsread-filewrite-filedelete-filelist-dir 等命令。

输入与输出

见下方输入与输出表格。

项目内容
输入GitLab个人访问令牌;项目ID或URL编码路径;目标文件路径;分支名称;文件内容(需base64编码);提交信息
输出项目列表、文件内容、目录结构、分支列表、操作执行结果
适用人群开发人员、DevOps工程师、自动化脚本编写者
不包含CI/CD流水线配置、Issue管理、权限控制、Webhook功能

 

风险提示

  • 令牌泄露可导致仓库数据被篡改或删除
  • GitLab.com限速300请求/分钟,超出将返回429错误
  • 文件内容需base64编码,直接传输可能损坏二进制数据
  • 删除操作不可逆,建议先确认分支和路径

来源信息

原始链接:https://github.com/openclaw/skills/tree/main/skills/d1gl3/gitlab-api/SKILL.md
来源类型:开源技能库

数据统计

相关导航

暂无评论

none
暂无评论...