feat: create-personal-repos allows suffix (#18)

* feat: create-personal-repos allows suffix

Fix gitea worker by s/sis_login_id/login_id/g
Also simplify name conversion with str.title()

* docs: document create-personal-repos --suffix
This commit is contained in:
Frederick 2022-09-23 14:00:08 +08:00 committed by GitHub
parent 58cd7ba4a1
commit 1530d8b44d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 9 deletions

View File

@ -73,7 +73,9 @@ Examples (run both with `python3 -m joint_teapot create-issues`):
### `create-personal-repos` ### `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` ### `create-teams`

View File

@ -34,8 +34,10 @@ def add_all_canvas_students_to_teams(team_names: List[str]) -> None:
"create-personal-repos", "create-personal-repos",
help="create personal repos on gitea for all canvas students", help="create personal repos on gitea for all canvas students",
) )
def create_personal_repos_for_all_canvas_students() -> None: def create_personal_repos_for_all_canvas_students(
tea.pot.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") @app.command("create-teams", help="create teams on gitea by canvas groups")

View File

@ -5,7 +5,7 @@ from typing import Any, Callable, Dict, List, Optional, TypeVar
from joint_teapot.config import settings from joint_teapot.config import settings
from joint_teapot.utils.logger import logger 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 import Canvas, Git, Gitea, Mattermost
from joint_teapot.workers.joj import JOJ 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: 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) 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( 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( def create_teams_and_repos_by_canvas_groups(

View File

@ -30,8 +30,8 @@ def percentile(
def default_repo_name_convertor(user: User) -> str: 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 = re.sub("[\u4e00-\u9fa5]", "", name)
eng = eng.replace(",", "") eng = eng.replace(",", "")
eng = "".join([word[0].capitalize() + word[1:] for word in eng.split()]) eng = eng.title().replace(" ", "")
return f"{eng}{sis_login_id}" return f"{eng}{login_id}"