From 9367aee62dc9f8a3e1f1c35f9b85eea3a6bbe113 Mon Sep 17 00:00:00 2001 From: Dundar Göc Date: Fri, 13 Aug 2021 19:17:24 +0200 Subject: ci: ensure all PRs are up to date with master before attempting squash This is to ensure unrelated authors don't get credited. --- scripts/squash_typos.py | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/scripts/squash_typos.py b/scripts/squash_typos.py index 305680f079..26be6010a2 100644 --- a/scripts/squash_typos.py +++ b/scripts/squash_typos.py @@ -39,7 +39,7 @@ def get_authors_and_emails_from_pr(): return sorted(authors_and_emails_unique) -def rebase_onto_pr(): +def rebase_squash_branch_onto_pr(): """ Rebase current branch onto the PR. @@ -49,6 +49,10 @@ def rebase_onto_pr(): # Check out the pull request. subprocess.call(["gh", "pr", "checkout", os.environ["PR_NUMBER"]]) + # Rebase onto master + default_branch = f"{os.environ['GITHUB_BASE_REF']}" + subprocess.check_call(["git", "rebase", default_branch]) + # Change back to the original branch. subprocess.call(["git", "switch", "-"]) @@ -83,6 +87,18 @@ def rebase_onto_pr(): ) +def rebase_squash_branch_onto_master(): + """ + + Rebase current branch onto the master i.e. make sure current branch is up + to date. Abort on error. + + """ + + default_branch = f"{os.environ['GITHUB_BASE_REF']}" + subprocess.check_call(["git", "rebase", default_branch]) + + def squash_all_commits(): """ @@ -175,7 +191,10 @@ def main(): squash_branch_exists = checkout_branch(squash_branch) - rebase_onto_pr() + rebase_squash_branch_onto_master() + force_push(squash_branch) + + rebase_squash_branch_onto_pr() force_push(squash_branch) subprocess.call( -- cgit