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,
},
};
}