docs: def get_parser():
      """Return :py:class:`argparse.ArgumentParser` instance for CLI."""
  
      main_parser = argparse.ArgumentParser(
          formatter_class=argparse.RawTextHelpFormatter)
  
      main_parser.add_argument(
          '-c', '--config',
          dest='config',
          type=str,
          nargs='?',
          help='Pull the latest repositories from config(s)'
      ).completer = argcomplete.completers.FilesCompleter(
          allowednames=('.yaml', '.yml', '.json'), directories=False
      )
  
      main_parser.add_argument(
          '-p', '--push',
          dest='do_push',
          action='store_true', default=False,
          help='Push result to target',
      )
  
      main_parser.add_argument(
          '-d', '--dirmatch',
          dest='dirmatch',
          type=str,
          nargs='?',
          help='Pull only from the directories. Accepts fnmatch(1)'
               'by commands'
      )
      main_parser.add_argument(
          '--log-level',
          default='INFO',
          dest='log_level',
          type=_log_level_string_to_int,
          nargs='?',
          help='Set the logging output level. {0}'.format(_LOG_LEVEL_STRINGS))
  
      main_parser.add_argument(
          '-e', '--expand-env',
          dest='expand_env',
          default=False,
          action='store_true',
          help='Expand environment variables in configuration file',
      )
      main_parser.add_argument(
          '-f', '--force',
          dest='force',
          default=False,
          action='store_true',
          help='Force cleanup and aggregation on dirty repositories.',
      )
  
      main_parser.add_argument(
          '-j', '--jobs',
          dest='jobs',
          default=1,
          type=int,
          help='Amount of processes to use when aggregating repos. '
               'This is useful when there are a lot of large repos. '
               'Set `1` or less to disable multiprocessing (default).',
      )
  
      main_parser.add_argument(
          'command',
          nargs='?',
          default='aggregate',
          help='aggregate (default): run the aggregation process.\n'
               'show-all-prs: show GitHub pull requests in merge sections\n'
               '              such pull requests are indentified as having\n'
               '              a github.com remote and a\n'
               '              refs/pull/NNN/head ref in the merge section.\n'
               'show-closed-prs: show pull requests that are not open anymore.\n'
      )
  
      return main_parser