def METHOD_NAME(self, statepath: str, logger: Logger) -> bool:
    Runner(logger=logger).run(
        'timeout', self._timeout_arg,
        'git', 'clone', '--progress', '--no-checkout',
        self._depth_arg,
        '--branch', self._branch,
        self._url,
        statepath
    )
    r = Runner(logger=logger, cwd=statepath)
    r.run('git', 'config', 'core.sparsecheckout', 'true')
    self._setup_sparse_checkout(statepath)
    r.run('git', 'checkout')
    return True