util/release: Upload script to abandon patches older than 1 year

This script allows any user with abandon rights to abandon patches that
haven't been touched (reviewed, commented on, rebased, etc) in over a
year.

As a part of the release process, we're now going to run the script to
abandon all of those patches so that we don't get to the point of
needing to abandon 1300 patches again in the future.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I4a07c09edf02d9c1858a58322095eefbceb529d3
Reviewed-on: https://review.coreboot.org/c/coreboot/+/77365
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
This commit is contained in:
Martin Roth 2023-08-21 14:57:07 -06:00 committed by Felix Held
parent 02295db726
commit 11bd917ca4
1 changed files with 36 additions and 0 deletions

View File

@ -0,0 +1,36 @@
#!/usr/bin/bash
GERRIT_USER=$1
QUERY_AGE="age:1year"
MESSAGE_AGE="a year"
if [[ -z "${GERRIT_USER}" || "${GERRIT_USER}" = "-h" || "${GERRIT_USER}" = "--help" ]]; then
echo "Usage: $0 <Gerrit username>"
exit 0
fi
if ! command -v jq >/dev/null 2>&1; then
echo "Error. Please install the package 'jq' before continuing."
exit 1
fi
gerrit_cmd() {
ssh -p 29418 "${GERRIT_USER}@review.coreboot.org" gerrit "$@"
}
abandon_patch() {
local patch=$1
message="\'\"This patch has not been touched in over ${MESSAGE_AGE}. Anyone who wants to take over work on this patch, please feel free to restore it and do any work needed to get it merged. If you create a new patch based on this work, please credit the original author.\"\'"
echo "Abandoning ${patch}"
gerrit_cmd review --project coreboot --abandon --message "${message}" "${patch}"
}
get_patchlist() {
gerrit_cmd query --format=JSON --no-limit --current-patch-set "repo:coreboot AND status:open AND ${QUERY_AGE}" | \
jq -Mr '.currentPatchSet.revision' | \
grep -v null
}
for patch in $(get_patchlist); do abandon_patch "${patch}"; done