execGit = async (cmd, options) => {
  debugLog('Running git command', cmd)
  try {
    const result = await spawn('git', [...NO_SUBMODULE_RECURSE, ...cmd], {
      ...options,
      cwd: options?.cwd ?? process.cwd(),
      stdin: 'ignore',
    })

    return result.stdout
  } catch (error) {
    if (error instanceof SubprocessError) {
      throw new Error(error.output, { cause: error })
    }

    throw error
  }
}
@type {(cmd: string[], options?: import('nano-spawn').Options) => Promise<string>}