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 = '🤖 This comment will be automatically updated with the latest benchmark results.'; 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 }); } };