[
{
"handle": "projects",
"meta": {
"short": "Projects",
"description": "Manage and interact with GitLab projects."
},
"endpoint": {
"value": "/projects"
},
"fields": [
{
"name": "id",
"type": "Integer",
"selector": ["id"],
"meta": {
"description": "The unique identifier of the project."
}
},
{
"name": "name",
"type": "String",
"selector": ["name"],
"meta": {
"description": "The name of the project."
}
},
{
"name": "description",
"type": "String",
"selector": ["description"],
"meta": {
"description": "The description of the project."
}
},
{
"name": "web_url",
"type": "String",
"selector": ["web_url"],
"meta": {
"description": "The URL to access the project in GitLab."
}
}
],
"operations": {
"list": {
"method": "GET",
"path": {
"value": ""
},
"headers": {},
"queryParams": {
"per_page": {
"value": "20",
"placeholders": []
}
}
},
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the project.",
"required": true
}
]
}
},
"create": {
"method": "POST",
"path": {
"value": ""
},
"bodyTemplate": {
"value": "{\"name\": \"{{name}}\", \"description\": \"{{description}}\"}",
"placeholders": [
{
"name": "name",
"type": "String",
"description": "The name of the project.",
"required": true
},
{
"name": "description",
"type": "String",
"description": "The description of the project.",
"required": false
}
]
}
},
"update": {
"method": "PUT",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the project.",
"required": true
}
]
},
"bodyTemplate": {
"value": "{\"name\": \"{{name}}\", \"description\": \"{{description}}\"}",
"placeholders": [
{
"name": "name",
"type": "String",
"description": "The name of the project.",
"required": false
},
{
"name": "description",
"type": "String",
"description": "The description of the project.",
"required": false
}
]
}
},
"delete": {
"method": "DELETE",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the project.",
"required": true
}
]
}
}
},
"webhooks": [
{
"event": "project_created",
"path": "/webhooks/gitlab/projects/created",
"payload": [
{
"name": "project_id",
"type": "Integer",
"selector": ["project_id"],
"meta": {
"description": "The ID of the project that was created."
}
},
{
"name": "project_name",
"type": "String",
"selector": ["project_name"],
"meta": {
"description": "The name of the project that was created."
}
}
]
}
]
},
{
"handle": "issues",
"meta": {
"short": "Issues",
"description": "Manage and interact with GitLab issues."
},
"endpoint": {
"value": "/projects/{{project_id}}/issues",
"placeholders": [
{
"name": "project_id",
"type": "Integer",
"description": "The ID of the project.",
"required": true
}
]
},
"fields": [
{
"name": "id",
"type": "Integer",
"selector": ["id"],
"meta": {
"description": "The unique identifier of the issue."
}
},
{
"name": "title",
"type": "String",
"selector": ["title"],
"meta": {
"description": "The title of the issue."
}
},
{
"name": "description",
"type": "String",
"selector": ["description"],
"meta": {
"description": "The description of the issue."
}
},
{
"name": "state",
"type": "String",
"selector": ["state"],
"meta": {
"description": "The state of the issue (e.g., opened, closed)."
}
}
],
"operations": {
"list": {
"method": "GET",
"path": {
"value": ""
},
"headers": {},
"queryParams": {
"per_page": {
"value": "20",
"placeholders": []
}
}
},
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the issue.",
"required": true
}
]
}
},
"create": {
"method": "POST",
"path": {
"value": ""
},
"bodyTemplate": {
"value": "{\"title\": \"{{title}}\", \"description\": \"{{description}}\"}",
"placeholders": [
{
"name": "title",
"type": "String",
"description": "The title of the issue.",
"required": true
},
{
"name": "description",
"type": "String",
"description": "The description of the issue.",
"required": false
}
]
}
},
"update": {
"method": "PUT",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the issue.",
"required": true
}
]
},
"bodyTemplate": {
"value": "{\"title\": \"{{title}}\", \"description\": \"{{description}}\", \"state_event\": \"{{state_event}}\"}",
"placeholders": [
{
"name": "title",
"type": "String",
"description": "The title of the issue.",
"required": false
},
{
"name": "description",
"type": "String",
"description": "The description of the issue.",
"required": false
},
{
"name": "state_event",
"type": "String",
"description": "The state event (e.g., close, reopen).",
"required": false,
"options": ["close", "reopen"]
}
]
}
}
},
"webhooks": [
{
"event": "issue_created",
"path": "/webhooks/gitlab/issues/created",
"payload": [
{
"name": "issue_id",
"type": "Integer",
"selector": ["object_attributes", "id"],
"meta": {
"description": "The ID of the issue that was created."
}
},
{
"name": "issue_title",
"type": "String",
"selector": ["object_attributes", "title"],
"meta": {
"description": "The title of the issue that was created."
}
}
]
}
]
},
{
"handle": "merge_requests",
"meta": {
"short": "Merge Requests",
"description": "Manage and interact with GitLab merge requests."
},
"endpoint": {
"value": "/projects/{{project_id}}/merge_requests",
"placeholders": [
{
"name": "project_id",
"type": "Integer",
"description": "The ID of the project.",
"required": true
}
]
},
"fields": [
{
"name": "id",
"type": "Integer",
"selector": ["id"],
"meta": {
"description": "The unique identifier of the merge request."
}
},
{
"name": "title",
"type": "String",
"selector": ["title"],
"meta": {
"description": "The title of the merge request."
}
},
{
"name": "state",
"type": "String",
"selector": ["state"],
"meta": {
"description": "The state of the merge request (e.g., opened, closed, merged)."
}
},
{
"name": "source_branch",
"type": "String",
"selector": ["source_branch"],
"meta": {
"description": "The source branch of the merge request."
}
},
{
"name": "target_branch",
"type": "String",
"selector": ["target_branch"],
"meta": {
"description": "The target branch of the merge request."
}
}
],
"operations": {
"list": {
"method": "GET",
"path": {
"value": ""
},
"headers": {},
"queryParams": {
"per_page": {
"value": "20",
"placeholders": []
}
}
},
"read": {
"method": "GET",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the merge request.",
"required": true
}
]
}
},
"create": {
"method": "POST",
"path": {
"value": ""
},
"bodyTemplate": {
"value": "{\"source_branch\": \"{{source_branch}}\", \"target_branch\": \"{{target_branch}}\", \"title\": \"{{title}}\"}",
"placeholders": [
{
"name": "source_branch",
"type": "String",
"description": "The source branch of the merge request.",
"required": true
},
{
"name": "target_branch",
"type": "String",
"description": "The target branch of the merge request.",
"required": true
},
{
"name": "title",
"type": "String",
"description": "The title of the merge request.",
"required": true
}
]
}
},
"update": {
"method": "PUT",
"path": {
"value": "/{{id}}",
"placeholders": [
{
"name": "id",
"type": "Integer",
"description": "The ID of the merge request.",
"required": true
}
]
},
"bodyTemplate": {
"value": "{\"title\": \"{{title}}\", \"state_event\": \"{{state_event}}\"}",
"placeholders": [
{
"name": "title",
"type": "String",
"description": "The title of the merge request.",
"required": false
},
{
"name": "state_event",
"type": "String",
"description": "The state event (e.g., close, reopen, merge).",
"required": false,
"options": ["close", "reopen", "merge"]
}
]
}
}
},
"webhooks": [
{
"event": "merge_request_created",
"path": "/webhooks/gitlab/merge_requests/created",
"payload": [
{
"name": "merge_request_id",
"type": "Integer",
"selector": ["object_attributes", "id"],
"meta": {
"description": "The ID of the merge request that was created."
}
},
{
"name": "merge_request_title",
"type": "String",
"selector": ["object_attributes", "title"],
"meta": {
"description": "The title of the merge request that was created."
}
}
]
}
]
},
{
"handle": "branches",
"meta": {
"short": "Branches",
"description": "Manage repository branches in a GitLab project."
},
"endpoint": {
"value": "/projects/{{project_id}}/repository/branches",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Branch name." } },
{ "name": "merged", "type": "Boolean", "selector": ["merged"], "meta": { "description": "Whether the branch is merged." } },
{ "name": "protected", "type": "Boolean", "selector": ["protected"], "meta": { "description": "Whether the branch is protected." } },
{ "name": "default", "type": "Boolean", "selector": ["default"], "meta": { "description": "Whether this is the default branch." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the branch on GitLab." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{branch}", "placeholders": [ { "name": "branch", "type": "String", "description": "Branch name.", "required": true } ] } },
"create": {
"method": "POST", "path": { "value": "" },
"bodyTemplate": { "value": "{\"branch\": \"{{branch}}\", \"ref\": \"{{ref}}\"}", "placeholders": [
{ "name": "branch", "type": "String", "description": "Name of the new branch.", "required": true },
{ "name": "ref", "type": "String", "description": "Branch, tag or commit SHA to create branch from.", "required": true }
] }
},
"delete": { "method": "DELETE", "path": { "value": "/{{branch}}", "placeholders": [ { "name": "branch", "type": "String", "description": "Branch name.", "required": true } ] } }
}
},
{
"handle": "commits",
"meta": {
"short": "Commits",
"description": "Access and create commits in a GitLab project repository."
},
"endpoint": {
"value": "/projects/{{project_id}}/repository/commits",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "String", "selector": ["id"], "meta": { "description": "Commit SHA." } },
{ "name": "short_id", "type": "String", "selector": ["short_id"], "meta": { "description": "Short commit SHA." } },
{ "name": "title", "type": "String", "selector": ["title"], "meta": { "description": "Commit title." } },
{ "name": "message", "type": "String", "selector": ["message"], "meta": { "description": "Full commit message." } },
{ "name": "author_name", "type": "String", "selector": ["author_name"], "meta": { "description": "Name of the commit author." } },
{ "name": "authored_date", "type": "String", "selector": ["authored_date"], "meta": { "description": "Date the commit was authored." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the commit on GitLab." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "ref_name": { "value": "{{ref_name}}", "placeholders": [ { "name": "ref_name", "type": "String", "description": "Branch, tag or commit SHA to list commits from.", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{sha}}", "placeholders": [ { "name": "sha", "type": "String", "description": "Commit SHA.", "required": true } ] } },
"create": {
"method": "POST", "path": { "value": "" },
"bodyTemplate": { "value": "{\"branch\": \"{{branch}}\", \"commit_message\": \"{{commit_message}}\", \"actions\": {{actions}}}", "placeholders": [
{ "name": "branch", "type": "String", "description": "Branch name to commit to.", "required": true },
{ "name": "commit_message", "type": "String", "description": "Commit message.", "required": true },
{ "name": "actions", "type": "String", "description": "JSON array of file actions (create/update/delete/move/chmod).", "required": true }
] }
}
}
},
{
"handle": "pipelines",
"meta": {
"short": "Pipelines",
"description": "Manage and trigger CI/CD pipelines in a GitLab project."
},
"endpoint": {
"value": "/projects/{{project_id}}/pipelines",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Pipeline ID." } },
{ "name": "status", "type": "String", "selector": ["status"], "meta": { "description": "Pipeline status (e.g., running, success, failed)." } },
{ "name": "ref", "type": "String", "selector": ["ref"], "meta": { "description": "Branch or tag the pipeline ran on." } },
{ "name": "sha", "type": "String", "selector": ["sha"], "meta": { "description": "Commit SHA that triggered the pipeline." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the pipeline on GitLab." } },
{ "name": "created_at", "type": "String", "selector": ["created_at"], "meta": { "description": "When the pipeline was created." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "status": { "value": "{{status}}", "placeholders": [ { "name": "status", "type": "String", "description": "Filter by status.", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Pipeline ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"ref\": \"{{ref}}\"}", "placeholders": [ { "name": "ref", "type": "String", "description": "Branch or tag to run pipeline on.", "required": true } ] } },
"delete": { "method": "DELETE", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Pipeline ID.", "required": true } ] } }
}
},
{
"handle": "jobs",
"meta": {
"short": "Jobs",
"description": "Access CI/CD jobs within a GitLab project pipeline."
},
"endpoint": {
"value": "/projects/{{project_id}}/jobs",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Job ID." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Job name." } },
{ "name": "status", "type": "String", "selector": ["status"], "meta": { "description": "Job status (e.g., success, failed, running)." } },
{ "name": "stage", "type": "String", "selector": ["stage"], "meta": { "description": "Pipeline stage the job belongs to." } },
{ "name": "ref", "type": "String", "selector": ["ref"], "meta": { "description": "Branch or tag the job ran on." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the job on GitLab." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "scope": { "value": "{{scope}}", "placeholders": [ { "name": "scope", "type": "String", "description": "Filter by job scope.", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Job ID.", "required": true } ] } }
}
},
{
"handle": "tags",
"meta": {
"short": "Tags",
"description": "Manage repository tags in a GitLab project."
},
"endpoint": {
"value": "/projects/{{project_id}}/repository/tags",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Tag name." } },
{ "name": "message", "type": "String", "selector": ["message"], "meta": { "description": "Annotated tag message." } },
{ "name": "target", "type": "String", "selector": ["target"], "meta": { "description": "Commit SHA the tag points to." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{tag_name}}", "placeholders": [ { "name": "tag_name", "type": "String", "description": "Tag name.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"tag_name\": \"{{tag_name}}\", \"ref\": \"{{ref}}\", \"message\": \"{{message}}\"}", "placeholders": [
{ "name": "tag_name", "type": "String", "description": "Name of the new tag.", "required": true },
{ "name": "ref", "type": "String", "description": "Commit SHA, branch name, or another tag name.", "required": true },
{ "name": "message", "type": "String", "description": "Annotated tag message.", "required": false }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{tag_name}}", "placeholders": [ { "name": "tag_name", "type": "String", "description": "Tag name.", "required": true } ] } }
}
},
{
"handle": "users",
"meta": {
"short": "Users",
"description": "Access GitLab user accounts."
},
"endpoint": { "value": "/users" },
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "User ID." } },
{ "name": "username", "type": "String", "selector": ["username"], "meta": { "description": "Username." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Full name." } },
{ "name": "email", "type": "String", "selector": ["email"], "meta": { "description": "Email address." } },
{ "name": "state", "type": "String", "selector": ["state"], "meta": { "description": "Account state (e.g., active, blocked)." } },
{ "name": "avatar_url", "type": "String", "selector": ["avatar_url"], "meta": { "description": "URL to the user's avatar." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the user's profile on GitLab." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "search": { "value": "{{search}}", "placeholders": [ { "name": "search", "type": "String", "description": "Search term.", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "User ID.", "required": true } ] } }
}
},
{
"handle": "groups",
"meta": {
"short": "Groups",
"description": "Manage GitLab groups and subgroups."
},
"endpoint": { "value": "/groups" },
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Group ID." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Group name." } },
{ "name": "path", "type": "String", "selector": ["path"], "meta": { "description": "Group path (slug)." } },
{ "name": "description", "type": "String", "selector": ["description"], "meta": { "description": "Group description." } },
{ "name": "visibility", "type": "String", "selector": ["visibility"], "meta": { "description": "Visibility level (public, internal, private)." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the group on GitLab." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Group ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"name\": \"{{name}}\", \"path\": \"{{path}}\"}", "placeholders": [
{ "name": "name", "type": "String", "description": "Group name.", "required": true },
{ "name": "path", "type": "String", "description": "Group path (slug).", "required": true }
] } },
"update": { "method": "PUT", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Group ID.", "required": true } ] }, "bodyTemplate": { "value": "{\"name\": \"{{name}}\", \"description\": \"{{description}}\"}", "placeholders": [
{ "name": "name", "type": "String", "description": "New group name.", "required": false },
{ "name": "description", "type": "String", "description": "New group description.", "required": false }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Group ID.", "required": true } ] } }
}
},
{
"handle": "members",
"meta": {
"short": "Members",
"description": "Manage project members and their access levels."
},
"endpoint": {
"value": "/projects/{{project_id}}/members",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "User ID." } },
{ "name": "username", "type": "String", "selector": ["username"], "meta": { "description": "Username." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Full name." } },
{ "name": "access_level", "type": "Integer", "selector": ["access_level"], "meta": { "description": "Access level (10=Guest, 20=Reporter, 30=Developer, 40=Maintainer, 50=Owner)." } },
{ "name": "expires_at", "type": "String", "selector": ["expires_at"], "meta": { "description": "Membership expiry date." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{user_id}}", "placeholders": [ { "name": "user_id", "type": "Integer", "description": "User ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"user_id\": {{user_id}}, \"access_level\": {{access_level}}}", "placeholders": [
{ "name": "user_id", "type": "Integer", "description": "User ID to add.", "required": true },
{ "name": "access_level", "type": "Integer", "description": "Access level to grant.", "required": true }
] } },
"update": { "method": "PUT", "path": { "value": "/{{user_id}}", "placeholders": [ { "name": "user_id", "type": "Integer", "description": "User ID.", "required": true } ] }, "bodyTemplate": { "value": "{\"access_level\": {{access_level}}}", "placeholders": [ { "name": "access_level", "type": "Integer", "description": "New access level.", "required": true } ] } },
"delete": { "method": "DELETE", "path": { "value": "/{{user_id}}", "placeholders": [ { "name": "user_id", "type": "Integer", "description": "User ID.", "required": true } ] } }
}
},
{
"handle": "labels",
"meta": {
"short": "Labels",
"description": "Manage project labels."
},
"endpoint": {
"value": "/projects/{{project_id}}/labels",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Label ID." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Label name." } },
{ "name": "color", "type": "String", "selector": ["color"], "meta": { "description": "Label color in hex format." } },
{ "name": "description", "type": "String", "selector": ["description"], "meta": { "description": "Label description." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"name\": \"{{name}}\", \"color\": \"{{color}}\"}", "placeholders": [
{ "name": "name", "type": "String", "description": "Label name.", "required": true },
{ "name": "color", "type": "String", "description": "Label color (e.g., #ff0000).", "required": true }
] } },
"update": { "method": "PUT", "path": { "value": "/{{label_id}}", "placeholders": [ { "name": "label_id", "type": "Integer", "description": "Label ID.", "required": true } ] }, "bodyTemplate": { "value": "{\"name\": \"{{name}}\", \"color\": \"{{color}}\"}", "placeholders": [
{ "name": "name", "type": "String", "description": "New label name.", "required": false },
{ "name": "color", "type": "String", "description": "New label color.", "required": false }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{label_id}}", "placeholders": [ { "name": "label_id", "type": "Integer", "description": "Label ID.", "required": true } ] } }
}
},
{
"handle": "notes",
"meta": {
"short": "Notes",
"description": "Manage comments (notes) on issues, merge requests, and snippets."
},
"endpoint": {
"value": "/projects/{{project_id}}/issues/{{noteable_id}}/notes",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true },
{ "name": "noteable_id", "type": "Integer", "description": "The ID of the issue, merge request or snippet.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Note ID." } },
{ "name": "body", "type": "String", "selector": ["body"], "meta": { "description": "Note content." } },
{ "name": "author_username", "type": "String", "selector": ["author", "username"], "meta": { "description": "Username of the note author." } },
{ "name": "created_at", "type": "String", "selector": ["created_at"], "meta": { "description": "When the note was created." } },
{ "name": "system", "type": "Boolean", "selector": ["system"], "meta": { "description": "Whether this is a system-generated note." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{note_id}}", "placeholders": [ { "name": "note_id", "type": "Integer", "description": "Note ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"body\": \"{{body}}\"}", "placeholders": [ { "name": "body", "type": "String", "description": "Note content.", "required": true } ] } },
"update": { "method": "PUT", "path": { "value": "/{{note_id}}", "placeholders": [ { "name": "note_id", "type": "Integer", "description": "Note ID.", "required": true } ] }, "bodyTemplate": { "value": "{\"body\": \"{{body}}\"}", "placeholders": [ { "name": "body", "type": "String", "description": "Updated note content.", "required": true } ] } },
"delete": { "method": "DELETE", "path": { "value": "/{{note_id}}", "placeholders": [ { "name": "note_id", "type": "Integer", "description": "Note ID.", "required": true } ] } }
}
},
{
"handle": "milestones",
"meta": {
"short": "Milestones",
"description": "Manage project milestones."
},
"endpoint": {
"value": "/projects/{{project_id}}/milestones",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Milestone ID." } },
{ "name": "title", "type": "String", "selector": ["title"], "meta": { "description": "Milestone title." } },
{ "name": "description", "type": "String", "selector": ["description"], "meta": { "description": "Milestone description." } },
{ "name": "state", "type": "String", "selector": ["state"], "meta": { "description": "Milestone state (active or closed)." } },
{ "name": "due_date", "type": "String", "selector": ["due_date"], "meta": { "description": "Due date (YYYY-MM-DD)." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "state": { "value": "{{state}}", "placeholders": [ { "name": "state", "type": "String", "description": "Filter by state (active or closed).", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Milestone ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"title\": \"{{title}}\", \"description\": \"{{description}}\", \"due_date\": \"{{due_date}}\"}", "placeholders": [
{ "name": "title", "type": "String", "description": "Milestone title.", "required": true },
{ "name": "description", "type": "String", "description": "Milestone description.", "required": false },
{ "name": "due_date", "type": "String", "description": "Due date in YYYY-MM-DD format.", "required": false }
] } },
"update": { "method": "PUT", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Milestone ID.", "required": true } ] }, "bodyTemplate": { "value": "{\"title\": \"{{title}}\", \"state_event\": \"{{state_event}}\"}", "placeholders": [
{ "name": "title", "type": "String", "description": "New title.", "required": false },
{ "name": "state_event", "type": "String", "description": "State event: activate or close.", "required": false, "options": ["activate", "close"] }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Milestone ID.", "required": true } ] } }
}
},
{
"handle": "releases",
"meta": {
"short": "Releases",
"description": "Manage project releases."
},
"endpoint": {
"value": "/projects/{{project_id}}/releases",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "tag_name", "type": "String", "selector": ["tag_name"], "meta": { "description": "Tag name associated with the release." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Release name." } },
{ "name": "description", "type": "String", "selector": ["description"], "meta": { "description": "Release notes (Markdown)." } },
{ "name": "created_at", "type": "String", "selector": ["created_at"], "meta": { "description": "When the release was created." } },
{ "name": "released_at", "type": "String", "selector": ["released_at"], "meta": { "description": "When the release was published." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{tag_name}}", "placeholders": [ { "name": "tag_name", "type": "String", "description": "Tag name.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"tag_name\": \"{{tag_name}}\", \"name\": \"{{name}}\", \"description\": \"{{description}}\"}", "placeholders": [
{ "name": "tag_name", "type": "String", "description": "Tag name for the release.", "required": true },
{ "name": "name", "type": "String", "description": "Release name.", "required": false },
{ "name": "description", "type": "String", "description": "Release notes.", "required": false }
] } },
"update": { "method": "PUT", "path": { "value": "/{{tag_name}}", "placeholders": [ { "name": "tag_name", "type": "String", "description": "Tag name.", "required": true } ] }, "bodyTemplate": { "value": "{\"name\": \"{{name}}\", \"description\": \"{{description}}\"}", "placeholders": [
{ "name": "name", "type": "String", "description": "New release name.", "required": false },
{ "name": "description", "type": "String", "description": "New release notes.", "required": false }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{tag_name}}", "placeholders": [ { "name": "tag_name", "type": "String", "description": "Tag name.", "required": true } ] } }
}
},
{
"handle": "environments",
"meta": {
"short": "Environments",
"description": "Manage deployment environments in a GitLab project."
},
"endpoint": {
"value": "/projects/{{project_id}}/environments",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Environment ID." } },
{ "name": "name", "type": "String", "selector": ["name"], "meta": { "description": "Environment name." } },
{ "name": "slug", "type": "String", "selector": ["slug"], "meta": { "description": "URL-safe environment name." } },
{ "name": "external_url", "type": "String", "selector": ["external_url"], "meta": { "description": "External URL for the environment." } },
{ "name": "state", "type": "String", "selector": ["state"], "meta": { "description": "Environment state (available or stopped)." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "name": { "value": "{{name}}", "placeholders": [ { "name": "name", "type": "String", "description": "Filter by name.", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Environment ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"name\": \"{{name}}\", \"external_url\": \"{{external_url}}\"}", "placeholders": [
{ "name": "name", "type": "String", "description": "Environment name.", "required": true },
{ "name": "external_url", "type": "String", "description": "External URL.", "required": false }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Environment ID.", "required": true } ] } }
}
},
{
"handle": "repository_files",
"meta": {
"short": "Repository Files",
"description": "Read and write files in a GitLab project repository."
},
"endpoint": {
"value": "/projects/{{project_id}}/repository/files",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "file_name", "type": "String", "selector": ["file_name"], "meta": { "description": "File name." } },
{ "name": "file_path", "type": "String", "selector": ["file_path"], "meta": { "description": "Full path to the file." } },
{ "name": "size", "type": "Integer", "selector": ["size"], "meta": { "description": "File size in bytes." } },
{ "name": "encoding", "type": "String", "selector": ["encoding"], "meta": { "description": "Encoding of the content (e.g., base64)." } },
{ "name": "content", "type": "String", "selector": ["content"], "meta": { "description": "File content (base64 encoded)." } },
{ "name": "ref", "type": "String", "selector": ["ref"], "meta": { "description": "Branch or commit the file belongs to." } }
],
"operations": {
"read": { "method": "GET", "path": { "value": "/{{file_path}}", "placeholders": [
{ "name": "file_path", "type": "String", "description": "URL-encoded file path.", "required": true }
] }, "queryParams": { "ref": { "value": "{{ref}}", "placeholders": [ { "name": "ref", "type": "String", "description": "Branch, tag or commit to read from.", "required": true } ] } } },
"create": { "method": "POST", "path": { "value": "/{{file_path}}", "placeholders": [ { "name": "file_path", "type": "String", "description": "URL-encoded file path.", "required": true } ] }, "bodyTemplate": { "value": "{\"branch\": \"{{branch}}\", \"content\": \"{{content}}\", \"commit_message\": \"{{commit_message}}\"}", "placeholders": [
{ "name": "branch", "type": "String", "description": "Branch to create the file on.", "required": true },
{ "name": "content", "type": "String", "description": "File content.", "required": true },
{ "name": "commit_message", "type": "String", "description": "Commit message.", "required": true }
] } },
"update": { "method": "PUT", "path": { "value": "/{{file_path}}", "placeholders": [ { "name": "file_path", "type": "String", "description": "URL-encoded file path.", "required": true } ] }, "bodyTemplate": { "value": "{\"branch\": \"{{branch}}\", \"content\": \"{{content}}\", \"commit_message\": \"{{commit_message}}\"}", "placeholders": [
{ "name": "branch", "type": "String", "description": "Branch to update the file on.", "required": true },
{ "name": "content", "type": "String", "description": "New file content.", "required": true },
{ "name": "commit_message", "type": "String", "description": "Commit message.", "required": true }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{file_path}}", "placeholders": [ { "name": "file_path", "type": "String", "description": "URL-encoded file path.", "required": true } ] }, "bodyTemplate": { "value": "{\"branch\": \"{{branch}}\", \"commit_message\": \"{{commit_message}}\"}", "placeholders": [
{ "name": "branch", "type": "String", "description": "Branch to delete the file from.", "required": true },
{ "name": "commit_message", "type": "String", "description": "Commit message.", "required": true }
] } }
}
},
{
"handle": "deploy_keys",
"meta": {
"short": "Deploy Keys",
"description": "Manage project deploy keys."
},
"endpoint": {
"value": "/projects/{{project_id}}/deploy_keys",
"placeholders": [
{ "name": "project_id", "type": "Integer", "description": "The ID of the project.", "required": true }
]
},
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Deploy key ID." } },
{ "name": "title", "type": "String", "selector": ["title"], "meta": { "description": "Deploy key title." } },
{ "name": "key", "type": "String", "selector": ["key"], "meta": { "description": "Public SSH key." } },
{ "name": "can_push", "type": "Boolean", "selector": ["can_push"], "meta": { "description": "Whether the key has write access." } },
{ "name": "created_at", "type": "String", "selector": ["created_at"], "meta": { "description": "When the key was created." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" } },
"read": { "method": "GET", "path": { "value": "/{{key_id}}", "placeholders": [ { "name": "key_id", "type": "Integer", "description": "Deploy key ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"title\": \"{{title}}\", \"key\": \"{{key}}\", \"can_push\": {{can_push}}}", "placeholders": [
{ "name": "title", "type": "String", "description": "Deploy key title.", "required": true },
{ "name": "key", "type": "String", "description": "Public SSH key.", "required": true },
{ "name": "can_push", "type": "Boolean", "description": "Whether the key can push.", "required": false }
] } },
"delete": { "method": "DELETE", "path": { "value": "/{{key_id}}", "placeholders": [ { "name": "key_id", "type": "Integer", "description": "Deploy key ID.", "required": true } ] } }
}
},
{
"handle": "runners",
"meta": {
"short": "Runners",
"description": "Manage GitLab CI/CD runners."
},
"endpoint": { "value": "/runners" },
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Runner ID." } },
{ "name": "description", "type": "String", "selector": ["description"], "meta": { "description": "Runner description." } },
{ "name": "active", "type": "Boolean", "selector": ["active"], "meta": { "description": "Whether the runner is active." } },
{ "name": "status", "type": "String", "selector": ["status"], "meta": { "description": "Runner status (online, offline, paused, etc.)." } },
{ "name": "is_shared", "type": "Boolean", "selector": ["is_shared"], "meta": { "description": "Whether the runner is shared." } },
{ "name": "runner_type", "type": "String", "selector": ["runner_type"], "meta": { "description": "Runner type (instance_type, group_type, project_type)." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" }, "status": { "value": "{{status}}", "placeholders": [ { "name": "status", "type": "String", "description": "Filter by status.", "required": false } ] } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Runner ID.", "required": true } ] } },
"delete": { "method": "DELETE", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Runner ID.", "required": true } ] } }
}
},
{
"handle": "snippets",
"meta": {
"short": "Snippets",
"description": "Manage personal code snippets."
},
"endpoint": { "value": "/snippets" },
"fields": [
{ "name": "id", "type": "Integer", "selector": ["id"], "meta": { "description": "Snippet ID." } },
{ "name": "title", "type": "String", "selector": ["title"], "meta": { "description": "Snippet title." } },
{ "name": "description", "type": "String", "selector": ["description"], "meta": { "description": "Snippet description." } },
{ "name": "visibility", "type": "String", "selector": ["visibility"], "meta": { "description": "Visibility (public, internal, private)." } },
{ "name": "web_url", "type": "String", "selector": ["web_url"], "meta": { "description": "URL to the snippet on GitLab." } }
],
"operations": {
"list": { "method": "GET", "path": { "value": "" }, "queryParams": { "per_page": { "value": "20" } } },
"read": { "method": "GET", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Snippet ID.", "required": true } ] } },
"create": { "method": "POST", "path": { "value": "" }, "bodyTemplate": { "value": "{\"title\": \"{{title}}\", \"visibility\": \"{{visibility}}\", \"files\": {{files}}}", "placeholders": [
{ "name": "title", "type": "String", "description": "Snippet title.", "required": true },
{ "name": "visibility", "type": "String", "description": "Visibility level (public, internal, private).", "required": true, "options": ["public", "internal", "private"] },
{ "name": "files", "type": "String", "description": "JSON array of file objects with content and file_path.", "required": true }
] } },
"update": { "method": "PUT", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Snippet ID.", "required": true } ] }, "bodyTemplate": { "value": "{\"title\": \"{{title}}\"}", "placeholders": [ { "name": "title", "type": "String", "description": "New title.", "required": false } ] } },
"delete": { "method": "DELETE", "path": { "value": "/{{id}}", "placeholders": [ { "name": "id", "type": "Integer", "description": "Snippet ID.", "required": true } ] } }
}
}
]