diff --git a/joint_teapot/app.py b/joint_teapot/app.py index 0085c96..6454d08 100644 --- a/joint_teapot/app.py +++ b/joint_teapot/app.py @@ -498,13 +498,29 @@ def joj3_all( submitter, commit_hash, ) - issue: focs_gitea.Issue = tea.pot.gitea.issue_api.issue_create_issue( - tea.pot.gitea.org_name, - submitter_repo_name, - body={"title": title, "body": comment}, - ) + title_prefix = joj3.get_title_prefix(title) + joj3_issue: focs_gitea.Issue + issue: focs_gitea.Issue + for issue in tea.pot.gitea.issue_api.issue_list_issues( + tea.pot.gitea.org_name, submitter_repo_name, state="all" + ): + if issue.title.startswith(title_prefix): + joj3_issue = issue + break + else: + joj3_issue = tea.pot.gitea.issue_api.issue_create_issue( + tea.pot.gitea.org_name, + submitter_repo_name, + body={"title": title, "body": ""}, + ) gitea_issue_url = issue.html_url logger.info(f"gitea issue url: {gitea_issue_url}") + tea.pot.gitea.issue_api.issue_edit_issue( + tea.pot.gitea.org_name, + submitter_repo_name, + joj3_issue.number, + body={"body": comment}, + ) if skip_scoreboard and skip_failed_table: return tea.pot.git # trigger lazy load diff --git a/joint_teapot/utils/joj3.py b/joint_teapot/utils/joj3.py index d49690a..dbac930 100644 --- a/joint_teapot/utils/joj3.py +++ b/joint_teapot/utils/joj3.py @@ -237,3 +237,10 @@ def check_skipped(score_file_path: str, keyword: str) -> bool: if keyword in comment or "skip-teapot" in comment: return True return False + + +def get_title_prefix(title: str) -> str: + for i in range(len(title) - 1, -1, -1): + if not title[i].isdigit() and not title[i].isspace(): + return title[: i + 1] + return ""