返回顶部
g

gitlab

Interact with GitLab API for managing projects, issues, merge requests, branches, pipelines, users, groups, and more. Use when the user needs to perform GitLab operations like creating issues, reviewing merge requests, managing branches, or querying project data via the GitLab REST API.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
72
下载量
0
收藏
概述
安装方式
版本历史

gitlab

# GitLab API Skill Node.js client for the GitLab REST API (v4). Reads config from `./.env`. ## Security Rules - **NEVER** read, cat, print, grep, or expose the `GITLAB_TOKEN` value. - **NEVER** use `curl`, `wget`, or any tool to call GitLab API directly. All access MUST go through `gitlab-client`. - AI may read/write `.env` to manage `GITLAB_URL`, but **GITLAB_TOKEN must be set by the user manually**. ## Setup Requires `./.env` with: ``` GITLAB_URL=https://gitlab.fullnine.com.cn GITLAB_TOKEN=<your-personal-access-token> ``` If token is missing, prompt the user to edit `./.env` and create a token at `<GITLAB_URL>/-/profile/personal_access_tokens` (scope: `api`). Install (first time): `source ~/.nvm/nvm.sh && npm install` ## Quick Start ```bash gitlab-client users me # Current user gitlab-client projects list --owned # My projects gitlab-client issues list --project 42 --state opened # Project issues gitlab-client mrs create --project 42 --source-branch feat --target-branch main --title "My MR" ``` ## Commands Reference Format: `gitlab-client <resource> <action> [id] [--key value ...]` All list actions support `--page N --per-page N` (default 20, max 100). ### Projects | Action | Usage | Options | |--------|-------|---------| | list | `projects list` | `--search --owned --membership --visibility` | | get | `projects get <id>` | | | search | `projects search "term"` | | | create | `projects create --name "name"` | `--description --visibility --namespace-id --initialize-with-readme` | | edit | `projects edit <id>` | `--name --description --visibility` | | delete | `projects delete <id>` | | | fork | `projects fork <id>` | `--namespace` | | members | `projects members <id>` | | | hooks | `projects hooks <id>` | | ### Issues | Action | Usage | Options | |--------|-------|---------| | list | `issues list --project <id>` | `--state --labels --milestone --assignee-id --search` | | get | `issues get --project <id> --iid <iid>` | | | create | `issues create --project <id> --title "T"` | `--description --labels --assignee-ids --milestone-id --due-date --confidential` | | edit | `issues edit --project <id> --iid <iid>` | `--title --description --state-event --labels --assignee-ids` | | close | `issues close --project <id> --iid <iid>` | | | reopen | `issues reopen --project <id> --iid <iid>` | | | delete | `issues delete --project <id> --iid <iid>` | | | notes | `issues notes --project <id> --iid <iid>` | | | add-note | `issues add-note --project <id> --iid <iid> --body "text"` | | ### Merge Requests | Action | Usage | Options | |--------|-------|---------| | list | `mrs list --project <id>` | `--state --labels --milestone --source-branch --target-branch --search` | | get | `mrs get --project <id> --iid <iid>` | | | create | `mrs create --project <id> --source-branch "src" --target-branch "tgt" --title "T"` | `--description --assignee-id --reviewer-ids --labels --milestone-id --remove-source-branch --squash` | | edit | `mrs edit --project <id> --iid <iid>` | `--title --description --state-event --labels --assignee-id` | | merge | `mrs merge --project <id> --iid <iid>` | `--merge-commit-message --squash --should-remove-source-branch` | | changes | `mrs changes --project <id> --iid <iid>` | | | commits | `mrs commits --project <id> --iid <iid>` | | | notes | `mrs notes --project <id> --iid <iid>` | | | add-note | `mrs add-note --project <id> --iid <iid> --body "text"` | | | approve | `mrs approve --project <id> --iid <iid>` | | | pipelines | `mrs pipelines --project <id> --iid <iid>` | | ### Branches | Action | Usage | Options | |--------|-------|---------| | list | `branches list --project <id>` | `--search` | | get | `branches get --project <id> --branch "name"` | | | create | `branches create --project <id> --branch "name" --ref "main"` | | | delete | `branches delete --project <id> --branch "name"` | | | delete-merged | `branches delete-merged --project <id>` | | ### Commits | Action | Usage | Options | |--------|-------|---------| | list | `commits list --project <id>` | `--ref-name --since --until --path` | | get | `commits get --project <id> --sha "abc123"` | | | diff | `commits diff --project <id> --sha "abc123"` | | | comments | `commits comments --project <id> --sha "abc123"` | | | add-comment | `commits add-comment --project <id> --sha "abc123" --note "text"` | | ### Repository / Files | Action | Usage | Options | |--------|-------|---------| | tree | `repo tree --project <id>` | `--path --ref --recursive` | | file | `repo file --project <id> --file-path "path"` | `--ref` | | raw | `repo raw --project <id> --file-path "path"` | `--ref` | | create-file | `repo create-file --project <id> --file-path "p" --branch "b" --content "c" --commit-message "m"` | | | update-file | `repo update-file --project <id> --file-path "p" --branch "b" --content "c" --commit-message "m"` | | | delete-file | `repo delete-file --project <id> --file-path "p" --branch "b" --commit-message "m"` | | | compare | `repo compare --project <id> --from "main" --to "feat"` | | ### Pipelines | Action | Usage | Options | |--------|-------|---------| | list | `pipelines list --project <id>` | `--status --ref` | | get | `pipelines get --project <id> --pipeline-id <pid>` | | | jobs | `pipelines jobs --project <id> --pipeline-id <pid>` | | | job-log | `pipelines job-log --project <id> --job-id <jid>` | | | retry | `pipelines retry --project <id> --pipeline-id <pid>` | | | cancel | `pipelines cancel --project <id> --pipeline-id <pid>` | | | create | `pipelines create --project <id> --ref "main"` | `--variables "K1=v1,K2=v2"` | ### Groups | Action | Usage | Options | |--------|-------|---------| | list | `groups list` | `--search --owned` | | get | `groups get <id>` | | | projects | `groups projects <id>` | `--search` | | members | `groups members <id>` | | | issues | `groups issues <id>` | `--state` | | mrs | `groups mrs <id>` | `--state` | ### Users | Action | Usage | |--------|-------| | me | `users me` | | list | `users list [--search "john"]` | | get | `users get <id>` | | projects | `users projects <id>` | ### Labels | Action | Usage | Options | |--------|-------|---------| | list | `labels list --project <id>` | | | create | `labels create --project <id> --name "bug" --color "#FF0000"` | `--description` | | edit | `labels edit --project <id> --name "bug"` | `--new-name --color` | | delete | `labels delete --project <id> --name "bug"` | | ### Milestones | Action | Usage | Options | |--------|-------|---------| | list | `milestones list --project <id>` | `--state` | | get | `milestones get --project <id> --milestone-id <mid>` | | | create | `milestones create --project <id> --title "v1.0"` | `--description --due-date --start-date` | | edit | `milestones edit --project <id> --milestone-id <mid>` | `--title --state-event` | | delete | `milestones delete --project <id> --milestone-id <mid>` | | ### Tags & Releases | Action | Usage | Options | |--------|-------|---------| | tags list | `tags list --project <id>` | `--search` | | tags create | `tags create --project <id> --tag-name "v1.0" --ref "main"` | `--message` | | tags delete | `tags delete --project <id> --tag-name "v1.0"` | | | releases list | `releases list --project <id>` | | | releases create | `releases create --project <id> --tag-name "v1.0" --name "R1"` | `--description` | ### Snippets | Action | Usage | Options | |--------|-------|---------| | list | `snippets list --project <id>` | | | get | `snippets get --project <id> --snippet-id <sid>` | | | create | `snippets create --project <id> --title "T" --file-name "f" --content "c"` | `--visibility` | ### Search | Action | Usage | |--------|-------| | global | `search global --scope <scope> --search "query"` | | project | `search project --project <id> --scope <scope> --search "query"` | | group | `search group --group <id> --scope <scope> --search "query"` | Scopes — global: `projects|issues|merge_requests|milestones|snippet_titles|users`. Project: `issues|merge_requests|milestones|notes|wiki_blobs|commits|blobs`. Group: `projects|issues|merge_requests|milestones`. ### Runners | Action | Usage | Options | |--------|-------|---------| | list | `runners list --project <id>` | | | all | `runners all` | `--type --status` | ### Webhooks | Action | Usage | Options | |--------|-------|---------| | list | `hooks list --project <id>` | | | create | `hooks create --project <id> --url "url"` | `--push-events --merge-requests-events --issues-events --token` | | delete | `hooks delete --project <id> --hook-id <hid>` | | ## Usage Notes - **Auth**: Uses `PRIVATE-TOKEN` header. Scopes: `api` (full), `read_api` (read-only), `read_user`, `read_repository`. - **Project ID**: Use numeric ID or URL-encoded path (`my-group%2Fmy-project`). - **Output**: JSON. Pipe to `jq` for filtering: `gitlab-client projects list | jq '.[].name'` - **Dates**: ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`). - **Labels**: Comma-separated: `--labels "bug,feature,urgent"`. - **Errors**: `401` unauthorized, `403` forbidden, `404` not found, `422` validation, `429` rate limited.

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 gitlab-api-client-1775923872 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 gitlab-api-client-1775923872 技能

通过命令行安装

skillhub install gitlab-api-client-1775923872

下载 Zip 包

⬇ 下载 gitlab v1.0.0

文件大小: 14.13 KB | 发布时间: 2026-4-12 10:06

v1.0.0 最新 2026-4-12 10:06
Initial release: GitLab REST API v4 client with full project/issue/MR/pipeline management

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部