Skip to content

Commit f22e1d6

Browse files
committed
Update review assigner script
1 parent bd14f6b commit f22e1d6

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

.github/workflows/reviewers-assignees.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: Sync Reviewers and Assignees
22

33
on:
4-
pull_request:
4+
pull_request_target:
55
types: [review_requested]
66
pull_request_review:
77
types: [submitted]
@@ -41,11 +41,20 @@ jobs:
4141
script: |
4242
const pr = context.payload.pull_request;
4343
const reviewer = context.payload.review?.user;
44+
const state = context.payload.review?.state?.toLowerCase();
4445
const author = pr.user;
4546
if (!reviewer || !reviewer.login) {
4647
core.info('No reviewer user found in payload. Skipping.');
4748
return;
4849
}
50+
if (!state) {
51+
core.info('No review state provided. Skipping.');
52+
return;
53+
}
54+
if (!['approved', 'changes_requested'].includes(state)) {
55+
core.info(`Review state is '${state}' (likely a comment). Not removing assignee.`);
56+
return;
57+
}
4958
if (author && reviewer.login === author.login) {
5059
core.info('Reviewer is the PR author. Not removing assignee.');
5160
return;
@@ -58,3 +67,14 @@ jobs:
5867
});
5968
core.info(`Removed ${reviewer.login} from assignees on PR #${pr.number}`);
6069
70+
if (author?.login) {
71+
await github.rest.issues.addAssignees({
72+
owner: context.repo.owner,
73+
repo: context.repo.repo,
74+
issue_number: pr.number,
75+
assignees: [author.login],
76+
});
77+
core.info(`Re-assigned PR author ${author.login} to PR #${pr.number}`);
78+
} else {
79+
core.info('No PR author found to re-assign.');
80+
}

0 commit comments

Comments
 (0)