snapshot of https://github.com/casbin/casbin.git (master, 2026-09-15; blobs > 131072B omitted)
This commit is contained in:
59
.github/scripts/post_comment.js
vendored
Normal file
59
.github/scripts/post_comment.js
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
module.exports = async ({github, context, core}) => {
|
||||
const fs = require('fs');
|
||||
|
||||
// Validate pr_number.txt
|
||||
if (!fs.existsSync('pr_number.txt')) {
|
||||
core.setFailed("Required artifact file 'pr_number.txt' was not found in the workspace.");
|
||||
return;
|
||||
}
|
||||
const prNumberContent = fs.readFileSync('pr_number.txt', 'utf8').trim();
|
||||
const issue_number = parseInt(prNumberContent, 10);
|
||||
if (!Number.isFinite(issue_number) || issue_number <= 0) {
|
||||
core.setFailed('Invalid PR number in pr_number.txt: "' + prNumberContent + '"');
|
||||
return;
|
||||
}
|
||||
|
||||
// Validate comparison.md
|
||||
if (!fs.existsSync('comparison.md')) {
|
||||
core.setFailed("Required artifact file 'comparison.md' was not found in the workspace.");
|
||||
return;
|
||||
}
|
||||
let comparison;
|
||||
try {
|
||||
comparison = fs.readFileSync('comparison.md', 'utf8');
|
||||
} catch (error) {
|
||||
core.setFailed("Failed to read 'comparison.md': " + error.message);
|
||||
return;
|
||||
}
|
||||
|
||||
// Find existing comment
|
||||
const { data: comments } = await github.rest.issues.listComments({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue_number,
|
||||
});
|
||||
|
||||
const botComment = comments.find(comment =>
|
||||
comment.user.type === 'Bot' &&
|
||||
comment.body.includes('Benchmark Comparison')
|
||||
);
|
||||
|
||||
const footer = '<sub>🤖 This comment will be automatically updated with the latest benchmark results.</sub>';
|
||||
const commentBody = `${comparison}\n\n${footer}`;
|
||||
|
||||
if (botComment) {
|
||||
await github.rest.issues.updateComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
comment_id: botComment.id,
|
||||
body: commentBody
|
||||
});
|
||||
} else {
|
||||
await github.rest.issues.createComment({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
issue_number: issue_number,
|
||||
body: commentBody
|
||||
});
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user