def create_gitlab_project( default_has_issues, default_has_wiki, gitlab_secure_config, options, project, description, homepage): created = False has_issues = 'has-issues' in options or default_has_issues has_wiki = 'has-wiki' in options or default_has_wiki secure_config = ConfigParser.ConfigParser() secure_config.read(gitlab_secure_config) # Project creation doesn't work via oauth glab = Gitlab(secure_config.get("gitlab", "url"), secure_config.get("gitlab", "key")) glab.auth() orgs = glab.Group() orgs_dict = dict(zip([o.name.lower() for o in orgs], orgs)) # Find the project's repo project_split = project.split('/', 1) org_name = project_split[0] if len(project_split) > 1: repo_name = project_split[1] else: repo_name = project org_name = 'ustack' try: org = orgs_dict[org_name.lower()] except Exception: # we do not have control of this github org ignore the project. return False if glab.search_projects(repo_name): return created project_info = {'name': repo_name, 'namespace_id': org.id, 'wiki_enabled': has_wiki, 'description': description, 'issues_enabled': has_issues} glab.Project(project_info).save() created = True return created