docs: def rebuild_pipelines(*args):
      """Entry point for rebuilding pipelines.
  
      Use to rebuild all pipelines or a specific group.
      """
      rebuild_all = False
      rebuild_project = os.getenv("REBUILD_PROJECT")
  
      if args:
          LOG.debug('Incoming arguments: %s', args)
          command_args, *_ = args
          rebuild_all = command_args.parsed.all
          rebuild_project = command_args.parsed.project
  
      if rebuild_project == 'ALL':
          rebuild_all = True
  
      if rebuild_all:
          LOG.info('Rebuilding all projects.')
      elif rebuild_project is None:
          msg = 'No REBUILD_PROJECT variable found'
          LOG.fatal(msg)
          raise SystemExit('Error: {0}'.format(msg))
      else:
          LOG.info('Rebuilding project: %s', rebuild_project)
  
      all_apps = utils.get_all_apps()
  
      for apps in all_apps:
          if 'repoProjectKey' not in apps:
              LOG.info('Skipping %s. No project key found', apps['name'])
              continue
  
          app_name = '{}/{}'.format(apps['repoProjectKey'], apps['repoSlug'])
          if apps['repoProjectKey'].lower() == rebuild_project.lower() or rebuild_all:
              os.environ["PROJECT"] = apps['repoProjectKey']
              os.environ["GIT_REPO"] = apps['repoSlug']
              LOG.info('Rebuilding pipelines for %s', app_name)
              runner = ForemastRunner()
              try:
                  runner.write_configs()
                  runner.create_pipeline()
                  runner.cleanup()
              except Exception:  # pylint: disable=broad-except
                  LOG.warning('Error updating pipeline for %s', app_name)