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)
}