From c34c8477f3d10444f8142e6917a752f06af1e246 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Mon, 23 Sep 2024 09:47:34 -0700 Subject: [PATCH] Add .gitattributes for genaiscript and update git commit flow script. (#7396) --- genaisrc/.gitattributes | 1 + genaisrc/gcm.genai.mts | 99 ++++++++++++++++++++------------------ genaisrc/genaiscript.d.ts | Bin 0 -> 65101 bytes genaisrc/tsconfig.json | 21 ++++++++ 4 files changed, 74 insertions(+), 47 deletions(-) create mode 100644 genaisrc/.gitattributes create mode 100644 genaisrc/genaiscript.d.ts create mode 100644 genaisrc/tsconfig.json diff --git a/genaisrc/.gitattributes b/genaisrc/.gitattributes new file mode 100644 index 000000000..b89350c92 --- /dev/null +++ b/genaisrc/.gitattributes @@ -0,0 +1 @@ +genaiscript.d.ts -diff merge=ours linguist-generated \ No newline at end of file diff --git a/genaisrc/gcm.genai.mts b/genaisrc/gcm.genai.mts index 54f6762a8..e1ebd1197 100644 --- a/genaisrc/gcm.genai.mts +++ b/genaisrc/gcm.genai.mts @@ -1,73 +1,78 @@ -// https://microsoft.github.io/genaiscript/guides/auto-git-commit-message/ -import { select, input, confirm } from "@inquirer/prompts" +/** + * git commit flow with auto-generated commit message + */ +script({ + title: "git commit message", + description: "Generate a commit message for all staged changes", +}) + +// TODO: update this diff command to match your workspace +const diffCmd = "git diff --cached -- . :!**/genaiscript.d.ts" // Check for staged changes and stage all changes if none are staged -let diff = await host.exec("git", ["diff", "--cached"]) +let diff = await host.exec(diffCmd) if (!diff.stdout) { - const stage = await confirm({ - message: "No staged changes. Stage all changes?", + /** + * Ask user to stage all changes if none are staged + */ + const stage = await host.confirm("No staged changes. Stage all changes?", { default: true, }) if (stage) { - await host.exec("git", ["add", "."]) - diff = await host.exec("git", [ - "diff", - "--cached", - "--", - ".", - ":!**/genaiscript.d.ts", - ]) + // Stage all changes and recompute diff + await host.exec("git add .") + diff = await host.exec(diffCmd) } if (!diff.stdout) cancel("no staged changes") } +// show diff in the console console.log(diff.stdout) let choice let message do { // Generate commit message - message = ( - await runPrompt( - (_) => { - _.def("GIT_DIFF", diff, { maxTokens: 20000 }) - _.$`GIT_DIFF is a diff of all staged changes, coming from the command: + const res = await runPrompt( + (_) => { + _.def("GIT_DIFF", diff, { maxTokens: 20000 }) + _.$`GIT_DIFF is a diff of all staged changes, coming from the command: \`\`\` git diff --cached \`\`\` Please generate a concise, one-line commit message for these changes. -- do NOT add quotes` - }, - { cache: false, temperature: 0.8 } - ) - ).text +- do NOT add quotes +` // TODO: add a better prompt + }, + { cache: false, temperature: 0.8 } + ) + if (res.error) throw res.error + + message = res.text + if (!message) { + console.log("No message generated, did you configure the LLM model?") + break + } // Prompt user for commit message - choice = await select({ - message, - choices: [ - { - name: "commit", - value: "commit", - description: "accept message and commit", - }, - { - name: "edit", - value: "edit", - description: "edit message and commit", - }, - { - name: "regenerate", - value: "regenerate", - description: "regenerate message", - }, - ], - }) + choice = await host.select(message, [ + { + value: "commit", + description: "accept message and commit", + }, + { + value: "edit", + description: "edit message and commit", + }, + { + value: "regenerate", + description: "regenerate message", + }, + ]) // Handle user choice if (choice === "edit") { - message = await input({ - message: "Edit commit message", + message = await host.input("Edit commit message", { required: true, }) choice = "commit" @@ -75,8 +80,8 @@ Please generate a concise, one-line commit message for these changes. // Regenerate message if (choice === "commit" && message) { console.log((await host.exec("git", ["commit", "-m", message])).stdout) - if (await confirm({ message: "Push changes?", default: true })) - console.log((await host.exec("git", ["push"])).stdout) + if (await host.confirm("Push changes?", { default: true })) + console.log((await host.exec("git push")).stdout) break } } while (choice !== "commit") diff --git a/genaisrc/genaiscript.d.ts b/genaisrc/genaiscript.d.ts new file mode 100644 index 0000000000000000000000000000000000000000..df355fd9fa1b190cf319b4f7c3aed7f553ed3c6f GIT binary patch literal 65101 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 literal 0 HcmV?d00001 diff --git a/genaisrc/tsconfig.json b/genaisrc/tsconfig.json new file mode 100644 index 000000000..510eefe8f --- /dev/null +++ b/genaisrc/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "lib": [ + "ES2022" + ], + "target": "ES2023", + "module": "NodeNext", + "moduleDetection": "force", + "moduleResolution": "nodenext", + "checkJs": true, + "allowJs": true, + "skipLibCheck": true, + "noEmit": true, + "allowImportingTsExtensions": true + }, + "include": [ + "*.mjs", + "*.mts", + "./genaiscript.d.ts" + ] +} \ No newline at end of file