chore(infra): hide previous bot comments (#4191)

* chore(infra): hide prev comments from bot

* fix comment format
This commit is contained in:
Krzysztof Moch 2024-09-28 14:52:23 +02:00 committed by GitHub
parent c81eea54d8
commit 724b32b434
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -28,7 +28,7 @@ const BOT_LABELS = [
...Object.values(PLATFORM_LABELS),
];
const SKIP_LABEL = "No Validation"
const SKIP_LABEL = 'No Validation';
const MESSAGE = {
FEATURE_REQUEST: `Thank you for your feature request. We will review it and get back to you if we need more information.`,
@ -154,7 +154,7 @@ const handleIssue = async ({github, context}) => {
const labels = new Set(issue.labels.map((label) => label.name));
if (labels.has(SKIP_LABEL)) {
console.log("Skiping Issue Validation")
console.log('Skiping Issue Validation');
return;
}
@ -212,33 +212,13 @@ const handleMissingInformation = async ({github, context, labels}) => {
)}`;
}
await hidePreviousComments({github, context});
await createComment({github, context, body: comment});
}
updateLabelsForMissingInfo(labels);
};
const updateLabelsForMissingInfo = (labels) => {
if (labels.has('missing-reproduction')) {
labels.add('Missing Repro');
labels.delete('Repro Provided');
} else {
labels.delete('Missing Repro');
labels.add('Repro Provided');
}
if (
Array.from(labels).find((label) => label.startsWith('outdated-version'))
) {
labels.add('Newer Version Available');
} else {
labels.delete('Newer Version Available');
}
labels.add('Missing Info');
labels.delete('Waiting for Review');
};
const handleValidReport = async ({github, context, labels}) => {
let comment = MESSAGE.BUG_REPORT;
@ -252,6 +232,7 @@ const handleValidReport = async ({github, context, labels}) => {
labels.add('Newer Version Available');
}
await hidePreviousComments({github, context});
await createComment({github, context, body: comment});
labels.add('Repro Provided');
labels.add('Waiting for Review');
@ -279,4 +260,34 @@ const updateIssueLabels = async ({github, context, labels}) => {
});
};
const hidePreviousComments = async ({github, context}) => {
const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.issue.number,
});
const botComments = comments.data.filter(
(comment) => comment.user.type === 'Bot',
);
for (const comment of botComments) {
// Don't format string - it will broke the markdown
const hiddenBody = `
<details>
<summary>Previous bot comment (click to expand)</summary>
${comment.body}
</details>`;
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: comment.id,
body: hiddenBody,
});
}
};
module.exports = handleIssue;