diff --git a/README.md b/README.md index e9bd366..5d9a841 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,9 @@ Examples (run both with `python3 -m joint_teapot create-issues`): ### `create-personal-repos` -create personal repos on gitea for all canvas students +create personal repos on gitea for all canvas students. You may specify an optional suffix. + +Example: `python3 -m joint_teapot create-personal-repos --suffix "-p1"` will create repos named `StudentNameStudentID-p1`. ### `create-teams` diff --git a/joint_teapot/app.py b/joint_teapot/app.py index fa2955a..b3ec4c7 100644 --- a/joint_teapot/app.py +++ b/joint_teapot/app.py @@ -34,8 +34,10 @@ def add_all_canvas_students_to_teams(team_names: List[str]) -> None: "create-personal-repos", help="create personal repos on gitea for all canvas students", ) -def create_personal_repos_for_all_canvas_students() -> None: - tea.pot.create_personal_repos_for_all_canvas_students() +def create_personal_repos_for_all_canvas_students( + suffix: str = Option("") +) -> None: + tea.pot.create_personal_repos_for_all_canvas_students(suffix) @app.command("create-teams", help="create teams on gitea by canvas groups") diff --git a/joint_teapot/teapot.py b/joint_teapot/teapot.py index 1ca132a..8e2fec2 100644 --- a/joint_teapot/teapot.py +++ b/joint_teapot/teapot.py @@ -5,7 +5,7 @@ from typing import Any, Callable, Dict, List, Optional, TypeVar from joint_teapot.config import settings from joint_teapot.utils.logger import logger -from joint_teapot.utils.main import first +from joint_teapot.utils.main import first, default_repo_name_convertor from joint_teapot.workers import Canvas, Git, Gitea, Mattermost from joint_teapot.workers.joj import JOJ @@ -86,9 +86,10 @@ class Teapot: def add_all_canvas_students_to_teams(self, team_names: List[str]) -> None: return self.gitea.add_canvas_students_to_teams(self.canvas.students, team_names) - def create_personal_repos_for_all_canvas_students(self) -> List[str]: + def create_personal_repos_for_all_canvas_students(self, suffix: str = "") -> List[str]: return self.gitea.create_personal_repos_for_canvas_students( - self.canvas.students + self.canvas.students, + lambda user: default_repo_name_convertor(user) + suffix ) def create_teams_and_repos_by_canvas_groups( diff --git a/joint_teapot/utils/main.py b/joint_teapot/utils/main.py index 74c96a0..8772efd 100644 --- a/joint_teapot/utils/main.py +++ b/joint_teapot/utils/main.py @@ -30,8 +30,8 @@ def percentile( def default_repo_name_convertor(user: User) -> str: - sis_login_id, name = user.sis_login_id, user.name + login_id, name = user.login_id, user.name eng = re.sub("[\u4e00-\u9fa5]", "", name) eng = eng.replace(",", "") - eng = "".join([word[0].capitalize() + word[1:] for word in eng.split()]) - return f"{eng}{sis_login_id}" + eng = eng.title().replace(" ", "") + return f"{eng}{login_id}"