GitLab · Schema
GitLab Issue
A GitLab issue used for tracking work, bugs, feature requests, or incidents within a project.
CodePlatformSoftware DevelopmentSource Control
Properties
| Name | Type | Description |
|---|---|---|
| id | integer | The globally unique identifier of the issue. |
| iid | integer | The internal project-scoped ID of the issue. |
| project_id | integer | The ID of the project the issue belongs to. |
| title | string | The title of the issue. |
| description | stringnull | The description of the issue, supporting Markdown syntax. |
| state | string | The current state of the issue. |
| issue_type | string | The type of issue. |
| type | string | The GitLab-internal issue type designation. |
| labels | array | Labels applied to the issue. |
| milestone | object | The milestone the issue is associated with. |
| author | object | |
| assignees | array | Users assigned to work on this issue. |
| closed_by | object | The user who closed the issue. |
| confidential | boolean | Whether the issue is confidential and visible only to project members with Reporter access or above. |
| weight | integernull | The weight assigned to the issue for effort estimation. Requires Premium or Ultimate tier. |
| severity | string | The severity level of the issue. Used for incidents. |
| upvotes | integer | The number of upvotes the issue has received. |
| downvotes | integer | The number of downvotes the issue has received. |
| user_notes_count | integer | The number of user-authored comments on the issue. |
| merge_requests_count | integer | The number of merge requests related to this issue. |
| references | object | |
| web_url | string | The URL to view the issue in a browser. |
| time_stats | object | |
| task_completion_status | object | |
| has_tasks | boolean | Whether the issue description contains task list items. |
| due_date | stringnull | The due date of the issue in YYYY-MM-DD format. |
| created_at | string | The date and time the issue was created. |
| updated_at | string | The date and time the issue was last updated. |
| closed_at | stringnull | The date and time the issue was closed. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://gitlab.com/schemas/gitlab/issue.json",
"title": "GitLab Issue",
"description": "A GitLab issue used for tracking work, bugs, feature requests, or incidents within a project.",
"type": "object",
"required": ["id", "iid", "project_id", "title", "state"],
"properties": {
"id": {
"type": "integer",
"description": "The globally unique identifier of the issue."
},
"iid": {
"type": "integer",
"description": "The internal project-scoped ID of the issue."
},
"project_id": {
"type": "integer",
"description": "The ID of the project the issue belongs to."
},
"title": {
"type": "string",
"description": "The title of the issue.",
"maxLength": 255
},
"description": {
"type": ["string", "null"],
"description": "The description of the issue, supporting Markdown syntax.",
"maxLength": 1048576
},
"state": {
"type": "string",
"enum": ["opened", "closed"],
"description": "The current state of the issue."
},
"issue_type": {
"type": "string",
"enum": ["issue", "incident", "test_case", "task"],
"description": "The type of issue."
},
"type": {
"type": "string",
"description": "The GitLab-internal issue type designation."
},
"labels": {
"type": "array",
"description": "Labels applied to the issue.",
"items": {
"type": "string"
}
},
"milestone": {
"oneOf": [
{ "$ref": "#/$defs/Milestone" },
{ "type": "null" }
],
"description": "The milestone the issue is associated with."
},
"author": {
"$ref": "#/$defs/UserSummary"
},
"assignees": {
"type": "array",
"description": "Users assigned to work on this issue.",
"items": {
"$ref": "#/$defs/UserSummary"
}
},
"closed_by": {
"oneOf": [
{ "$ref": "#/$defs/UserSummary" },
{ "type": "null" }
],
"description": "The user who closed the issue."
},
"confidential": {
"type": "boolean",
"description": "Whether the issue is confidential and visible only to project members with Reporter access or above."
},
"weight": {
"type": ["integer", "null"],
"minimum": 0,
"description": "The weight assigned to the issue for effort estimation. Requires Premium or Ultimate tier."
},
"severity": {
"type": "string",
"enum": ["UNKNOWN", "INFO", "LOW", "MEDIUM", "HIGH", "CRITICAL"],
"description": "The severity level of the issue. Used for incidents."
},
"upvotes": {
"type": "integer",
"minimum": 0,
"description": "The number of upvotes the issue has received."
},
"downvotes": {
"type": "integer",
"minimum": 0,
"description": "The number of downvotes the issue has received."
},
"user_notes_count": {
"type": "integer",
"minimum": 0,
"description": "The number of user-authored comments on the issue."
},
"merge_requests_count": {
"type": "integer",
"minimum": 0,
"description": "The number of merge requests related to this issue."
},
"references": {
"$ref": "#/$defs/References"
},
"web_url": {
"type": "string",
"format": "uri",
"description": "The URL to view the issue in a browser."
},
"time_stats": {
"$ref": "#/$defs/TimeStats"
},
"task_completion_status": {
"$ref": "#/$defs/TaskCompletionStatus"
},
"has_tasks": {
"type": "boolean",
"description": "Whether the issue description contains task list items."
},
"due_date": {
"type": ["string", "null"],
"format": "date",
"description": "The due date of the issue in YYYY-MM-DD format."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "The date and time the issue was created."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "The date and time the issue was last updated."
},
"closed_at": {
"type": ["string", "null"],
"format": "date-time",
"description": "The date and time the issue was closed."
}
},
"$defs": {
"UserSummary": {
"type": "object",
"description": "A simplified representation of a GitLab user.",
"required": ["id", "username"],
"properties": {
"id": {
"type": "integer",
"description": "The unique identifier of the user."
},
"username": {
"type": "string",
"description": "The username of the user."
},
"name": {
"type": "string",
"description": "The display name of the user."
},
"state": {
"type": "string",
"enum": ["active", "blocked", "deactivated"],
"description": "The current state of the user account."
},
"avatar_url": {
"type": ["string", "null"],
"format": "uri",
"description": "URL to the user's avatar image."
},
"web_url": {
"type": "string",
"format": "uri",
"description": "URL to the user's GitLab profile page."
}
}
},
"Milestone": {
"type": "object",
"description": "A milestone that groups issues and merge requests by a target date.",
"properties": {
"id": {
"type": "integer",
"description": "The unique identifier of the milestone."
},
"iid": {
"type": "integer",
"description": "The project-scoped ID of the milestone."
},
"project_id": {
"type": "integer",
"description": "The ID of the project the milestone belongs to."
},
"title": {
"type": "string",
"description": "The title of the milestone."
},
"description": {
"type": ["string", "null"],
"description": "The description of the milestone."
},
"state": {
"type": "string",
"enum": ["active", "closed"],
"description": "The current state of the milestone."
},
"due_date": {
"type": ["string", "null"],
"format": "date",
"description": "The due date of the milestone."
},
"web_url": {
"type": "string",
"format": "uri",
"description": "URL to view the milestone in a browser."
}
}
},
"References": {
"type": "object",
"description": "Reference strings for the issue.",
"properties": {
"short": {
"type": "string",
"description": "Short reference format, for example #42."
},
"relative": {
"type": "string",
"description": "Relative reference format including project path."
},
"full": {
"type": "string",
"description": "Full reference format including namespace and project path."
}
}
},
"TimeStats": {
"type": "object",
"description": "Time tracking statistics for the issue.",
"properties": {
"time_estimate": {
"type": "integer",
"minimum": 0,
"description": "Estimated time to complete the issue in seconds."
},
"total_time_spent": {
"type": "integer",
"minimum": 0,
"description": "Total time logged against the issue in seconds."
},
"human_time_estimate": {
"type": ["string", "null"],
"description": "Human-readable time estimate, for example 1d 2h."
},
"human_total_time_spent": {
"type": ["string", "null"],
"description": "Human-readable total time spent, for example 30m."
}
}
},
"TaskCompletionStatus": {
"type": "object",
"description": "Completion status for task list items in the issue description.",
"properties": {
"count": {
"type": "integer",
"minimum": 0,
"description": "Total number of task list items."
},
"completed_count": {
"type": "integer",
"minimum": 0,
"description": "Number of completed task list items."
}
}
}
}
}