smart-git-commit
Version:
AI-powered smart commit message generator for Git diffs.
34 lines (30 loc) • 938 B
JavaScript
import axios from "axios";
import { getApiKey } from "../utils/getApiKey.js";
import buildPrompt from "./buildPrompt.js";
import { basicCommit } from "./basicCommit.js";
export default async function suggestCommit(fileChanges) {
const apiKey = await getApiKey();
try {
const prompt = buildPrompt(fileChanges);
const response = await axios.post(
"https://api.openai.com/v1/chat/completions",
{
model: "gpt-3.5-turbo",
messages: [{ role: "user", content: prompt }],
max_tokens: 50,
temperature: 0.5,
},
{
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
}
);
const aiMessage = response.data.choices[0].message.content.trim();
return aiMessage;
} catch (err) {
console.error("AI Suggestion failed, falling back to basic commit.");
return basicCommit(fileChanges);
}
}