Skip to content

Commit 7031b93

Browse files
Improve PR approval script logging (#219)
Improve the logging in our PR approvals workflow. This is a good thing to do generally, but we're specifically trying to debug why the script is failing in #107. By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 and MIT licenses. Co-authored-by: Michael Tautschnig <[email protected]>
1 parent b6552b8 commit 7031b93

File tree

1 file changed

+17
-15
lines changed

1 file changed

+17
-15
lines changed

.github/workflows/pr_approval.yml

+17-15
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ jobs:
5252
pull_number = context.issue.number;
5353
}
5454
55+
console.log(`owner is ${owner}`);
56+
console.log(`pull_number is ${pull_number}`);
5557
5658
// Get parsed data
59+
let requiredApprovers;
5760
try {
5861
const tomlContent = fs.readFileSync('.github/pull_requests.toml', 'utf8');
5962
console.log('TOML content:', tomlContent);
@@ -85,23 +88,22 @@ jobs:
8588
);
8689
8790
const requiredApprovals = 2;
88-
const currentCountfromCommittee = Array.from(approvers)
89-
.filter(approver => requiredApprovers.includes(approver))
90-
.length;
91-
92-
// TODO: Improve logging and messaging to the user
93-
console.log('PR Approvers:', Array.from(approvers));
94-
console.log('Required Approvers:', requiredApprovals);
91+
const committeeApprovers = Array.from(approvers)
92+
.filter(approver => requiredApprovers.includes(approver));
93+
const currentCountfromCommittee = committeeApprovers.length;
9594
9695
// Core logic that checks if the approvers are in the committee
97-
const checkName = 'PR Approval Status';
98-
const conclusion = (approvers.size >= requiredApprovals && currentCountfromCommittee >= 2) ? 'success' : 'failure';
99-
const output = {
100-
title: checkName,
101-
summary: `PR has ${approvers.size} total approvals and ${requiredApprovals} required approvals.`,
102-
text: `Approvers: ${Array.from(approvers).join(', ')}\nRequired Approvers: ${requiredApprovers.join(', ')}`
103-
};
96+
const conclusion = (currentCountfromCommittee >= 2) ? 'success' : 'failure';
10497
98+
console.log('PR Approval Status');
99+
console.log(`PR has ${approvers.size} total approvals and ${currentCountfromCommittee} required approvals from the committee.`);
100+
101+
console.log(`Committee Members: [${requiredApprovers.join(', ')}]`);
102+
console.log(`Committee Approvers: ${committeeApprovers.length === 0 ? 'NONE' : `[${committeeApprovers.join(', ')}]`}`);
103+
console.log(`All Approvers: ${approvers.size === 0 ? 'NONE' : `[${Array.from(approvers).join(', ')}]`}`);
104+
105105
if (conclusion === 'failure') {
106-
core.setFailed(`PR needs at least ${requiredApprovals} total approvals and 2 required approvals. Current approvals: ${approvers.size}, Required approvals: ${requiredApprovals}`);
106+
core.setFailed(`PR needs 2 approvals from committee members, but it has ${currentCountfromCommittee}`);
107+
} else {
108+
core.info('PR approval check passed successfully.');
107109
}

0 commit comments

Comments
 (0)