async function postJiraFeedback()

in src/github/operations/comments/feedback.ts [432:463]


async function postJiraFeedback(data: FinishFeedbackData): Promise<void> {
    const jiraPayload = data.parsedContext.payload as JiraIssuePayload;
    const client = getJiraClient();
    const {owner, name} = data.parsedContext.payload.repository;
    const ownerLogin = owner.login;

    console.log(`Updating Jira issue ${jiraPayload.issueKey}...`);

    let comment: string;

    if (data.isJobFailed) {
        console.log(`Add failure comment to Jira issue ${jiraPayload.issueKey}`);
        comment = getFailedBody(ownerLogin, name, data.parsedContext.runId, data.failureData!);
    } else {
        console.log(`Add success comment to Jira issue ${jiraPayload.issueKey}`);
        const repoFullName = `${ownerLogin}/${name}`;
        comment = getSuccessBody(repoFullName, data.successData!);

        // Move to "In Review" if PR was created
        if (data.successData?.actionToDo === 'CREATE_PR' && data.successData.prLink) {
            console.log(`Move Jira issue ${jiraPayload.issueKey} to "In Review"`);
            await client.moveIssueToReview(jiraPayload.issueKey);
        }
    }

    if (comment) {
        // Convert Markdown to Atlassian Document Format (ADF)
        const jiraComment = convertMarkdownToADF(comment);
        await client.addComment(jiraPayload.issueKey, jiraComment);
        console.log(`✓ Successfully updated Jira issue ${jiraPayload.issueKey}`);
    }
}