File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11name : Sync Reviewers and Assignees
22
33on :
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;
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+ }
You can’t perform that action at this time.
0 commit comments