#134 Fix loading tickets/requests from git
Merged 8 years ago by . Opened 8 years ago by pingou.

file modified
+36 -16
@@ -276,10 +276,19 @@ 

      """

      user = None

  

-     username = jsondata.get(key, {}).get('name')

-     fullname = jsondata.get(key, {}).get('fullname')

-     useremails = jsondata.get(key, {}).get('emails')

-     default_email = jsondata.get(key, {}).get('default_email')

+     username = fullname = useremails = default_email = None

+ 

+     data = json.data.get(key, None)

+ 

+     if data:

+         username = data.get('name')

+         fullname = data.get('fullname')

+         useremails = data.get('emails')

+         default_email = data.get('default_email')

+ 

+     if not default_email and useremails:

+         default_email = useremails[0]

+ 

      if not username and not useremails:

          return

  
@@ -325,18 +334,29 @@ 

                  session, jsondata.get('parent'),

                  gitfolder, forkfolder, docfolder, ticketfolder, requestfolder)

  

-         pagure.lib.new_project(

-             session,

-             user=user.username,

-             name=name,

-             description=jsondata.get('description'),

-             parent_id=parent.id if parent else None,

-             blacklist=pagure.APP.config.get('BLACKLISTED_PROJECTS', []),

-             gitfolder=forkfolder if parent else gitfolder,

-             docfolder=docfolder,

-             ticketfolder=ticketfolder,

-             requestfolder=requestfolder,

-         )

+             pagure.lib.fork_project(

+                 session=session,

+                 repo=parent,

+                 gitfolder=pagure.APP.config['GIT_FOLDER'],

+                 forkfolder=pagure.APP.config['FORK_FOLDER'],

+                 docfolder=pagure.APP.config['DOCS_FOLDER'],

+                 ticketfolder=pagure.APP.config['TICKETS_FOLDER'],

+                 requestfolder=pagure.APP.config['REQUESTS_FOLDER'],

+                 user=user.username)

+ 

+         else:

+             pagure.lib.new_project(

+                 session,

+                 user=user.username,

+                 name=name,

+                 description=jsondata.get('description'),

+                 parent_id=parent.id if parent else None,

+                 blacklist=pagure.APP.config.get('BLACKLISTED_PROJECTS', []),

+                 gitfolder=forkfolder if parent else gitfolder,

+                 docfolder=docfolder,

+                 ticketfolder=ticketfolder,

+                 requestfolder=requestfolder,

+             )

  

          session.commit()

          project = pagure.lib.get_project(session, name, user=user.username)

no initial comment

Could you avoid duplicating this over and over by just saying something like

username = fullname = useremails = default_email = None

data = json.data.get(key, None)

if data:
    username = data.get('name')
    fullname = data.get('fullname')
    useremails = data.get('emails')
    default_email = data.get('default_email')

Could you avoid duplicating this over and over by just saying something like:

username = fullname = useremails = default_email = None

data = json.data.get(key, None)

if data:
    username = data.get('name')
    fullname = data.get('fullname')
    useremails = data.get('emails')
    default_email = data.get('default_email')

Adjusted as describe and merging,

Thanks for the review!

Metadata