diff options
| author | Maxime Dénès | 2019-01-20 11:01:30 +0100 |
|---|---|---|
| committer | Maxime Dénès | 2019-01-20 11:01:30 +0100 |
| commit | 051b6efe1d730afe1a08eecac71282e24c4d4523 (patch) | |
| tree | caf43bb2520bc45abc88e492133e9a49465ae399 | |
| parent | b2877df2c79147bd2e26e53e43291b9b29a2aab8 (diff) | |
| parent | 2489ef525881d875c7661d9410b9e1521013dd11 (diff) | |
Merge PR #9353: Fix merge-pr.sh when multiple review comments
Reviewed-by: maximedenes
| -rwxr-xr-x | dev/tools/merge-pr.sh | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/dev/tools/merge-pr.sh b/dev/tools/merge-pr.sh index ca6d9e0d83..a27dacc5a7 100755 --- a/dev/tools/merge-pr.sh +++ b/dev/tools/merge-pr.sh @@ -204,15 +204,16 @@ info "Fetching review data" reviews=$(curl -s "$API/pulls/$PR/reviews") msg="Merge PR #$PR: $TITLE" -select_state() { - jq -rc 'map(select(.state == "'"$1"'") | .user.login) | join(" ")' <<< "$reviews" +has_state() { + [ "$(jq -rc 'map(select(.user.login == "'"$1"'") | .state) | any(. == "'"$2"'")' <<< "$reviews")" = true ] } -for reviewer in $(select_state APPROVED); do - msg=$(printf '%s\n' "$msg" | git interpret-trailers --trailer Reviewed-by="$reviewer") -done -for reviewer in $(select_state COMMENTED); do - msg=$(printf '%s\n' "$msg" | git interpret-trailers --trailer Ack-by="$reviewer") +for reviewer in $(jq -rc 'map(.user.login) | unique | join(" ")' <<< "$reviews" ); do + if has_state "$reviewer" APPROVED; then + msg=$(printf '%s\n' "$msg" | git interpret-trailers --trailer Reviewed-by="$reviewer") + elif has_state "$reviewer" COMMENTED; then + msg=$(printf '%s\n' "$msg" | git interpret-trailers --trailer Ack-by="$reviewer") + fi done info "merging" |
