function extractJiraEventData()

in src/github/context.ts [313:355]


function extractJiraEventData(workflowPayload: WorkflowDispatchEvent, context: JunieWorkflowContext): JunieExecutionContext {
    const issueKey = workflowPayload.inputs?.issue_key as string;
    const issueSummary = workflowPayload.inputs?.issue_summary as string;
    const issueDescription = workflowPayload.inputs?.issue_description as string;

    if (!issueKey || !issueSummary) {
        throw new Error(`Missing Jira issue data in workflow payload: ${JSON.stringify(workflowPayload)}`);
    }

    // Parse comments and attachments JSON arrays (default to empty arrays)
    const comments = workflowPayload.inputs?.issue_comments
        ? JSON.parse(workflowPayload.inputs.issue_comments as string)
        : [];

    const attachments = workflowPayload.inputs?.issue_attachments
        ? JSON.parse(workflowPayload.inputs.issue_attachments as string)
        : [];

    if (comments.length > 0) {
        console.log(`✓ Parsed ${comments.length} comment(s) from Jira issue`);
    }

    if (attachments.length > 0) {
        console.log(`✓ Parsed ${attachments.length} attachment(s) from Jira issue`);
    }

    console.log(`✓ Jira issue detected: ${issueKey} - ${issueSummary}`);

    // Return Jira-specific context with JiraWorkflowDispatchEvent payload
    return {
        ...context,
        eventName: "workflow_dispatch",
        payload: {
            ...workflowPayload,
            issueKey,
            issueSummary,
            issueDescription: issueDescription || '',
            comments,
            attachments,
            action: JIRA_EVENT_ACTION,
        },
    };
}