diff --git a/joint_teapot/__init__.py b/joint_teapot/__init__.py index 179d693..dd778ec 100644 --- a/joint_teapot/__init__.py +++ b/joint_teapot/__init__.py @@ -1,6 +1,5 @@ -from joint_teapot.__main__ import run -from joint_teapot.teapot import Teapot as Teapot +from joint_teapot.__main__ import app def main() -> None: - run() + app() diff --git a/joint_teapot/__main__.py b/joint_teapot/__main__.py index b9159db..4e0a99f 100644 --- a/joint_teapot/__main__.py +++ b/joint_teapot/__main__.py @@ -3,11 +3,11 @@ __version__ = "0.0.0" from datetime import datetime from typing import List -import typer +from typer import Typer, echo from joint_teapot.teapot import Teapot -app = typer.Typer(add_completion=False) +app = Typer(add_completion=False) teapot = Teapot() @@ -23,7 +23,7 @@ def create_teams_and_repos_by_canvas_groups() -> None: @app.command("get-public-keys") def get_public_key_of_all_canvas_students() -> None: - typer.echo(teapot.get_public_key_of_all_canvas_students()) + echo(teapot.get_public_key_of_all_canvas_students()) @app.command("archieve") @@ -36,6 +36,11 @@ def create_issue_for_repos(repo_names: List[str], title: str, body: str) -> None teapot.create_issue_for_repos(repo_names, title, body) +@app.command("check-issues") +def check_exist_issue_by_title(repo_names: List[str], title: str) -> None: + echo(teapot.check_exist_issue_by_title(repo_names, title)) + + @app.command("get-release") def checkout_to_repos_by_release_name( repo_names: List[str], release_name: str, due: datetime = datetime(3000, 1, 1) @@ -43,9 +48,5 @@ def checkout_to_repos_by_release_name( teapot.checkout_to_repos_by_release_name(repo_names, release_name, due) -def run() -> None: - app() - - if __name__ == "__main__": - run() + app() diff --git a/joint_teapot/teapot.py b/joint_teapot/teapot.py index 082cf51..27ef028 100644 --- a/joint_teapot/teapot.py +++ b/joint_teapot/teapot.py @@ -53,6 +53,15 @@ class Teapot: for repo_name in repo_names: self.gitea.create_issue(repo_name, title, body) + def check_exist_issue_by_title( + self, repo_names: List[str], title: str + ) -> List[str]: + res = [] + for repo_name in repo_names: + if not self.gitea.check_exist_issue_by_title(repo_name, title): + res.append(repo_name) + return res + def checkout_to_repos_by_release_name( self, repo_names: List[str], diff --git a/joint_teapot/workers/gitea.py b/joint_teapot/workers/gitea.py index 4604073..ab89439 100644 --- a/joint_teapot/workers/gitea.py +++ b/joint_teapot/workers/gitea.py @@ -196,6 +196,12 @@ class Gitea: body={"title": title, "body": body, "assignees": assignees}, ) + def check_exist_issue_by_title(self, repo_name: str, title: str) -> bool: + for issue in self.issue_api.issue_list_issues(self.org_name, repo_name): + if issue.title == title: + return True + return False + if __name__ == "__main__": gitea = Gitea()