From 6a907a1ce0a80d6ccc9951130e375cbeed74e214 Mon Sep 17 00:00:00 2001 From: szucsvillo <81696283+szucsvillo@users.noreply.github.com> Date: Mon, 4 Dec 2023 11:13:36 +0100 Subject: [PATCH] Zookeeper 4756: [Addendum] Refactor commit message handling in merge_pr function (#2095) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I7c738b31b8f5991bc5f93118285c561c2a4719af Co-authored-by: Villő Szűcs (cherry picked from commit 2445fe6fa87a2971cb05fe8da82926c17d82051f) Signed-off-by: Andor Molnar --- zk-merge-pr.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/zk-merge-pr.py b/zk-merge-pr.py index debc36e318e..5358cbd97c8 100755 --- a/zk-merge-pr.py +++ b/zk-merge-pr.py @@ -126,13 +126,19 @@ def get_current_branch(): # merge the requested PR and return the merge hash def merge_pr(pr_num, title, pr_repo_desc): - # Retrieve the commits separately. - json_commits = get_json(f"https://api.github.com/repos/{PUSH_REMOTE_NAME}/{PROJECT_NAME}/pulls/{pr_num}/commits") merge_message = [] - if json_commits and isinstance(json_commits, list): - for commit in json_commits: - commit_message = commit['commit']['message'] - merge_message += [commit_message] + result = input("Would you like to squash the commit messages? (y/n): ") + if result.lower().strip() == "y": + # Retrieve the commits separately. + json_commits = get_json(f"https://api.github.com/repos/{PUSH_REMOTE_NAME}/{PROJECT_NAME}/pulls/{pr_num}/commits") + if json_commits and isinstance(json_commits, list): + for commit in json_commits: + commit_message = commit['commit']['message'] + # Remove empty lines and lines containing "Change-Id:" + filtered_lines = [line for line in commit_message.split('\n') if 'Change-Id:' not in line and line.strip()] + modified_commit_message = '\n'.join(filtered_lines) + if modified_commit_message.strip() != title.strip(): + merge_message += [modified_commit_message] # Check for disapproval reviews. json_reviewers = get_json(f"https://api.github.com/repos/{PUSH_REMOTE_NAME}/{PROJECT_NAME}/pulls/{pr_num}/reviews")