code: def aggregate_repo(repo, args, sem, err_queue):
      
      try:
          logger.debug('%s' % repo)
          dirmatch = args.dirmatch
          if not match_dir(repo.cwd, dirmatch):
              logger.info("Skip %s", repo.cwd)
              return
          if args.command == 'aggregate':
              repo.aggregate()
              if args.do_push:
                  repo.push()
          elif args.command == 'show-closed-prs':
              repo.show_closed_prs()
          elif args.command == 'show-all-prs':
              repo.show_all_prs()
      except Exception:
          err_queue.put_nowait(sys.exc_info())
      finally:
          sem.release()
docs: Aggregate one repo according to the args.
  
      Args:
           repo (Repo): The repository to aggregate.
           args (argparse.Namespace): CLI arguments.