docs: def get_repo(repo, **kwargs):
      '''
      Display a repo from the sources.list / sources.list.d
  
      The repo passed in needs to be a complete repo entry.
  
      CLI Examples:
  
      .. code-block:: bash
  
          salt '*' pkg.get_repo "myrepo definition"
      '''
      _check_apt()
      ppa_auth = kwargs.get('ppa_auth', None)
      # we have to be clever about this since the repo definition formats
      # are a bit more "loose" than in some other distributions
      if repo.startswith('ppa:') and __grains__['os'] in ('Ubuntu', 'Mint', 'neon'):
          # This is a PPA definition meaning special handling is needed
          # to derive the name.
          dist = __grains__['lsb_distrib_codename']
          owner_name, ppa_name = repo[4:].split('/')
          if ppa_auth:
              auth_info = '{0}@'.format(ppa_auth)
              repo = LP_PVT_SRC_FORMAT.format(auth_info, owner_name,
                                              ppa_name, dist)
          else:
              if HAS_SOFTWAREPROPERTIES:
                  try:
                      if hasattr(softwareproperties.ppa, 'PPAShortcutHandler'):
                          repo = softwareproperties.ppa.PPAShortcutHandler(
                              repo).expand(dist)[0]
                      else:
                          repo = softwareproperties.ppa.expand_ppa_line(
                              repo,
                              dist)[0]
                  except NameError as name_error:
                      raise CommandExecutionError(
                          'Could not find ppa {0}: {1}'.format(repo, name_error)
                      )
              else:
                  repo = LP_SRC_FORMAT.format(owner_name, ppa_name, dist)
  
      repos = list_repos()
  
      if repos:
          try:
              repo_type, repo_architectures, repo_uri, repo_dist, repo_comps = _split_repo_str(repo)
              if ppa_auth:
                  uri_match = re.search('(http[s]?://)(.+)', repo_uri)
                  if uri_match:
                      if not uri_match.group(2).startswith(ppa_auth):
                          repo_uri = '{0}{1}@{2}'.format(uri_match.group(1),
                                                         ppa_auth,
                                                         uri_match.group(2))
          except SyntaxError:
              raise CommandExecutionError(
                  'Error: repo \'{0}\' is not a well formatted definition'
                  .format(repo)
              )
  
          for source in six.itervalues(repos):
              for sub in source:
                  if (sub['type'] == repo_type and
                      # strip trailing '/' from repo_uri, it's valid in definition
                      # but not valid when compared to persisted source
                      sub['uri'].rstrip('/') == repo_uri.rstrip('/') and
                          sub['dist'] == repo_dist):
                      if not repo_comps:
                          return sub
                      for comp in repo_comps:
                          if comp in sub.get('comps', []):
                              return sub
      return {}