From 153038ae8b382359e8f08f60054c470883c4b2fa Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Mon, 27 Apr 2026 00:05:43 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Add=20custom=20timeout=20argument?= =?UTF-8?q?=20to=20git=20commit=20script?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- libraries/deno-ai-mod.ts | 6 ++++-- script-meta-v2.json | 6 +++--- single-scripts/commit.ts | 14 ++++++++++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/libraries/deno-ai-mod.ts b/libraries/deno-ai-mod.ts index 0aaffd9..9494f27 100644 --- a/libraries/deno-ai-mod.ts +++ b/libraries/deno-ai-mod.ts @@ -32,7 +32,9 @@ export async function howto(message: string): Promise { return (await response.json())["data"]["summary"]; } -export async function summarizeGitStatusDiff(): Promise { +export async function summarizeGitStatusDiff( + timeoutMillis?: number, +): Promise { const gitStatus = (await execCommand("git", ["status"])) .assertSuccess().getStdoutAsStringThenTrim(); const gitDiff = (await execCommand("git", ["diff"])) @@ -50,7 +52,7 @@ export async function summarizeGitStatusDiff(): Promise { "gitStatus": gitStatus, "gitDiff": gitDiff, }), - timeoutMillis: 30_000, + timeoutMillis: timeoutMillis ?? 30_000, }, ); if (response.status != 200) { diff --git a/script-meta-v2.json b/script-meta-v2.json index 03393fa..36d3a8e 100644 --- a/script-meta-v2.json +++ b/script-meta-v2.json @@ -63,12 +63,12 @@ }, "commit.ts": { "script_name": "commit.ts", - "script_length": 3837, - "script_sha256": "c61abe4b6fc8e9eb71795fff5cbcb8d3b1907eee541559abb34d316364967e3b", + "script_length": 4070, + "script_sha256": "b71c50161801e910857589860c6acb1d25124c07f09c123159678376c8ac00f1", "script_full_url": "https://git.hatter.ink/hatter/ts-scripts/raw/branch/main/single-scripts/commit.ts", "single_script_file": true, "publish_time": 1769318306585, - "update_time": 1776005626908 + "update_time": 1777219521641 }, "decode-uri-component.ts": { "script_name": "decode-uri-component.ts", diff --git a/single-scripts/commit.ts b/single-scripts/commit.ts index 57113de..93bb1a3 100755 --- a/single-scripts/commit.ts +++ b/single-scripts/commit.ts @@ -2,7 +2,7 @@ import {parseArgs} from "jsr:@std/cli/parse-args"; import {execCommandShell, log, ProcessBar, term,} from "https://script.hatter.ink/@61/deno-commons-mod.ts"; -import {summarizeGitStatusDiff} from "https://script.hatter.ink/@2/deno-ai-mod.ts"; +import {summarizeGitStatusDiff} from "https://script.hatter.ink/@4/deno-ai-mod.ts"; import {getGitLocalRev, getGitRemoteRev, getGitStatus,} from "https://script.hatter.ink/@2/deno-git-mod.ts"; async function checkRev(): Promise { @@ -22,14 +22,20 @@ async function checkRev(): Promise { async function main() { const flags = parseArgs(Deno.args, { boolean: ["help", "check-only", "auto-commit"], + string: ["timeout-ms"], alias: { h: "help", C: "check-only", A: "auto-commit", + t: "timeout-ms", }, }); const checkOnly = flags["check-only"]; const autoCommit = flags["auto-commit"]; + const argTimeoutMs = flags["timeout-ms"]; + const timeoutMillis: number | undefined = argTimeoutMs + ? parseInt(argTimeoutMs) + : undefined; if (flags.help) { console.log(`commit.ts @@ -55,7 +61,7 @@ commit.ts [-A|--auto-commit] - auto commit with AI summarize const summary = await new ProcessBar("AI summarizing").call( async (): Promise => { - return await summarizeGitStatusDiff(); + return await summarizeGitStatusDiff(timeoutMillis); }, ); if (summary != null) { @@ -117,5 +123,5 @@ main().catch((err) => { process.exit(0); }).then(() => process.exit(0)); -// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.20260412T225340+08:00.MEUCIQCtE3akY/QOeUWRm6sz -// R/yRzGFIChTIGNcBHouraVAkWwIgMsbQ2FvJIJDHHgyyeimmRbe7+8nYuVYGcw1udlCZz2A= +// @SCRIPT-SIGNATURE-V1: yk-r1.ES256.20260427T000515+08:00.MEUCIQCWHN3NOg3iwZnNIuLp +// 3EqVZEuJjqD4x1+gfgpGgznuEgIga/bS7aBT5mQtp7VWG27mY8DOgBxjDkj0NKTJ+TnqsDM=