#35 Fix helper script - remove default pagure.io
Merged 4 years ago by zuul. Opened 4 years ago by fbo.
fbo/fedora-project-config helper2  into  master

@@ -6,6 +6,11 @@ 

  Indeed some specific settings are needed. See:

  https://fedoraproject.org/wiki/Zuul-based-ci#Configure_the_repository_for_Zuul

  

+ To create the API key:

+ - https://src.fedoraproject.org/settings

+ - API keys

+ - Create key with "Modify an existing project" right

+ 

  ## Usage:

  

  ```

@@ -9,8 +9,6 @@ 

  

  

  BASE_WH_URL = "https://softwarefactory-project.io/zuul/api/connection/%s/payload"

- ZUUL_WH_SRC_F_O = BASE_WH_URL % "src.fedoraproject.io"

- ZUUL_WH_PAGURE_IO = BASE_WH_URL % "pagure.io"

  

  

  class PagureAPIClientException(Exception):
@@ -79,10 +77,10 @@ 

          # return resp[0]

  

  

- def set_zuul_settings(client, project, gating):

+ def set_zuul_settings(client, project, gating, host):

      logging.debug("Get settings config on %s" % project)

      config = client.get_config(project)

-     config['Web-hooks'] = ZUUL_WH_SRC_F_O

+     config['Web-hooks'] = BASE_WH_URL % host

      config['pull_requests'] = True

      config['notify_on_pull-request_flag'] = True

      if gating:
@@ -102,13 +100,13 @@ 

      logging.debug("Adding zuul user as admin on %s" % project)

  

  

- def process(client, projects, gating):

+ def process(client, projects, gating, host):

      count = 1

      for project in projects:

          logging.info('[%s/%s] Applying setting for %s' % (

              count, len(projects), project))

          try:

-             set_zuul_settings(client, project, gating)

+             set_zuul_settings(client, project, gating, host)

              count += 1

          except Exception:

              logging.exception("Unable to set settings for %s" % project)
@@ -128,7 +126,7 @@ 

      parser = argparse.ArgumentParser()

      parser.add_argument(

          '--host', help='Pagure instance',

-         default='pagure.io')

+         default='src.fedoraproject.org')

      parser.add_argument(

          '--projects',

          help='Projects to set settings on (comma separated)')
@@ -157,9 +155,14 @@ 

          parser.print_help()

          sys.exit(1)

  

+     if args.host not in [

+             'pagure.io', 'src.fedoraproject.org']:

+         logging.info("%s is an invalid host" % args.host)

+         sys.exit(1)

+ 

      if args.projects:

          projects = args.projects.split(',')

      if args.from_yaml:

          projects = load_projects_from_yaml(

              args.from_yaml)

-     process(client, projects, args.gating)

+     process(client, projects, args.gating, args.host)