When the PR author has admin or maintain access, the action logs a skip message and returns early but does not set core.setOutput('skipped', 'true'). The allowed-bots path does set this output.
This means the "Convert PR to draft" step still runs for maintainers, because steps.validate.outputs.skipped is unset:
if: >-
steps.validate.outputs.was-closed != 'true'
&& steps.validate.outputs.skipped != 'true'
&& github.event.pull_request.draft == false
Failed run: https://github.com/getsentry/sentry-native/actions/runs/23681625659/job/68994397549?pr=1606
Relevant code (validate-pr/scripts/validate-pr.js):
Allowed bots (correct):
if (ALLOWED_BOTS.includes(prAuthor)) {
core.info(`PR author ${prAuthor} is an allowed bot. Skipping.`);
core.setOutput('skipped', 'true');
return;
}
Maintainer check (missing output):
if (authorIsMaintainer) {
core.info(`PR author ${prAuthor} has admin/maintain access. Skipping.`);
return; // <-- no setOutput('skipped', 'true')
}
Expected behavior: Maintainers should be fully skipped, including the draft conversion step.
Fix: Add core.setOutput('skipped', 'true'); before the return in the maintainer check.
When the PR author has admin or maintain access, the action logs a skip message and returns early but does not set
core.setOutput('skipped', 'true'). The allowed-bots path does set this output.This means the "Convert PR to draft" step still runs for maintainers, because
steps.validate.outputs.skippedis unset:Failed run: https://github.com/getsentry/sentry-native/actions/runs/23681625659/job/68994397549?pr=1606
Relevant code (
validate-pr/scripts/validate-pr.js):Allowed bots (correct):
Maintainer check (missing output):
Expected behavior: Maintainers should be fully skipped, including the draft conversion step.
Fix: Add
core.setOutput('skipped', 'true');before thereturnin the maintainer check.