export async function qodana()

in gitlab/src/utils.ts [207:246]


export async function qodana(args: string[] = []): Promise<number> {
  process.env = {
    ...process.env,
    NONINTERACTIVE: '1'
  }
  if (args.length === 0) {
    const inputs = getInputs()
    args = getQodanaScanArgs(inputs.args, inputs.resultsDir, inputs.cacheDir)
    if (inputs.prMode && isMergeRequest()) {
      const sha = await getPrSha()
      if (sha !== '') {
        args.push('--commit', sha)
      }
    }
    if (isMergeRequest()) {
      const sourceBranch =
        process.env.QODANA_BRANCH ||
        process.env.CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
      if (sourceBranch) {
        process.env.QODANA_BRANCH = sourceBranch
      }
    }
  }
  return new Promise(resolve => {
    const proc = spawn(EXECUTABLE, args, {stdio: 'inherit'})
    proc.on('close', (code, signal) => {
      if (code == null) {
        console.error(`Qodana process terminated by signal: ${signal}`)
        resolve(1)
      } else {
        resolve(code)
      }
    })

    proc.on('error', err => {
      console.error(err.message)
      resolve(127)
    })
  })
}