Skip to content

Commit 95f973e

Browse files
committed
fix: use artifact-based PR number passing for draft conversion
The API-based PR lookup from workflow_run context does not work for pull_request_review triggers as head_branch refers to the default branch, not the PR branch. Switch back to accepting pr_number as an input, with integer validation.
1 parent 1b4b219 commit 95f973e

1 file changed

Lines changed: 11 additions & 16 deletions

File tree

.github/workflows/draft-on-changes-requested.yml

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ name: Draft on Changes Requested
22

33
on:
44
workflow_call:
5+
inputs:
6+
pr_number:
7+
required: true
8+
type: number
59
secrets:
610
token:
711
required: true
@@ -15,29 +19,20 @@ jobs:
1519
with:
1620
github-token: ${{ secrets.token }}
1721
script: |
18-
const run = context.payload.workflow_run;
19-
if (!run) {
20-
core.setFailed("This workflow must be called from a workflow_run trigger.");
22+
const prNumber = ${{ inputs.pr_number }};
23+
if (!Number.isInteger(prNumber) || prNumber <= 0) {
24+
core.setFailed(`Invalid PR number: ${prNumber}`);
2125
return;
2226
}
2327
24-
const owner = run.head_repository.owner.login;
25-
const branch = run.head_branch;
26-
const { data: prs } = await github.rest.pulls.list({
28+
const { data: pr } = await github.rest.pulls.get({
2729
owner: context.repo.owner,
2830
repo: context.repo.repo,
29-
state: "open",
30-
head: `${owner}:${branch}`,
31+
pull_number: prNumber,
3132
});
3233
33-
if (prs.length === 0) {
34-
core.info("No open PR found for this branch.");
35-
return;
36-
}
37-
38-
const pr = prs[0];
3934
if (pr.draft) {
40-
core.info(`PR #${pr.number} is already a draft, skipping.`);
35+
core.info(`PR #${prNumber} is already a draft, skipping.`);
4136
return;
4237
}
4338
@@ -49,4 +44,4 @@ jobs:
4944
}
5045
`, { id: pr.node_id });
5146
52-
core.info(`Converted PR #${pr.number} to draft.`);
47+
core.info(`Converted PR #${prNumber} to draft.`);

0 commit comments

Comments
 (0)