Skip to content

Commit db651e3

Browse files
committed
fixup! tools: automatically remove lts-watch-* labels
1 parent a931f13 commit db651e3

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

tools/actions/remove-lts-watch-label.sh

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
set -ex
44

5+
[ -n "$GITHUB_SERVER_URL" ] || {
6+
echo "Required environment variable GITHUB_SERVER_URL not found" >&2
7+
exit 1
8+
}
59
[ -n "$GITHUB_REPOSITORY_OWNER" ] || {
610
echo "Required environment variable GITHUB_REPOSITORY_OWNER not found" >&2
711
exit 1
@@ -40,8 +44,8 @@ fetch_label_id () {
4044
fi
4145
}
4246

43-
jq -r '.commits[].message' < "$GITHUB_EVENT_PATH" \
44-
| while IFS= read -r msg; do
47+
jq --raw-output0 '.commits[].message' < "$GITHUB_EVENT_PATH" \
48+
| while IFS= read -r -d '' msg; do
4549
pr_url=$(echo "$msg" | git interpret-trailers --parse | awk -F': ' '$1 == "PR-URL" { print $2; exit }')
4650
pr_number=${pr_url##"$GITHUB_SERVER_URL/$GITHUB_REPOSITORY/pull/"}
4751

@@ -52,33 +56,30 @@ jq -r '.commits[].message' < "$GITHUB_EVENT_PATH" \
5256
esac
5357

5458
# shellcheck disable=SC2016
55-
pr_id="$(gh api graphql -f query='
56-
query($owner:String!, $repo:String!, $number:Int!, $label:String!) {
59+
pr_id="$(LTS_WATCH_LABEL="$label" gh api graphql -f query='
60+
query($owner:String!, $repo:String!, $number:Int!) {
5761
repository(owner:$owner, name:$repo) {
5862
pullRequest(number:$number) {
5963
id
60-
labels(first: 1, query: $label) {
61-
nodes { name }
62-
}
64+
labels(first: 100) { nodes { name } }
6365
}
6466
}
65-
}' -f owner="$owner" -f repo="$repo" -F number="$pr_number" -f label="$label" \
66-
--jq ' if (.data.repository.pullRequest.labels.nodes | length) then .data.repository.pullRequest.id end')"
67+
}' -f owner="$owner" -f repo="$repo" -F number="$pr_number" \
68+
--jq 'if (.data.repository.pullRequest.labels.nodes | any(.name == env.LTS_WATCH_LABEL)) then .data.repository.pullRequest.id else null end')"
6769

68-
if [ -z "$pr_id" ] || [ "$pr_id" = "null" ]; then
69-
echo "PR #$pr_number not found or does not have the label" >&2
70-
continue
71-
fi
70+
# Skip PRs that do not have the label
71+
[ -n "$pr_id" ] || continue
7272

73+
# Lazy-load the label ID if not done already
7374
[ -n "$label_id" ] || fetch_label_id
7475

7576
# shellcheck disable=SC2016
7677
gh api graphql -f query='
77-
mutation($labelableId:ID!, $labelIds:[ID!]!) {
78-
removeLabelsFromLabelable(input:{labelableId:$labelableId, labelIds:$labelIds}) {
78+
mutation($labelableId:ID!, $labelId:ID!) {
79+
removeLabelsFromLabelable(input:{labelableId:$labelableId, labelIds:[$labelId]}) {
7980
clientMutationId
8081
}
81-
}' -f labelableId="$pr_id" -f labelIds="[$label_id]" >/dev/null
82+
}' -f labelableId="$pr_id" -f labelId="$label_id"
8283

8384
# gentle throttle
8485
sleep 0.2

0 commit comments

Comments
 (0)