diff --git a/joint_teapot/teapot.py b/joint_teapot/teapot.py index 7d0b3ab..d176701 100644 --- a/joint_teapot/teapot.py +++ b/joint_teapot/teapot.py @@ -57,7 +57,7 @@ class Teapot: logger.info( f"Settings loaded. Canvas Course ID: {settings.canvas_course_id}, Gitea Organization name: {settings.gitea_org_name}" ) - logger.info("Teapot initialized.") + logger.debug("Teapot initialized.") 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) diff --git a/joint_teapot/utils/logger.py b/joint_teapot/utils/logger.py index 87363c5..db8d3d2 100644 --- a/joint_teapot/utils/logger.py +++ b/joint_teapot/utils/logger.py @@ -5,5 +5,5 @@ from loguru import logger as logger from joint_teapot.config import settings logger.remove() -logger.add(stderr) -logger.add(settings.log_file_path) +logger.add(stderr, level="INFO") +logger.add(settings.log_file_path, level="INFO") diff --git a/joint_teapot/workers/canvas.py b/joint_teapot/workers/canvas.py index c64a9dc..8761ed5 100644 --- a/joint_teapot/workers/canvas.py +++ b/joint_teapot/workers/canvas.py @@ -23,12 +23,12 @@ class Canvas: raise Exception( f"Unable to gather students' {attr}, please contact the Canvas site admin" ) - logger.info(f"Canvas students loaded.") + logger.debug(f"Canvas students loaded.") self.assignments = self.course.get_assignments() - logger.info(f"Canvas assignments loaded.") + logger.debug(f"Canvas assignments loaded.") self.groups = self.course.get_groups() - logger.info(f"Canvas groups loaded.") - logger.info("Canvas initialized.") + logger.debug(f"Canvas groups loaded.") + logger.debug("Canvas initialized.") if __name__ == "__main__": diff --git a/joint_teapot/workers/git.py b/joint_teapot/workers/git.py index e0db5ef..d276b7b 100644 --- a/joint_teapot/workers/git.py +++ b/joint_teapot/workers/git.py @@ -22,7 +22,7 @@ class Git: if not os.path.isdir(repos_dir): raise Exception(f"{repos_dir} does not exist! Create it first.") self.repos_dir = repos_dir - logger.info("Git initialized.") + logger.debug("Git initialized.") def clone_repo(self, repo_name: str, branch: str = "master") -> Repo: repo_dir = os.path.join(self.repos_dir, repo_name) diff --git a/joint_teapot/workers/gitea.py b/joint_teapot/workers/gitea.py index c0c71e8..3d8d8ac 100644 --- a/joint_teapot/workers/gitea.py +++ b/joint_teapot/workers/gitea.py @@ -58,7 +58,7 @@ class Gitea: self.repository_api = focs_gitea.RepositoryApi(self.api_client) self.settings_api = focs_gitea.SettingsApi(self.api_client) self.user_api = focs_gitea.UserApi(self.api_client) - logger.info("Gitea initialized.") + logger.debug("Gitea initialized.") @lru_cache() def _get_team_id_by_name(self, name: str) -> int: @@ -79,12 +79,22 @@ class Gitea: ) -> None: for team_name in team_names: team_id = self._get_team_id_by_name(team_name) + team_members = self.organization_api.org_list_team_members(team_id) for student in students: try: username = self._get_username_by_canvas_student(student) - self.organization_api.org_add_team_member(team_id, username) + team_member = first(team_members, lambda x: x.login == username) + if team_member is None: + self.organization_api.org_add_team_member(team_id, username) + else: + team_members.remove(team_member) except Exception as e: logger.error(e) + for team_member in team_members: + logger.warning( + f"{team_member.full_name} found in team {team_name} " + + "but not found in Canvas students" + ) def create_personal_repos_for_canvas_students( self, @@ -114,7 +124,7 @@ class Gitea: ) except ApiException as e: if e.status == 409: - logger.warning(f"Peronsal repo for {student} already exists.") + logger.warning(f"Personal repo for {student} already exists.") else: raise (e) username = self._get_username_by_canvas_student(student) @@ -265,3 +275,5 @@ class Gitea: if __name__ == "__main__": gitea = Gitea() + res = gitea.get_all_repo_names() + print("\n".join(res))