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.
View JSON Schema on GitHub

JSON Schema

gitlab-issue-schema.json Raw ↑
{
  "$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."
        }
      }
    }
  }
}