40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
from typing import Any, Dict, List
|
|
|
|
from joint_teapot import Canvas, Git, Gitea
|
|
|
|
|
|
class Teapot:
|
|
def __init__(self) -> None:
|
|
self.canvas = Canvas()
|
|
self.gitea = Gitea()
|
|
self.git = Git()
|
|
|
|
def create_personal_repos_for_all_canvas_students(self) -> List[str]:
|
|
return self.gitea.create_personal_repos_for_canvas_students(
|
|
self.canvas.students
|
|
)
|
|
|
|
def create_teams_and_repos_by_canvas_groups(self) -> List[str]:
|
|
return self.gitea.create_teams_and_repos_by_canvas_groups(
|
|
self.canvas.students, self.canvas.groups
|
|
)
|
|
|
|
def get_public_key_of_all_canvas_students(self) -> List[List[Dict[str, Any]]]:
|
|
return self.gitea.get_public_key_of_canvas_students(self.canvas.students)
|
|
|
|
def archieve_all_repos(self) -> List[str]:
|
|
return [
|
|
self.git.repo_clean_and_checkout(repo_name, "master")
|
|
for repo_name in self.gitea.get_all_repo_names()
|
|
]
|
|
|
|
def create_issue_for_repos(
|
|
self, repo_names: List[str], title: str, body: str
|
|
) -> None:
|
|
for repo_name in repo_names:
|
|
self.gitea.create_issue(repo_name, title, body)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
teapot = Teapot()
|