code: def do_repo_report(repos, report='full', output=sys.stdout, *args, **kwargs):
      
      for i, repo in enumerate(repos):
          log.debug(str((i, next(repo.origin_report()))))
          try:
              if repo is not None:
                  reportfunc = REPORT_TYPES.get(report)
                  if reportfunc is None:
                      raise Exception("Unrecognized report type: %r (%s)" %
                                      (report, ', '.join(REPORT_TYPES.keys())))
                  for l in reportfunc(repo, *args, **kwargs):
                      print(l, file=output)
          except Exception as e:
              log.error(repo)
              log.error(report)
              log.error(e)
              raise
  
          yield repo
docs: Do a repository report: call the report function for each Repository
  
      Args:
          repos (iterable): iterable of Repository instances
          report (string): report name
          output (writeable): output stream to print to
  
      Yields:
          Repository subclass