in gitlab/src/utils.ts [248:277]
async function getPrSha(): Promise<string> {
try {
if (process.env.QODANA_PR_SHA) {
return process.env.QODANA_PR_SHA
}
if (isMergeRequest()) {
const sourceBranch = process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
const targetBranch = process.env.CI_MERGE_REQUEST_TARGET_BRANCH_NAME
if (!sourceBranch || !targetBranch) {
console.warn(
`Source or target branch is not defined, falling back to regular scan`
)
return ''
}
await gitOutput(['fetch', 'origin'])
const output = await gitOutput([
'merge-base',
'origin/' + targetBranch,
'origin/' + sourceBranch
])
return output.stdout.trim()
}
return ''
} catch (e) {
console.warn(
`Failed to determine merge base for PR mode, falling back to regular scan: ${(e as Error).message}`
)
return ''
}
}