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:
parent
02295db726
commit
11bd917ca4
|
@ -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
|
Loading…
Reference in New Issue