Skip to content
Snippets Groups Projects
Commit d15c753b authored by Adrien Lescourt's avatar Adrien Lescourt
Browse files

Fix repos creation

parent 32487b04
No related branches found
No related tags found
No related merge requests found
......@@ -101,6 +101,17 @@ class Gitlab:
else:
print("Group " + group_id + " successfully deleted")
def get_user_id(self, user: User) -> str | None:
headers = {"PRIVATE-TOKEN": self.token}
res = requests.get(
BASE_API_URL + "/users", params={"search": user.id}, headers=headers
)
if res.status_code != 200:
print(f"Error searching user {user.id}")
print(res.text)
else:
return res.json()[0]["id"]
def create_repository(
self,
group_id: str,
......@@ -119,6 +130,7 @@ class Gitlab:
params = {"name": name, "namespace_id": group_id, "visibility": "private"}
if import_url:
params["import_url"] = import_url
project = requests.post(
BASE_API_URL + "/projects", params=params, headers=headers
).json()
......@@ -144,18 +156,21 @@ class Gitlab:
# Add each student as maintainer (level 40)
for user in users:
print(user)
params = {"user_id": user.id, "access_level": access_level}
user_id = self.get_user_id(user)
if user_id is None:
print(f"ERROR: User {user.id} will not be added to project: {name}")
params = {"user_id": user_id, "access_level": access_level}
if expires_at:
params["expires_at"] = expires_at
new_user = requests.post(
res = requests.post(
BASE_API_URL + "/projects/" + str(project["id"]) + "/members",
params=params,
headers=headers,
).json()
if "message" in new_user:
print("Error in adding user: %s" % new_user)
)
if res.status_code != 201:
print(res.text)
else:
new_user = res.json()
out = (
"Adding '"
+ new_user["name"]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment