2026-07-17 16:22:38 -04:00
|
|
|
from typing import Any
|
|
|
|
|
|
|
|
|
|
from ..utils.linear import search_issues
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async def linear_search_issues(
|
2026-07-20 15:54:16 -04:00
|
|
|
query: str | None = None,
|
2026-07-17 16:22:38 -04:00
|
|
|
team_id: str | None = None,
|
2026-07-20 15:54:16 -04:00
|
|
|
filters: dict[str, Any] | None = None,
|
2026-07-17 16:22:38 -04:00
|
|
|
limit: int = 10,
|
|
|
|
|
include_archived: bool = False,
|
|
|
|
|
include_comments: bool = False,
|
|
|
|
|
after: str | None = None,
|
|
|
|
|
) -> dict[str, Any]:
|
2026-07-20 15:54:16 -04:00
|
|
|
"""Search Linear issues by text, structured filters, or both.
|
2026-07-17 16:22:38 -04:00
|
|
|
|
|
|
|
|
Args:
|
2026-07-20 15:54:16 -04:00
|
|
|
query: Optional free-text query over issue content.
|
2026-07-17 16:22:38 -04:00
|
|
|
team_id: Optional team UUID used to restrict matches to that team.
|
2026-07-20 15:54:16 -04:00
|
|
|
filters: Optional Linear IssueFilter object for labels, state, project, assignee, and more.
|
2026-07-17 16:22:38 -04:00
|
|
|
limit: Maximum results to return, from 1 to 50.
|
|
|
|
|
include_archived: Whether to include archived issues.
|
2026-07-20 15:54:16 -04:00
|
|
|
include_comments: Whether free-text search includes issue comments.
|
2026-07-17 16:22:38 -04:00
|
|
|
after: Optional pagination cursor from a previous result's page_info.endCursor.
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
Matching issues plus total_count and page_info for pagination.
|
|
|
|
|
"""
|
|
|
|
|
return await search_issues(
|
|
|
|
|
query=query,
|
|
|
|
|
team_id=team_id,
|
2026-07-20 15:54:16 -04:00
|
|
|
filters=filters,
|
2026-07-17 16:22:38 -04:00
|
|
|
limit=limit,
|
|
|
|
|
include_archived=include_archived,
|
|
|
|
|
include_comments=include_comments,
|
|
|
|
|
after=after,
|
|
|
|
|
)
|