Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove automerge stuff #610

Merged
merged 5 commits into from
Apr 20, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions miss_islington/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@
from sentry_sdk.integrations.aiohttp import AioHttpIntegration


from . import backport_pr, check_run, delete_branch, status_change
from . import backport_pr, delete_branch

router = routing.Router(
backport_pr.router, delete_branch.router, status_change.router, check_run.router
backport_pr.router, delete_branch.router
)

cache = cachetools.LRUCache(maxsize=500)
Expand Down
34 changes: 0 additions & 34 deletions miss_islington/check_run.py

This file was deleted.

169 changes: 0 additions & 169 deletions miss_islington/status_change.py

This file was deleted.

93 changes: 0 additions & 93 deletions miss_islington/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@

import gidgethub

from .status_change import AUTOMERGE_TRAILER

AUTOMERGE_LABEL = ":robot: automerge"


async def comment_on_pr(gh, issue_number, message):
Expand Down Expand Up @@ -83,93 +80,3 @@ def normalize_title(title, body):
# Being paranoid in case \r\n is used.
return title[:-1] + body[1:].partition("\r\n")[0]


def normalize_message(body):
"""Normalize the message body to make it commit-worthy.

Mostly this just means removing HTML comments, but also removes unwanted
leading or trailing whitespace.

Returns the normalized body.
"""
# Remove issue mentions added by Bedevere.
# This should catch both current gh- and legacy bpo- messages.
body = re.sub(r"(?s)<!-- (gh-)?issue-number:.*/\1issue-number -->", "", body)
# Remove other HTML comments
while "<!--" in body:
body = body[: body.index("<!--")] + body[body.index("-->") + 3 :]
# Delete BPO links on their own line, probably added by an old version of Bedevere.
body = re.sub(r"\nhttps://bugs.python.org/issue(\d+)\n", "", body)
# Strip additional newlines between commit body and automerge label.
body_parts = body.split(AUTOMERGE_TRAILER)
if len(body_parts) > 1:
body, automerge_user = body_parts
body = f"{body.strip()}\n\n{AUTOMERGE_TRAILER}{automerge_user}"
return "\n\n" + body.strip()


# Copied over from https://github.com/python/bedevere
async def is_core_dev(gh, username):
"""Check if the user is a CPython core developer."""
org_teams = "/orgs/python/teams"
team_name = "python core"
async for team in gh.getiter(org_teams):
if team["name"].lower() == team_name: # pragma: no branch
break
else:
raise ValueError(f"{team_name!r} not found at {org_teams!r}")
# The 'teams' object only provides a URL to a deprecated endpoint,
# so manually construct the URL to the non-deprecated team membership
# endpoint.
membership_url = f"/teams/{team['id']}/memberships/{username}"
try:
await gh.getitem(membership_url)
except gidgethub.BadRequest as exc:
if exc.status_code == 404:
return False
raise
else:
return True


def pr_is_awaiting_merge(pr_labels):
label_names = [label["name"] for label in pr_labels]
if (
"DO-NOT-MERGE" not in label_names
and "awaiting merge" in label_names
and "CLA not signed" not in label_names
):
return True
return False


def pr_is_automerge(pr_labels):
for label in pr_labels:
if label["name"] == AUTOMERGE_LABEL:
return True
return False


async def get_pr_for_commit(gh, sha):
prs_for_commit = await gh.getitem(
f"/search/issues?q=type:pr+repo:python/cpython+sha:{sha}"
)
if prs_for_commit["total_count"] > 0: # there should only be one
pr_for_commit = prs_for_commit["items"][0]
return pr_for_commit
return None


async def remove_automerge(gh, pr_data):
"""Remove the automerge label"""
await gh.delete(
f"{pr_data['issue_url']}/labels/{AUTOMERGE_LABEL}",
accept="application/vnd.github.symmetra-preview+json",
)


async def get_check_runs_for_sha(gh, sha):
return await gh.getitem(
f"/repos/python/cpython/commits/{sha}/check-runs",
accept="application/vnd.github.antiope-preview+json",
)
Loading