Overview
A client-mode connector for a curated DevOps slice of the GitLab REST API v4:
Default
BASE_ADDRESS is https://gitlab.com/api/v4 (no trailing slash). Self-hosted: https://YOUR_HOST/api/v4. Topics use devops/gitlab/<object>/<verb>.
Auth prefers
PRIVATE-TOKEN (personal / project / group access token). OAuth 2.0 may use Authorization: Bearer … instead. Prefer Hub secret GITLAB_TOKEN (aliases GITLAB_PRIVATE_TOKEN, GITLAB_ACCESS_TOKEN). Status remains blocked until an authenticated live smoke succeeds.Basic Syntax
Events
Auth
- Create a personal access token (or project/group token) with appropriate scopes (
api/read_apias needed), or obtain an OAuth 2.0 access token. - For pipeline triggers, create a pipeline trigger token on the project (separate from the PAT).
- Set connector
BASE_ADDRESStohttps://gitlab.com/api/v4or your self-hostedhttps://HOST/api/v4. - Pass
private_tokenon MQTT JSON payloads so thePRIVATE-TOKENheader resolves. For path params, also passproject_id/ package path fields. For triggers, passtrigger_tokenandref. - Store secrets in Hub /
GET SECRET "GITLAB_TOKEN"(aliasesGITLAB_PRIVATE_TOKEN,GITLAB_ACCESS_TOKEN). Never commit real credentials. - Successful smoke:
GET /user→ HTTP 200 withid. Invalid tokens → HTTP 401.
Example payloads
getUser (smoke):Server / inbound companion
POST /projects/{id}/hooks is client-mode registration (MQTT → GitLab). GitLab then POSTs events to your url. Receiving those callbacks into MQTT requires a separate companion ENABLE_SERVER connector — not included in GitlabRestApi.lot.
Deploy notes
- Deploy
GitlabRestApi.lotonly (noADD METADATA). - Hub catalog metadata lives in
hub-metadata.lot(WITH STATUS "beta", icon, doclink). - Docs: https://docs.coreflux.org/latest/lot-language/routes/rest-api-apps/gitlab

