diff --git a/.github/workflows/eval.yml b/.github/workflows/eval.yml index 3c24ec77ae2fb..72b2103b87207 100644 --- a/.github/workflows/eval.yml +++ b/.github/workflows/eval.yml @@ -294,14 +294,7 @@ jobs: # There appears to be no API to request reviews based on GitHub IDs jq -r 'keys[]' comparison/maintainers.json \ | while read -r id; do gh api /user/"$id" --jq .login; done \ - | GH_TOKEN=${{ steps.app-token.outputs.token }} result/bin/process-reviewers.sh "$REPOSITORY" "$NUMBER" "$AUTHOR" \ - > reviewers.json - - # Request reviewers from maintainers of changed output paths - GH_TOKEN=${{ steps.app-token.outputs.token }} gh api \ - --method POST \ - /repos/"$REPOSITORY"/pulls/"$NUMBER"/requested_reviewers \ - --input reviewers.json + | GH_TOKEN=${{ steps.app-token.outputs.token }} result/bin/request-reviewers.sh "$REPOSITORY" "$NUMBER" "$AUTHOR" env: GH_TOKEN: ${{ github.token }} diff --git a/ci/request-reviews/request-code-owner-reviews.sh b/ci/request-reviews/request-code-owner-reviews.sh index 27725bd50773f..fefc8c3be3fa2 100755 --- a/ci/request-reviews/request-code-owner-reviews.sh +++ b/ci/request-reviews/request-code-owner-reviews.sh @@ -77,20 +77,6 @@ if ! "$SCRIPT_DIR"/verify-base-branch.sh "$tmp/nixpkgs.git" "$headRef" "$baseRep exit 1 fi -log "Getting code owners to request reviews from" +log "Requesting reviews from code owners" "$SCRIPT_DIR"/get-code-owners.sh "$tmp/nixpkgs.git" "$ownersFile" "$baseBranch" "$headRef" | \ - "$SCRIPT_DIR"/process-reviewers.sh "$baseRepo" "$prNumber" "$prAuthor" > "$tmp/reviewers.json" - -log "Requesting reviews from: $(<"$tmp/reviewers.json")" - -if ! response=$(effect gh api \ - --method POST \ - -H "Accept: application/vnd.github+json" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "/repos/$baseRepo/pulls/$prNumber/requested_reviewers" \ - --input "$tmp/reviewers.json"); then - log "Failed to request reviews: $response" - exit 1 -fi - -log "Successfully requested reviews" + "$SCRIPT_DIR"/request-reviewers.sh "$baseRepo" "$prNumber" "$prAuthor" diff --git a/ci/request-reviews/process-reviewers.sh b/ci/request-reviews/request-reviewers.sh similarity index 73% rename from ci/request-reviews/process-reviewers.sh rename to ci/request-reviews/request-reviewers.sh index 4ca5b8ace7aaa..9c676a2e6558b 100755 --- a/ci/request-reviews/process-reviewers.sh +++ b/ci/request-reviews/request-reviewers.sh @@ -1,11 +1,14 @@ #!/usr/bin/env bash -# Process reviewers for a PR, reading line-separated usernames on stdin, -# returning a JSON suitable to be consumed by the API endpoint to request reviews: +# Request reviewers for a PR, reading line-separated usernames on stdin, +# filtering for valid reviewers before using the API endpoint to request reviews: # https://docs.github.com/en/rest/pulls/review-requests?apiVersion=2022-11-28#request-reviewers-for-a-pull-request set -euo pipefail +tmp=$(mktemp -d) +trap 'rm -rf "$tmp"' exit + log() { echo "$@" >&2 } @@ -62,4 +65,18 @@ jq -n \ --arg users "${!users[*]}" \ '{ reviewers: $users | split(" "), - }' + }' > "$tmp/reviewers.json" + +log "Requesting reviews from: $(<"$reviewersFile")" + +if ! response=$(gh api \ + --method POST \ + -H "Accept: application/vnd.github+json" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "/repos/$baseRepo/pulls/$prNumber/requested_reviewers" \ + --input "$tmp/reviewers.json"); then + log "Failed to request reviews: $response" + exit 1 +fi + +log "Successfully requested reviews"