OpenClaw skill for GitLab with broad GitLab REST API v4 coverage for project discovery, groups, issues, merge requests, CI/CD, repository reads, and selected write operations.
By Abdelkrim BOUJRAF / ALT-F1 SRL, Brussels 🇧🇪 🇲🇦
- Projects and Groups — list and inspect visible projects/groups
- Issues and Merge Requests — list and inspect common review/work items
- CI/CD — pipelines, jobs, environments, and runner discovery
- Repository Access — branches, tags, commits, repository files, releases, and snippets
- Webhooks and Search — list/create project hooks and search API scopes
- Auth Check — validate GitLab host and token through current-user lookup
- Security —
.envignored, no secret values stored in docs, review-first workflow
# 1. Clone
git clone https://github.com/ALT-F1-OpenClaw/openclaw-skill-gitlab-by-altf1be.git
cd openclaw-skill-gitlab-by-altf1be
# 2. Install
npm install
# 3. Configure
cp .env.example .env
# Edit .env with your GitLab credentials
# 4. Use
node scripts/gitlab.mjs user-get-current
node scripts/gitlab.mjs project-list --owned --per-page 20
node scripts/gitlab.mjs project-get --project group/subgroup/project
node scripts/gitlab.mjs group-list --search platform
node scripts/gitlab.mjs mr-list --project group/subgroup/project --state opened
node scripts/gitlab.mjs pipeline-list --project group/subgroup/project --ref main- Get a GitLab personal access token or fine-grained personal access token.
- Copy
.env.exampleto.envand fill in:
GITLAB_HOST=https://gitlab.com
GITLAB_TOKEN=glpat-...
GITLAB_PROJECT=
GITLAB_GROUP=
GITLAB_MAX_RESULTS=50- Run
npm install
- Node.js >= 18
- GitLab account with API access
- GitLab token with the required project/user permissions
See SKILL.md for skill-facing usage notes.
Implemented commands:
user-get-currentproject-listproject-getgroup-listgroup-getissue-listissue-getmr-listmr-getpipeline-listpipeline-getjob-listfile-getfile-createbranch-listbranch-gettag-listtag-getcommit-listcommit-getwebhook-listwebhook-createrelease-listrelease-getenvironment-listrunner-listsnippet-listsnippet-getsearch
Still incomplete:
- broader CRUD beyond
file-createandwebhook-create - merge request notes/discussions
- issue and merge request mutation flows
- pipeline/job control actions
- repository file update/delete
- release/snippet create/update/delete
Examples:
node scripts/gitlab.mjs user-get-current
node scripts/gitlab.mjs project-list --owned --per-page 100
node scripts/gitlab.mjs project-list --search openproject
node scripts/gitlab.mjs project-get --project 18403045
node scripts/gitlab.mjs project-get --project AbdelkrimB/data_visualization
node scripts/gitlab.mjs issue-list --project group/subgroup/project --state opened --labels bug
node scripts/gitlab.mjs mr-get --project group/subgroup/project --mr 42
node scripts/gitlab.mjs file-get --project group/subgroup/project --path package.json --ref main
node scripts/gitlab.mjs file-create --project group/subgroup/project --path docs/example.txt --branch main --content "hello" --commit-message "docs: add example"
node scripts/gitlab.mjs branch-get --project group/subgroup/project --branch main
node scripts/gitlab.mjs commit-get --project group/subgroup/project --sha 0123456789abcdef
node scripts/gitlab.mjs release-get --project group/subgroup/project --tag v1.2.3
node scripts/gitlab.mjs webhook-list --project group/subgroup/project
node scripts/gitlab.mjs webhook-create --project group/subgroup/project --url https://example.com/hook --push-events
node scripts/gitlab.mjs snippet-get --project group/subgroup/project --snippet 7
node scripts/gitlab.mjs search --project group/subgroup/project --scope blobs --query pipelineOnce installed as a skill, you can use natural language such as:
- "List my GitLab projects"
- "Show my owned GitLab repositories"
- "Check whether this token can access my projects"
- "Get project details for AbdelkrimB/data_visualization"
- GitLab credentials are loaded from environment variables
.envis ignored by git- No secret token values are stored in committed docs
- Token-boundary troubleshooting is documented explicitly
- The workflow currently favors safe read-first validation before broad write automation
- Avoid passing sensitive values such as webhook secrets through shared shell history when possible
See docs/API-COVERAGE.md for the current coverage map.
Additional credential and permission notes:
Planned publish target:
gitlab-by-altf1be
Example install flow:
clawhub install gitlab-by-altf1beMIT — see LICENSE
Abdelkrim BOUJRAF — ALT-F1 SRL, Brussels 🇧🇪 🇲🇦
- GitHub: @abdelkrim
- X: @altf1be
Contributions welcome. Open an issue or PR.