diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f938ea5f64b1..8c0451a54754 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -66,6 +66,9 @@ jobs: '.github/workflows/pull-request-target.yml', '.github/workflows/reviewers.yml', '.github/workflows/test.yml', + 'ci/github-script/bot.js', + 'ci/github-script/merge.js', + 'ci/github-script/withRateLimit.js', ].includes(file))) core.setOutput('pr', true) merge-group: diff --git a/ci/github-script/merge.js b/ci/github-script/merge.js index 0cb65a11ae97..10e957db0362 100644 --- a/ci/github-script/merge.js +++ b/ci/github-script/merge.js @@ -6,13 +6,21 @@ async function runChecklist({ github, context, pull_request, maintainers }) { const pull_number = pull_request.number if (!committers) { - committers = github - .paginate(github.rest.teams.listMembersInOrg, { - org: context.repo.owner, - team_slug: 'nixpkgs-committers', - per_page: 100, - }) - .then((members) => new Set(members.map(({ id }) => id))) + if (context.eventName === 'pull_request') { + // We have no chance of getting a token in the pull_request context with the right + // permissions to access the members endpoint below. Thus, we're pretending to have + // no committers. This is OK; because this is only for the Test workflow, not for + // real use. + committers = new Set() + } else { + committers = github + .paginate(github.rest.teams.listMembersInOrg, { + org: context.repo.owner, + team_slug: 'nixpkgs-committers', + per_page: 100, + }) + .then((members) => new Set(members.map(({ id }) => id))) + } } const files = await github.paginate(github.rest.pulls.listFiles, {