export async function initializeJunieExecution()

in src/github/junie/prepare-junie.ts [27:85]


export async function initializeJunieExecution({
                                  context,
                                  octokit,
                                  tokenConfig,
                              }: PrepareJunieOptions) {

    const handle = await shouldHandle(context, octokit)

    if (!handle) {
        console.log("No need to run junie")
        core.setOutput(OUTPUT_VARS.SHOULD_SKIP, 'true');
        return;
    }
    core.setOutput(OUTPUT_VARS.SHOULD_SKIP, 'false');

    await prepareJunieCLIToken(context)

    await configureGitCredentials(context, tokenConfig)

    await postJunieWorkingStatusComment(octokit.rest, context);

    // Start Jira issue if this is a Jira-triggered workflow
    if (isJiraWorkflowDispatchEvent(context)) {
        try {
            const client = getJiraClient();
            await client.startIssue(context.payload.issueKey);
        } catch (jiraError) {
            console.warn('Failed to start Jira issue:', jiraError);
            // Don't fail the workflow if Jira update fails
        }
    }

    const branchInfo = await initializeJunieWorkspace(octokit, context);
    const mcpServers = context.inputs.allowedMcpServers ? context.inputs.allowedMcpServers.split(',') : []
    console.log(`MCP Servers enabled by user: ${mcpServers}`)

    // Get PR-specific info
    let commitSha
    let prNumber
    if (isPullRequestEvent(context)) {
        commitSha = context.payload.pull_request.head.sha;
        prNumber = context.entityNumber;
    }

    // Prepare MCP configuration with automatic server activation
    // - Inline comment server: enabled for PRs (requires commitSha)
    const mcpConfig = await prepareMcpConfig({
        junieWorkingDir: context.inputs.junieWorkingDir,
        allowedMcpServers: mcpServers,
        githubToken: tokenConfig.workingToken,
        owner: context.payload.repository.owner.login,
        repo: context.payload.repository.name,
        branchInfo: branchInfo,
        prNumber: prNumber,
        commitSha: commitSha
    })

    await prepareJunieTask(context, branchInfo, octokit, mcpConfig.enabledServers)
}