docs: def obtain(self):
          """Retrieve the repository, clone if doesn't exist."""
          self.check_destination()
  
          url = self.url
  
          cmd = ['clone', '--progress']
          if self.git_shallow:
              cmd.extend(['--depth', '1'])
          if self.tls_verify:
              cmd.extend(['-c', 'http.sslVerify=false'])
          cmd.extend([url, self.path])
  
          self.info('Cloning.')
          self.run(cmd, log_in_real_time=True)
  
          if self.remotes:
              for r in self.remotes:
                  self.error('Adding remote %s <%s>' % (r['remote_name'], r['url']))
                  self.remote_set(name=r['remote_name'], url=r['url'])
  
          self.info('Initializing submodules.')
          self.run(['submodule', 'init'], log_in_real_time=True)
          cmd = ['submodule', 'update', '--recursive', '--init']
          cmd.extend(self.git_submodules)
          self.run(cmd, log_in_real_time=True)