summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Spickett <spickettdavid@googlemail.com>2024-02-14 10:27:51 +0000
committerGitHub <noreply@github.com>2024-02-14 10:27:51 +0000
commitbf274b24d6b05f1c1900c6e2cd6d9565a982de99 (patch)
tree5eac8dcfc64ab09ca3f030380296d93fe7eff373
parent65b5647e167f8be8010cbfaefd1591946c533d72 (diff)
Revert "[GitHub][workflows] Ask reviewers to merge PRs when author cannot (#8…"upstream/revert-81142-no-push-approved
This reverts commit 38c706e30f5f339bfb0bfb26fd7b5c2d5086064a.
-rw-r--r--.github/workflows/approved-prs.yml39
-rwxr-xr-xllvm/utils/git/github-automation.py65
2 files changed, 0 insertions, 104 deletions
diff --git a/.github/workflows/approved-prs.yml b/.github/workflows/approved-prs.yml
deleted file mode 100644
index 309a9217e42d..000000000000
--- a/.github/workflows/approved-prs.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: "Prompt reviewers to merge PRs on behalf of authors"
-
-permissions:
- contents: read
-
-on:
- pull_request_review:
- types:
- - submitted
-
-jobs:
- merge-on-behalf-information-comment:
- runs-on: ubuntu-latest
- permissions:
- pull-requests: write
- if: >-
- (github.repository == 'llvm/llvm-project') &&
- (github.event.review.state == 'APPROVED')
- steps:
- - name: Checkout Automation Script
- uses: actions/checkout@v4
- with:
- sparse-checkout: llvm/utils/git/
- ref: main
-
- - name: Setup Automation Script
- working-directory: ./llvm/utils/git/
- run: |
- pip install -r requirements.txt
-
- - name: Add Merge On Behalf Comment
- working-directory: ./llvm/utils/git/
- run: |
- python3 ./github-automation.py \
- --token '${{ secrets.GITHUB_TOKEN }}' \
- pr-merge-on-behalf-information \
- --issue-number "${{ github.event.pull_request.number }}" \
- --author "${{ github.event.pull_request.user.login }}" \
- --reviewer "${{ github.event.review.user.login }}"
diff --git a/llvm/utils/git/github-automation.py b/llvm/utils/git/github-automation.py
index ccef274c4c1f..b475eff06fc3 100755
--- a/llvm/utils/git/github-automation.py
+++ b/llvm/utils/git/github-automation.py
@@ -298,55 +298,6 @@ If you don't get any reports, no action is required from you. Your changes are w
return True
-class PRMergeOnBehalfInformation:
- COMMENT_TAG = "<!--LLVM MERGE ON BEHALF INFORMATION COMMENT-->\n"
-
- def __init__(
- self, token: str, repo: str, pr_number: int, author: str, reviewer: str
- ):
- self.repo = github.Github(token).get_repo(repo)
- self.pr = self.repo.get_issue(pr_number).as_pull_request()
- self.author = author
- self.reviewer = reviewer
-
- def can_merge(self, user: str) -> bool:
- try:
- return self.repo.get_collaborator_permission(user) in ["admin", "write"]
- # There is a UnknownObjectException for this scenario, but this method
- # does not use it.
- except github.GithubException as e:
- # 404 means the author was not found in the collaborator list, so we
- # know they don't have push permissions. Anything else is a real API
- # issue, raise it so it is visible.
- if e.status != 404:
- raise e
- return False
-
- def run(self) -> bool:
- # Check this first because it only costs 1 API point.
- if self.can_merge(self.author):
- return
-
- # A review can be approved more than once, only comment the first time.
- for comment in self.pr.as_issue().get_comments():
- if self.COMMENT_TAG in comment.body:
- return
-
- # This text is using Markdown formatting.
- if self.can_merge(self.reviewer):
- comment = f"""\
-{self.COMMENT_TAG}
-@{self.reviewer} the PR author does not have permission to merge their own PRs yet. Please merge on their behalf."""
- else:
- comment = f"""\
-{self.COMMENT_TAG}
-@{self.reviewer} the author of this PR does not have permission to merge and neither do you.
-Please find someone who has merge permissions who can merge it on the author's behalf. This could be one of the other reviewers or you can ask on [Discord](https://discord.com/invite/xS7Z362)."""
-
- self.pr.as_issue().create_comment(comment)
- return True
-
-
def setup_llvmbot_git(git_dir="."):
"""
Configure the git repo in `git_dir` with the llvmbot account so
@@ -714,17 +665,6 @@ pr_buildbot_information_parser = subparsers.add_parser("pr-buildbot-information"
pr_buildbot_information_parser.add_argument("--issue-number", type=int, required=True)
pr_buildbot_information_parser.add_argument("--author", type=str, required=True)
-pr_merge_on_behalf_information_parser = subparsers.add_parser(
- "pr-merge-on-behalf-information"
-)
-pr_merge_on_behalf_information_parser.add_argument(
- "--issue-number", type=int, required=True
-)
-pr_merge_on_behalf_information_parser.add_argument("--author", type=str, required=True)
-pr_merge_on_behalf_information_parser.add_argument(
- "--reviewer", type=str, required=True
-)
-
release_workflow_parser = subparsers.add_parser("release-workflow")
release_workflow_parser.add_argument(
"--llvm-project-dir",
@@ -784,11 +724,6 @@ elif args.command == "pr-buildbot-information":
args.token, args.repo, args.issue_number, args.author
)
pr_buildbot_information.run()
-elif args.command == "pr-merge-on-behalf-information":
- pr_merge_on_behalf_information = PRMergeOnBehalfInformation(
- args.token, args.repo, args.issue_number, args.author, args.reviewer
- )
- pr_merge_on_behalf_information.run()
elif args.command == "release-workflow":
release_workflow = ReleaseWorkflow(
args.token,