1- #! /usr/bin/python3
1+ #!/usr/bin/python3
22import gitlab
33from gitlab .exceptions import GitlabCreateError
44
@@ -12,9 +12,10 @@ def get_project(name, force, gl):
1212 siteconf_id = gl .groups .get ("SITECONF" ).id
1313 try :
1414 logging .info ("Creating SITECONF project for {}" .format (name ))
15- return gl .projects .create ({"name" : "TEST" , "namespace_id" : siteconf_id })
16- except GitlabCreateError as e :
17- if e .error_message ["name" ][0 ] == "has already been taken" :
15+ #return gl.projects.create({"name": "TEST", "namespace_id": siteconf_id})
16+ return gl .projects .create ({"name" : name , "namespace_id" : siteconf_id })
17+ except (GitlabCreateError , GitlabHttpError ) as e :
18+ if e .error_message ['name' ][0 ] == "has already been taken" :
1819 if force :
1920 logging .info ("SITECONF project already exists, retrieving SITECONF project" )
2021 return gl .projects .get ("SITECONF/{}" .format (name ))
@@ -62,7 +63,7 @@ def get_project(name, force, gl):
6263 logging .info ("Adding empty file to repository" )
6364 try :
6465 project .files .create ({"file_path" : "JobConfig/site-local-config.xml" , "content" : "" , "branch" : "master" , "commit_message" : "First Commit" })
65- except GitlabCreateError as e :
66+ except ( GitlabCreateError , GitlabHttpError ) as e :
6667 if e .error_message == "A file with this name already exists" :
6768 logging .warning ("JobConfig/site-local-config.xml already exists" )
6869 else :
@@ -88,11 +89,13 @@ def get_project(name, force, gl):
8889
8990 logging .info ("Retrieving cmssst user id" )
9091 cmssst = gl .users .list (search = "cmssst" )[0 ].id
91- logging .info ("Adding the cmssst user as mantainer " )
92+ logging .info ("Adding the cmssst user as maintainer " )
9293 try :
9394 project .members .create ({"user_id" : cmssst , "access_level" : gitlab .MAINTAINER_ACCESS })
94- except GitlabCreateError as e :
95- if e .error_message == "Member already exists" :
95+ except (GitlabCreateError , GitlabHttpError ) as e :
96+ if e .error_message ['access_level' ][0 ] == "should be greater than or equal to Owner inherited membership from group siteconf" :
97+ pass
98+ elif e .error_message == "Member already exists" :
9699 logging .info ("The cmssst user is already a member, changing access level anyway" )
97100 user = project .members .get (cmssst )
98101 user .access_level = gitlab .MAINTAINER_ACCESS
0 commit comments