grt
Version:
grt command-line interface ā test, diff, preview APIs
36 lines (28 loc) ⢠1.14 kB
JavaScript
import axios from 'axios';
import { getToken } from './config.js';
import chalk from 'chalk';
export async function runDiff({ owner, repo, base, head }) {
const token = getToken();
console.log(`š Comparing ${base} ā ${head} in ${owner}/${repo}`);
try {
const res = await axios.get(`http://localhost:3000/changelog/${owner}/${repo}/${base}/${head}`, {
headers: { Authorization: `Bearer ${token}` }
});
const diff = res.data;
if (diff.message) {
console.log(chalk.gray(diff.message));
return;
}
console.log(chalk.green('\nā
Added Paths:'));
diff.addedPaths.forEach(p => console.log(chalk.green(`+ ${p}`)));
console.log(chalk.red('\nā Removed Paths:'));
diff.removedPaths.forEach(p => console.log(chalk.red(`- ${p}`)));
console.log(chalk.yellow('\nā ļø Changed Paths:'));
diff.changedPaths.forEach(c => {
console.log(chalk.yellow(`~ ${c.method} ${c.path} (${Object.keys(c.changes).join(', ')})`));
});
} catch (err) {
console.error('ā Failed to fetch diff:', err.message);
process.exit(1);
}
}