Added ticket refinement bot #4

Merged
ztimson merged 4 commits from refinement into master 2025-12-30 15:38:49 -05:00
Showing only changes of commit 1b026529fe - Show all commits

View File

@@ -30,6 +30,26 @@ dotenv.config({path: '.env.local', override: true, quiet: true, debug: false});
const commit = await $`cd ${root} && git log -1 --pretty=format:%H`;
const gitDiff = await $`cd ${root} && git diff ${branch}`;
Review

The removal of the existing comments check eliminates protection against duplicate review comments. If the workflow runs multiple times, it will post the same comments repeatedly. Consider keeping this deduplication logic.

The removal of the existing comments check eliminates protection against duplicate review comments. If the workflow runs multiple times, it will post the same comments repeatedly. Consider keeping this deduplication logic.
if(!gitDiff) {
console.warn('No diff found');
return process.exit();
}
let existingComments = '';
if(git && pr) {
const res = await fetch(`${git}/api/v1/repos/${owner}/${repo}/pulls/${pr}/reviews`, {
headers: {'Authorization': `token ${auth}`}
});
if(res.ok) {
const reviews = await res.json();
const allComments = reviews.flatMap(r => r.comments || []);
if(allComments.length) {
existingComments = '\n\nExisting review comments (DO NOT repeat these):\n' +
allComments.map(c => `- ${c.path}:${c.line || c.position}: ${c.body}`).join('\n');
}
}
}
let options = {ollama: {model, host}};
if(host === 'anthropic') options = {anthropic: {model, token}};
else if(host === 'openai') options = {openAi: {model, token}};
@@ -37,7 +57,7 @@ dotenv.config({path: '.env.local', override: true, quiet: true, debug: false});
...options,
model: [host, model],
path: process.env['path'] || os.tmpdir(),
system: `You are a code reviewer. Analyze the git diff and use the \`recommend\` tool for EACH issue you find. You must call \`recommend\` exactly once for every bug or improvement opportunity directly related to changes. Ignore formatting recommendations. After making all recommendations, provide some concluding remarks about the overall state of the changes.`,
system: `You are a code reviewer. Analyze the git diff and use the \`recommend\` tool for EACH issue you find. You must call \`recommend\` exactly once for every bug or improvement opportunity directly related to changes. Ignore formatting recommendations. After making all recommendations, provide some concluding remarks about the overall state of the changes.${existingComments}`,
tools: [{
name: 'read_file',
description: 'Read contents of a file',
@@ -71,11 +91,6 @@ dotenv.config({path: '.env.local', override: true, quiet: true, debug: false});
}]
});
if(!gitDiff) {
console.warn('No diff found');
return process.exit();
}
const messages = await ai.language.ask(gitDiff);
const summary = messages.pop().content;
if(git) {