Open Context Protocol is live! 🚀 Read the launch post
getProjectComponentsPaginated

getProjectComponentsPaginated

Get project components paginated

Details

  • Method: GET
  • Path: /rest/api/3/project/{projectIdOrKey}/component
  • Operation ID: getProjectComponentsPaginated

Parameters

{
  "projectIdOrKey": {
    "description": "The project ID or project key (case sensitive).",
    "required": true,
    "location": "path",
    "type": "string"
  },
  "startAt": {
    "description": "The index of the first item to return in a page of results (page offset).",
    "required": false,
    "location": "query",
    "type": "integer",
    "format": "int64"
  },
  "maxResults": {
    "description": "The maximum number of items to return per page.",
    "required": false,
    "location": "query",
    "type": "integer",
    "format": "int32"
  },
  "orderBy": {
    "description": "[Order](#ordering) the results by a field:\n\n *  `description` Sorts by the component description.\n *  `issueCount` Sorts by the count of issues associated with the component.\n *  `lead` Sorts by the user key of the component's project lead.\n *  `name` Sorts by component name.",
    "required": false,
    "location": "query",
    "type": "string",
    "enum": [
      "description",
      "-description",
      "+description",
      "issueCount",
      "-issueCount",
      "+issueCount",
      "lead",
      "-lead",
      "+lead",
      "name",
      "-name",
      "+name"
    ]
  },
  "componentSource": {
    "description": "The source of the components to return. Can be `jira` (default), `compass` or `auto`. When `auto` is specified, the API will return connected Compass components if the project is opted into Compass, otherwise it will return Jira components. Defaults to `jira`.",
    "required": false,
    "location": "query",
    "type": "string",
    "enum": [
      "jira",
      "compass",
      "auto"
    ]
  },
  "query": {
    "description": "Filter the results using a literal string. Components with a matching `name` or `description` are returned (case insensitive).",
    "required": false,
    "location": "query",
    "type": "string"
  }
}

Response Schema

{
  "additionalProperties": false,
  "description": "A page of items.",
  "properties": {
    "isLast": {
      "description": "Whether this is the last page.",
      "readOnly": true,
      "type": "boolean"
    },
    "maxResults": {
      "description": "The maximum number of items that could be returned.",
      "format": "int32",
      "readOnly": true,
      "type": "integer"
    },
    "nextPage": {
      "description": "If there is another page of results, the URL of the next page.",
      "format": "uri",
      "readOnly": true,
      "type": "string"
    },
    "self": {
      "description": "The URL of the page.",
      "format": "uri",
      "readOnly": true,
      "type": "string"
    },
    "startAt": {
      "description": "The index of the first item returned.",
      "format": "int64",
      "readOnly": true,
      "type": "integer"
    },
    "total": {
      "description": "The number of items returned.",
      "format": "int64",
      "readOnly": true,
      "type": "integer"
    },
    "values": {
      "description": "The list of items.",
      "items": {
        "additionalProperties": false,
        "description": "Details about a component with a count of the issues it contains.",
        "properties": {
          "assignee": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "description": "The details of the user associated with `assigneeType`, if any. See `realAssignee` for details of the user assigned to issues created with this component."
          },
          "assigneeType": {
            "description": "The nominal user type used to determine the assignee for issues created with this component. See `realAssigneeType` for details on how the type of the user, and hence the user, assigned to issues is determined. Takes the following values:\n\n *  `PROJECT_LEAD` the assignee to any issues created with this component is nominally the lead for the project the component is in.\n *  `COMPONENT_LEAD` the assignee to any issues created with this component is nominally the lead for the component.\n *  `UNASSIGNED` an assignee is not set for issues created with this component.\n *  `PROJECT_DEFAULT` the assignee to any issues created with this component is nominally the default assignee for the project that the component is in.",
            "enum": [
              "PROJECT_DEFAULT",
              "COMPONENT_LEAD",
              "PROJECT_LEAD",
              "UNASSIGNED"
            ],
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "description": "The description for the component.",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "description": "The unique identifier for the component.",
            "readOnly": true,
            "type": "string"
          },
          "isAssigneeTypeValid": {
            "description": "Whether a user is associated with `assigneeType`. For example, if the `assigneeType` is set to `COMPONENT_LEAD` but the component lead is not set, then `false` is returned.",
            "readOnly": true,
            "type": "boolean"
          },
          "issueCount": {
            "description": "Count of issues for the component.",
            "format": "int64",
            "readOnly": true,
            "type": "integer"
          },
          "lead": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "description": "The user details for the component's lead user."
          },
          "name": {
            "description": "The name for the component.",
            "readOnly": true,
            "type": "string"
          },
          "project": {
            "description": "The key of the project to which the component is assigned.",
            "readOnly": true,
            "type": "string"
          },
          "projectId": {
            "description": "Not used.",
            "format": "int64",
            "readOnly": true,
            "type": "integer"
          },
          "realAssignee": {
            "allOf": [
              {
                "$ref": "#/components/schemas/User"
              }
            ],
            "description": "The user assigned to issues created with this component, when `assigneeType` does not identify a valid assignee."
          },
          "realAssigneeType": {
            "description": "The type of the assignee that is assigned to issues created with this component, when an assignee cannot be set from the `assigneeType`. For example, `assigneeType` is set to `COMPONENT_LEAD` but no component lead is set. This property is set to one of the following values:\n\n *  `PROJECT_LEAD` when `assigneeType` is `PROJECT_LEAD` and the project lead has permission to be assigned issues in the project that the component is in.\n *  `COMPONENT_LEAD` when `assignee`Type is `COMPONENT_LEAD` and the component lead has permission to be assigned issues in the project that the component is in.\n *  `UNASSIGNED` when `assigneeType` is `UNASSIGNED` and Jira is configured to allow unassigned issues.\n *  `PROJECT_DEFAULT` when none of the preceding cases are true.",
            "enum": [
              "PROJECT_DEFAULT",
              "COMPONENT_LEAD",
              "PROJECT_LEAD",
              "UNASSIGNED"
            ],
            "readOnly": true,
            "type": "string"
          },
          "self": {
            "description": "The URL for this count of the issues contained in the component.",
            "format": "uri",
            "readOnly": true,
            "type": "string"
          }
        },
        "type": "object"
      },
      "readOnly": true,
      "type": "array"
    }
  },
  "type": "object"
}

Usage

from ocp_agent import OCPAgent

agent = OCPAgent()
await agent.register_api('jira')

# Call this tool
result = await agent.call_tool('getProjectComponentsPaginated', {
    # Add required parameters here
})