From be559a081213e05cfc96e66526ca857ae0d80433 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?benjamin=20melan=C3=A7on?= Date: Wed, 4 Oct 2023 15:46:42 -0400 Subject: [PATCH] Add comments from old issue to new issue --- move_issue.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/move_issue.py b/move_issue.py index 6cc1eb3..4d2f8b8 100644 --- a/move_issue.py +++ b/move_issue.py @@ -10,6 +10,8 @@ FORGEJO_API_TOKEN = os.getenv("FORGEJO_API_TOKEN") API_GET_ISSUE = "{instance}/api/v1/repos/{owner}/{repo}/issues/{index}" API_CREATE_ISSUE = "{instance}/api/v1/repos/{owner}/{repo}/issues" +API_GET_COMMENTS = "{instance}/api/v1/repos/{owner}/{repo}/issues/{index}/comments" +API_CREATE_COMMENT = "{instance}/api/v1/repos/{owner}/{repo}/issues/{index}/comments" def move_issue(source_owner, source_repo, issue_number, destination_owner, destination_repo): get_issue_url = API_GET_ISSUE.format(instance=FORGEJO_INSTANCE, owner=source_owner, repo=source_repo, index=issue_number) @@ -38,8 +40,28 @@ def move_issue(source_owner, source_repo, issue_number, destination_owner, desti message = json_response.pop('message', False) if message: print(message) + sys.exit("Error creating issue.") else: print(f"Issue created: {json_response['html_url']}") + new_issue_number = json_response['number'] + print(f"new_issue_number = {new_issue_number}") + new_issue_id = json_response['id'] + print(f"new_issue_id = {new_issue_id}") + + print(f"Moving issue comments.") + get_comments_url = API_GET_COMMENTS.format(instance=FORGEJO_INSTANCE, owner=source_owner, repo=source_repo, index=issue_number) + create_comment_url = API_CREATE_COMMENT.format(instance=FORGEJO_INSTANCE, owner=destination_owner, repo=destination_repo, index=new_issue_number) + + comments = requests.get(get_comments_url, params={"access_token": FORGEJO_API_TOKEN}) + json_comments = comments.json() + + for comment in json_comments: + new_comment = requests.post(create_comment_url, headers=headers, data=comment) + json_new_comment = new_comment.json() + message = json_new_comment.pop('message', False) + if message: + print(message) + sys.exit("Error creating comment.") if __name__=="__main__": # '0' comes in as move_issue.py when this is called as `python move_issue.py`