diff options
author | Josh Boyer <jwboyer@redhat.com> | 2023-11-14 12:40:38 +0000 |
---|---|---|
committer | Josh Boyer <jwboyer@redhat.com> | 2023-11-14 12:40:38 +0000 |
commit | b72eeb603950f39f320c8113e56d69cbcfe2cb44 (patch) | |
tree | 120922f34879a9a9d639e5fd34911adc9250ce84 | |
parent | 398b4605a30792685e7e3b7ae82a22a916916499 (diff) | |
parent | d011ba69ebb22867aade9725cd36d6d0ab72dfe5 (diff) | |
download | linux-firmware-b72eeb603950f39f320c8113e56d69cbcfe2cb44.tar.gz |
Merge branch 'mlimonci/robot-pr-improvements' into 'main'
Fixups for robot script to handle pull requests better
See merge request kernel-firmware/linux-firmware!58
-rwxr-xr-x | contrib/process_linux_firmware.py | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/contrib/process_linux_firmware.py b/contrib/process_linux_firmware.py index 7d867a8d..668e35c0 100755 --- a/contrib/process_linux_firmware.py +++ b/contrib/process_linux_firmware.py @@ -142,14 +142,26 @@ def delete_branch(branch): quiet_cmd(["git", "branch", "-D", branch]) -def process_pr(url, num, remote): +def process_pr(mbox, num, remote): branch = "robot/pr-{}-{}".format(num, int(time.time())) - cmd = ["b4", "pr", "-b", branch, url] - try: - quiet_cmd(cmd) - except subprocess.CalledProcessError: - logging.warning("Failed to apply PR") - return None + + # manual fixup for PRs from drm firmware repo + if "git@gitlab.freedesktop.org:drm/firmware.git" in mbox: + mbox = mbox.replace( + "git@gitlab.freedesktop.org:drm/firmware.git", + "https://gitlab.freedesktop.org/drm/firmware.git", + ) + + cmd = ["b4", "--debug", "pr", "-b", branch, "-"] + logging.debug("Running {}".format(cmd)) + p = subprocess.Popen( + cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + stdout, stderr = p.communicate(mbox.encode("utf-8")) + for line in stdout.splitlines(): + logging.debug(line.decode("utf-8")) + for line in stderr.splitlines(): + logging.debug(line.decode("utf-8")) # determine if it worked (we can't tell unfortunately by return code) cmd = ["git", "branch", "--list", branch] @@ -157,6 +169,8 @@ def process_pr(url, num, remote): result = subprocess.check_output(cmd) if result: + for line in result.splitlines(): + logging.debug(line.decode("utf-8")) logging.info("Forwarding PR for {}".format(branch)) if remote: create_pr(remote, branch) @@ -244,7 +258,6 @@ def process_database(conn, remote): # loop over all unprocessed urls for row in rows: - branch = None msg = "Processing ({}%)".format(round(num / len(rows) * 100)) print(msg, end="\r", flush=True) @@ -260,7 +273,7 @@ def process_database(conn, remote): if classification == ContentType.PULL_REQUEST: logging.debug("Processing PR ({})".format(row[0])) - branch = process_pr(row[0], num, remote) + branch = process_pr(mbox, num, remote) if classification == ContentType.SPAM: logging.debug("Marking spam ({})".format(row[0])) |