Skip to content
Snippets Groups Projects
Commit 8bcdc129 authored by Christian Salzmann-Jäckel's avatar Christian Salzmann-Jäckel
Browse files

initial commit

parents
No related branches found
No related tags found
No related merge requests found
main.py 0 → 100644
import requests
import json
import manageprojects
import projectassign
token = "$GITLAB_ACCESS_TOKEN"
apilink = "https://git.imp.fu-berlin.de/api/v4/"
group_name = None
def getgroupid(apilink, token, group_name):
rawdata = requests.get(apilink + "/groups?private_token=" + token, verify = False)
data = json.loads(rawdata.content)
group_id = None
for i in range(0,len(data)):
if(data[i]["name"] == group_name):
group_id = data[i]["id"]
break
return group_id
def main():
print("Willkommen im GitLab Projektmanagement\n")
group_name = input("Welche Gruppe soll bearbeitet werden? ")
group_id = getgroupid(apilink, token, group_name)
while(True):
print("\ncr - Projekte erstellen")
print("rm - ein Projekt löschen")
print("as - Studenten zu Projekten hinzufügen\n")
eingabe = input("Eingabe: ")
if(eingabe == "cr"):
count = input("\nwie viele Projekte sollen erstellt werden?: ")
name = input("wie sollen die Projekte heißen?: ")
sf = input("\nSollen wirklich " + count + " Projekte mit dem Namen " + name + " erstellt werden? (y/n): ")
if(sf == "y" or sf == "yes"):
for count in range(0, int(count)):
manageprojects.create(apilink, token, name , count, group_id)
print(count + " Projekte wurden erstellt")
if(eingabe == "rm"):
name = input("\nwelches Projekt soll gelöscht werden?: ")
proj_id = manageprojects.getprojectid(apilink, group_id, name, token)
sf = input("Soll das Projekt " + name + " mit der ID " + str(proj_id) + " wirklich gelöscht werden? (y/n): ")
if(sf == "y" or sf == "yes"):
manageprojects.remove(apilink, token, group_id, proj_id)
print("Das Projekt " + name + " wurde gelöscht")
_
if(eingabe == "as"):
projectnamespace = input("Wie heißen die Projekte?")
studentlist = input("Aus welcher Liste sollen Nutzer hinzugefügt werden?")
count = input("Wie viele Nutzer sollen pro Projekt verteilt werden?")
access_level = input("Access-Level?\n10 => Guest access\n20 => Reporter access\n30 => Developer access\n40 => Maintainer access")
group_id = str(getgroupid(apilink, token, group_name))
projectassign.assign(projectnamespace, group_id, studentlist, count, access_level, apilink, token)
main()
import requests
import json
class project:
id = 0
name = ""
def create(apilink, token, name, count, groupid):
requests.post(apilink+"/projects?private_token="+token+"&name="+name+"_"+str(count+1)+"&namespace_id="+str(groupid),verify=False)
def remove(apilink, token, groupid, projid):
requests.delete(apilink+"/projects/"+str(projid)+"?private_token="+token+"&namespace_id="+str(groupid),verify=False)
def getprojects(projectnamespace, apilink, groupid, token):
rawdata = requests.get(apilink+"/groups/"+str(groupid)+"/projects?private_token="+token, verify = False)
data = json.loads(rawdata.content)
projects = []
for i in range(0,len(data)):
tempname = data[i]["name"].split("_")[0]
if(tempname == projectnamespace):
prodata = project()
prodata.id = data[i]["id"]
prodata.name = data[i]["name"]
projects.append(prodata)
return projects
def getprojectid(apilink, groupid, name, token):
rawdata = requests.get(apilink+"/groups/"+str(groupid)+"/projects?private_token="+token, verify = False)
data = json.loads(rawdata.content)
for i in range(0,len(data)):
if(data[i]["name"] == name):
projid = data[i]["id"]
break
return projid
import requests
import json
import manageprojects
class member:
id = 0
name = ""
def readstudentlist(studentlist):
list = open(studentlist + ".txt")
students = list.read().splitlines()
return students
def getstudentid(student, apilink, token):
rawdata = requests.get(apilink + "/users?private_token=" + token+ "&username=" + student, verify=False)
data = json.loads(rawdata.content)
return data[0]["id"]
def assign(projectnamespace, groupid, studentlist, studentsamount, a_level, apilink, token):
students = readstudentlist(studentlist)
projects = manageprojects.getprojects(projectnamespace, apilink, groupid, token)
studentindex = 0
print("im alive")
print(len(projects))
for p in range(0,len(projects)):
print("project" + str(p))
for s in range(0,int(studentsamount)):
if(studentindex == len(students)):
break
studentid = getstudentid(students[studentindex], apilink, token)
print(projects[p].id)
print(studentid)
requests.post(apilink + "/projects/" + str(projects[p].id) + "/members?private_token=" + token + "&user_id=" + str(studentid) + "&access_level=" + str(a_level), verify = False)
studentindex += 1
student1
student2
student3
student4
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment