Skip to content

Commit 82f087c

Browse files
authored
fix(approvals-satisfied): stop tagging users and teams in comment (#761)
1 parent cebcd04 commit 82f087c

6 files changed

Lines changed: 37 additions & 20 deletions

File tree

dist/284.index.js

Lines changed: 8 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/284.index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/59.index.js

Lines changed: 8 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/59.index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/helpers/approvals-satisfied.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ export const approvalsSatisfied = async ({
4747
const [team, numberOfRequiredReviews] = overrideString.split(':');
4848
return { team, numberOfRequiredReviews };
4949
});
50-
const teamsList = updateTeamsList(teams?.split('\n'));
50+
const teamsList = updateTeamsList(teams?.split(/[\n,]/).map(t => t.trim()));
5151
if (!validateTeamsList(teamsList)) {
5252
core.setFailed('If teams input is in the format "org/team", then the org must be the same as the repository org');
5353
return false;
5454
}
55-
const usersList = users?.split('\n');
55+
const usersList = users?.split(/[\n,]/).map(u => u.replaceAll('@', '').trim());
5656

5757
const logs = [];
5858

@@ -61,7 +61,7 @@ export const approvalsSatisfied = async ({
6161
.filter(({ state }) => state === 'APPROVED')
6262
.map(({ user }) => user?.login)
6363
.filter(Boolean);
64-
logs.push(`PR already approved by: ${approverLogins.toString()}`);
64+
logs.push(`PR already approved by: ${approverLogins.map(login => `\`${login}\``).join(', ')}`);
6565

6666
const requiredCodeOwnersEntries =
6767
teamsList || usersList
@@ -87,14 +87,21 @@ export const approvalsSatisfied = async ({
8787

8888
const numberOfRequiredReviews =
8989
teamOverrides?.find(({ team }) => team && entry.owners.includes(team))?.numberOfRequiredReviews ?? number_of_reviewers;
90-
logs.push(`Current number of approvals satisfied for ${entry.owners}: ${numberOfApprovals}`);
90+
logs.push(
91+
`Current number of approvals satisfied for ${entry.owners.map(o => `\`${o.replaceAll('@', '')}\``).join(',')}: ${numberOfApprovals}`
92+
);
9193
logs.push(`Number of required reviews: ${numberOfRequiredReviews}`);
9294

9395
return numberOfApprovals >= Number(numberOfRequiredReviews);
9496
};
9597

9698
if (requiredCodeOwnersEntriesWithOwners.length) {
97-
logs.push(`Required code owners: ${requiredCodeOwnersEntriesWithOwners.map(({ owners }) => owners).toString()}`);
99+
logs.push(
100+
`Required code owners: ${requiredCodeOwnersEntriesWithOwners
101+
.flatMap(({ owners }) => owners.map(o => o.replaceAll('@', '')))
102+
.map(o => `\`${o}\``)
103+
.join(', ')}`
104+
);
98105
}
99106

100107
const booleans = await Promise.all(requiredCodeOwnersEntriesWithOwners.map(codeOwnersEntrySatisfiesApprovals));

test/helpers/approvals-satisfied.test.ts

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,10 @@ describe('approvalsSatisfied', () => {
614614
{
615615
state: 'APPROVED',
616616
user: { login: 'user3' }
617+
},
618+
{
619+
state: 'APPROVED',
620+
user: { login: 'user4' }
617621
}
618622
]
619623
});
@@ -629,9 +633,9 @@ describe('approvalsSatisfied', () => {
629633
630634
Required approvals not satisfied:
631635
632-
PR already approved by: user3
633-
Required code owners: @user1,@user2
634-
Current number of approvals satisfied for @user1,@user2: 0
636+
PR already approved by: \`user3\`, \`user4\`
637+
Required code owners: \`user1\`, \`user2\`
638+
Current number of approvals satisfied for \`user1\`,\`user2\`: 0
635639
Number of required reviews: 1`
636640
})
637641
);

0 commit comments

Comments
 (0)