async function getPrSha()

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