feat(gitlab): new GitLab project-security integration

GitLab API v4, 6 commands: list vulnerabilities, list/create issues, get
project, list audit events. Private-token auth, stdlib-only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Guillaume BOURGEOIS
2026-07-12 15:18:48 +02:00
parent 5f2e946c0a
commit bc100eef67
7 changed files with 396 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
id: gitlab
name: GitLab
version: 1.0.0
description: "GitLab (API v4) — project security and issue tracking: list project vulnerabilities, list and create issues, read a project, and list audit events. Private-token authentication; stdlib-only, no extra Python dependencies."
changelog: "1.0.0 — Initial release: list vulnerabilities, list/create issues, get project, list audit events."
category: devsecops
# Per-instance configuration. Auth header 'PRIVATE-TOKEN: <token>'.
config_schema:
properties:
base_url:
type: string
description: "GitLab URL"
default: "https://gitlab.com"
token:
type: string
description: "Personal/project access token"
x-soar-sensitive: true
required:
- token
commands:
- id: list_vulnerabilities
name: gitlab-list-vulnerabilities
description: "List a project's vulnerabilities."
risk: read
inputs_schema:
properties:
project_id: { type: string, description: "Project ID or URL-encoded path (namespace/project)" }
required: [project_id]
outputs_schema: { properties: {} }
- id: list_issues
name: gitlab-list-issues
description: "List a project's issues."
risk: read
inputs_schema:
properties:
project_id: { type: string, description: "Project ID or path" }
state: { type: string, description: "opened or closed (optional)" }
required: [project_id]
outputs_schema: { properties: {} }
- id: create_issue
name: gitlab-create-issue
description: "Create an issue in a project."
inputs_schema:
properties:
project_id: { type: string, description: "Project ID or path" }
title: { type: string, description: "Issue title" }
description: { type: string, description: "Issue description" }
labels: { type: string, description: "Comma-separated labels (optional)" }
required: [project_id, title]
outputs_schema: { properties: {} }
- id: get_project
name: gitlab-get-project
description: "Get a project's metadata."
risk: read
inputs_schema:
properties:
project_id: { type: string, description: "Project ID or path" }
required: [project_id]
outputs_schema: { properties: {} }
- id: list_audit_events
name: gitlab-list-audit-events
description: "List instance audit events."
risk: read
inputs_schema:
properties:
limit: { type: number, description: "Max events (default 50)" }
required: []
outputs_schema: { properties: {} }
- id: test_connection
name: gitlab-test-connection
description: "Verify the token (used by the Test button)."
risk: read
inputs_schema:
properties: {}
required: []
outputs_schema: { properties: {} }