fix: name converter
This commit is contained in:
parent
c75caa3990
commit
b143172df8
|
@ -18,7 +18,7 @@ class Canvas:
|
||||||
self.students = self.course.get_users(
|
self.students = self.course.get_users(
|
||||||
enrollment_type=["student"], include=["email"]
|
enrollment_type=["student"], include=["email"]
|
||||||
)
|
)
|
||||||
for attr in ["sis_login_id", "sortable_name"]:
|
for attr in ["sis_login_id", "sortable_name", "name"]:
|
||||||
if not hasattr(self.students[0], attr):
|
if not hasattr(self.students[0], attr):
|
||||||
raise Exception(
|
raise Exception(
|
||||||
f"Unable to gather students' {attr}, please contact the Canvas site admin"
|
f"Unable to gather students' {attr}, please contact the Canvas site admin"
|
||||||
|
|
|
@ -7,6 +7,7 @@ import focs_gitea
|
||||||
from canvasapi.group import Group, GroupMembership
|
from canvasapi.group import Group, GroupMembership
|
||||||
from canvasapi.paginated_list import PaginatedList
|
from canvasapi.paginated_list import PaginatedList
|
||||||
from canvasapi.user import User
|
from canvasapi.user import User
|
||||||
|
from focs_gitea.rest import ApiException
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from joint_teapot.config import settings
|
from joint_teapot.config import settings
|
||||||
|
@ -20,8 +21,9 @@ class PermissionEnum(Enum):
|
||||||
|
|
||||||
|
|
||||||
def default_repo_name_convertor(user: User) -> Optional[str]:
|
def default_repo_name_convertor(user: User) -> Optional[str]:
|
||||||
id, name = user.sis_login_id, user.sortable_name
|
id, name = user.sis_login_id, user.name
|
||||||
eng = re.sub("[\u4e00-\u9fa5]", "", name)
|
eng = re.sub("[\u4e00-\u9fa5]", "", name)
|
||||||
|
eng = eng.replace(",", "")
|
||||||
eng = "".join([word[0].capitalize() + word[1:] for word in eng.split()])
|
eng = "".join([word[0].capitalize() + word[1:] for word in eng.split()])
|
||||||
return f"{eng}{id}"
|
return f"{eng}{id}"
|
||||||
|
|
||||||
|
@ -84,22 +86,25 @@ class Gitea:
|
||||||
if repo_name is None:
|
if repo_name is None:
|
||||||
continue
|
continue
|
||||||
repo_names.append(repo_name)
|
repo_names.append(repo_name)
|
||||||
repo = self.organization_api.create_org_repo(
|
body = {
|
||||||
self.org_name,
|
"auto_init": False,
|
||||||
body={
|
"default_branch": "master",
|
||||||
"auto_init": False,
|
"name": repo_name,
|
||||||
"default_branch": "master",
|
"private": True,
|
||||||
"name": repo_name,
|
"template": False,
|
||||||
"private": True,
|
"trust_model": "default",
|
||||||
"template": False,
|
}
|
||||||
"trust_model": "default",
|
|
||||||
},
|
|
||||||
)
|
|
||||||
try:
|
try:
|
||||||
|
repo = self.organization_api.create_org_repo(self.org_name, body=body)
|
||||||
username = self._get_username_by_canvas_student(student)
|
username = self._get_username_by_canvas_student(student)
|
||||||
self.repository_api.repo_add_collaborator(
|
self.repository_api.repo_add_collaborator(
|
||||||
self.org_name, repo.name, username
|
self.org_name, repo.name, username
|
||||||
)
|
)
|
||||||
|
except ApiException as e:
|
||||||
|
if e.status == 409:
|
||||||
|
logger.info(f"Peronsal repo for {student} already exists.")
|
||||||
|
else:
|
||||||
|
logger.error(e)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(e)
|
logger.error(e)
|
||||||
return repo_names
|
return repo_names
|
||||||
|
|
Loading…
Reference in New Issue
Block a user