Merge pull request #138 from devchat-ai/issue-repo

feat: Enhance GitHub issue handling in commit workflow
This commit is contained in:
boob.yang 2025-03-10 08:19:56 +00:00 committed by GitHub
commit e8d960794c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -429,12 +429,15 @@ def push_changes():
def get_selected_issue_ids(): def get_selected_issue_ids():
""" """
获取用户选中的issue id 获取用户选中的issue id
Returns:
list: 用户选中的issue id列表
""" """
name = get_git_username() name = get_git_username()
if not name: if not name:
return [] return
owner_repo = get_github_repo() issue_repo = get_github_repo(True)
issues = get_github_repo_issues(owner_repo, assignee=name, state="open") issues = get_github_repo_issues(issue_repo, assignee=name, state="open")
if issues: if issues:
checkbox = Checkbox( checkbox = Checkbox(
[f"#{issue['number']}: {issue['title']}" for issue in issues], [f"#{issue['number']}: {issue['title']}" for issue in issues],
@ -442,7 +445,6 @@ def get_selected_issue_ids():
) )
checkbox.render() checkbox.render()
return [issues[idx]["number"] for idx in checkbox.selections] return [issues[idx]["number"] for idx in checkbox.selections]
return []
def main(): def main():
@ -510,8 +512,14 @@ def main():
# add closes #IssueNumber in commit message from issues from user selected # add closes #IssueNumber in commit message from issues from user selected
issue_ids = get_selected_issue_ids() issue_ids = get_selected_issue_ids()
if issue_ids: if issue_ids:
issue_repo = get_github_repo(True)
owner_repo = get_github_repo()
closes_issue_contents = []
for issue_id in issue_ids: for issue_id in issue_ids:
commit_message["content"] += f"\n\nCloses #{issue_id}" closes_issue_contents.append(
f"#{issue_id}" if owner_repo == issue_repo else f"{issue_repo}#{issue_id}"
)
commit_message["content"] += f"\n\nCloses {', '.join(closes_issue_contents)}"
commit_result = display_commit_message_and_commit(commit_message["content"]) commit_result = display_commit_message_and_commit(commit_message["content"])
if not commit_result: if not commit_result:
print("Commit aborted.", flush=True) print("Commit aborted.", flush=True)