Skip to content

Built for people who want to own their automations. Join the waitlist for an invite.

Package listing

@kody/atlassian

src/search-jira.ts

24 lines · 660 B · TypeScript
import { atlassianMcpSetupMessage, callAtlassianMcp, firstArray } from './mcp.ts'

type SearchJiraInput = {
	jql?: string
	maxResults?: number
}

export default async function searchJira(input: SearchJiraInput = {}) {
	const jql = input.jql?.trim() || 'assignee = currentUser() ORDER BY updated DESC'
	const maxResults = input.maxResults ?? 10
	const mcp = await callAtlassianMcp(
		['searchJiraIssuesUsingJql', 'search_jira_issues_using_jql', 'search', 'jira_search'],
		{ jql, maxResults },
	)
	if (!mcp) {
		throw new Error(atlassianMcpSetupMessage())
	}
	return {
		via: 'mcp',
		tool: mcp.tool,
		jql,
		issues: firstArray(mcp.result) ?? mcp.result,
	}
}