Skip to content
Snippets Groups Projects
Commit 06fc9640 authored by Sam Gleske's avatar Sam Gleske
Browse files

Working create project if doesn't exist

in gitlab
parent b98bfdea
No related branches found
No related tags found
No related merge requests found
......@@ -4,5 +4,5 @@
. "$(dirname $0)/config.sh"
cd $(dirname $0)
export token_secret gitlab_url gitlab_namespace
python lib/create_gitlab_project.py test2
export token_secret gitlab_url gitlab_namespace gitlab_user
python lib/create_gitlab_project.py test3
......@@ -6,3 +6,4 @@ token_secret="$(head -n1 /home/gitmirror/private_token)"
#This group will contain all code mirrors
gitlab_namespace="Mirrors"
gitlab_url="https://comet.irt.drexel.edu"
gitlab_user="gitmirror"
#!/usr/bin/env python
from sys import argv,exit
from sys import argv,exit,stderr
import os
import gitlab
......@@ -9,6 +9,7 @@ try:
token_secret=os.environ['token_secret']
gitlab_url=os.environ['gitlab_url']
gitlab_namespace=os.environ['gitlab_namespace']
gitlab_user=os.environ['gitlab_user']
except KeyError:
print "Environment config missing. Do not run this script standalone."
exit(1)
......@@ -18,25 +19,42 @@ except IndexError:
git=gitlab.Gitlab(gitlab_url,token_secret)
#Locate the group
found_group=False
for group in git.getGroups():
if group['name'] == gitlab_namespace:
found_group=group
break
else:
if not found_group:
print "Project namespace (user or group) not found or user does not have permission of existing group."
exit(1)
def findgroup(gname):
#Locate the group
found_group=False
for group in git.getGroups():
if group['name'] == gname:
return group
else:
if not found_group:
print >> stderr, "Project namespace (user or group) not found or user does not have permission of existing group."
exit(1)
def findproject(gname,pname):
for project in git.getProjects():
if project['namespace']['name'] == gname and project['name'] == pname:
return project
else:
return False
def createproject(pname):
description="Public mirror of %s." % project_name
new_project=git.createProject(pname,description=description,issues_enabled=False,wall_enabled=False,merge_requests_enabled=False,wiki_enabled=False,snippets_enabled=False)
new_project=findproject(gitlab_user,pname)
new_project=git.moveProject(found_group['id'],new_project['id'])
if findproject(gitlab_namespace,pname):
return findproject(gitlab_namespace,pname)
else:
return False
found_group=findgroup(gitlab_namespace)
found_project=findproject(gitlab_namespace,project_name)
#Locate existing repository, if it doesn't exist then create it in gitlab
found_project=False
for project in git.getProjects():
if project['namespace']['name'] == gitlab_namespace and project['name'] == project_name:
found_project=project
break
if not found_project:
print "not found"
pass
found_project=createproject(project_name)
if not found_project:
#print >> stderr, "There was a problem creating %s/%s. Did you give %s user Admin rights in gitlab?" % {gitlab_namespace,project_name,gitlab_user}
print >> stderr, "There was a problem creating {group}/{project}. Did you give {user} user Admin rights in gitlab?".format(group=gitlab_namespace,project=project_name,user=gitlab_user)
exit(1)
print found_project['http_url_to_repo']
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment