/install gitlab-api
GitLab API
Interact with GitLab repositories via the REST API. Supports both GitLab.com and self-hosted instances.
Setup
Store your GitLab personal access token:
mkdir -p ~/.config/gitlab
echo "glpat-YOUR_TOKEN_HERE" > ~/.config/gitlab/api_token
Token scopes needed: api or read_api + write_repository
Get a token:
- GitLab.com: https://gitlab.com/-/user_settings/personal_access_tokens
- Self-hosted: https://YOUR_GITLAB/~/-/user_settings/personal_access_tokens
Configuration
Default instance: https://gitlab.com
For self-hosted GitLab, create a config file:
echo "https://gitlab.example.com" > ~/.config/gitlab/instance_url
Common Operations
List Projects
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"
Get Project ID
Projects are identified by ID or URL-encoded path (namespace%2Fproject).
# By path
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/username%2Frepo"
# Extract ID from response: jq '.id'
Read File
PROJECT_ID="12345"
FILE_PATH="src/main.py"
BRANCH="main"
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/files/${FILE_PATH}?ref=$BRANCH" \
| jq -r '.content' | base64 -d
Create/Update File
PROJECT_ID="12345"
FILE_PATH="src/new_file.py"
BRANCH="main"
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 @- \x3C\x3CEOF
{
"branch": "$BRANCH",
"content": "$CONTENT",
"commit_message": "Add new file",
"encoding": "base64"
}
EOF
For updates, use -X PUT instead of -X POST.
Delete File
curl -X DELETE -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
-H "Content-Type: application/json" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/files/${FILE_PATH}" \
-d '{"branch": "main", "commit_message": "Delete file"}'
List Files in Directory
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/tree?path=src&ref=main"
Get Repository Content (Archive)
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/archive.tar.gz" \
-o repo.tar.gz
List Branches
curl -H "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"$GITLAB_URL/api/v4/projects/$PROJECT_ID/repository/branches"
Create Branch
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"}'
Helper Script
Use scripts/gitlab_api.sh for common operations:
# List projects
./scripts/gitlab_api.sh list-projects
# Read file
./scripts/gitlab_api.sh read-file \x3Cproject-id> \x3Cfile-path> [branch]
# Write file
./scripts/gitlab_api.sh write-file \x3Cproject-id> \x3Cfile-path> \x3Ccontent> \x3Ccommit-msg> [branch]
# Delete file
./scripts/gitlab_api.sh delete-file \x3Cproject-id> \x3Cfile-path> \x3Ccommit-msg> [branch]
# List directory
./scripts/gitlab_api.sh list-dir \x3Cproject-id> \x3Cdir-path> [branch]
Rate Limits
- GitLab.com: 300 requests/minute (authenticated)
- Self-hosted: Configurable by admin
API Reference
Full API docs: https://docs.gitlab.com/ee/api/api_resources.html
Key endpoints:
- Projects:
/api/v4/projects - Repository files:
/api/v4/projects/:id/repository/files - Repository tree:
/api/v4/projects/:id/repository/tree - Branches:
/api/v4/projects/:id/repository/branches
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install gitlab-api - 安装完成后,直接呼叫该 Skill 的名称或使用
/gitlab-api触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
GitLab API 是什么?
GitLab API integration for repository operations. Use when working with GitLab repositories for reading, writing, creating, or deleting files, listing projects, managing branches, or any other GitLab repository operations. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 2078 次。
如何安装 GitLab API?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install gitlab-api」即可一键安装,无需额外配置。
GitLab API 是免费的吗?
是的,GitLab API 完全免费(开源免费),可自由下载、安装和使用。
GitLab API 支持哪些平台?
GitLab API 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 GitLab API?
由 d1gl3(@d1gl3)开发并维护,当前版本 v0.1.0。