feat: check exist issue by title

This commit is contained in:
张泊明518370910136 2021-06-19 01:34:06 +08:00
parent 5736be013c
commit 49d2ce56f3
4 changed files with 26 additions and 11 deletions

View File

@ -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()

View File

@ -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()

View File

@ -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],

View File

@ -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()