Skip to content

Commit bc608e9

Browse files
committed
fix: skip migrations and version check when called as git hook
Move isHookCalled() check before runMigrations() and checkIsLatestVersion() so that during git rebase, each pick commit exits immediately without expensive I/O and network calls. Also adds missing await on prepareCommitMessageHook() to properly handle async errors. Closes #493 Signed-off-by: majiayu000 <[email protected]>
1 parent 40182f2 commit bc608e9

File tree

3 files changed

+46
-33
lines changed

3 files changed

+46
-33
lines changed

out/cli.cjs

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -67277,8 +67277,8 @@ var MLXEngine = class {
6727767277
var DeepseekEngine = class extends OpenAiEngine {
6727867278
constructor(config7) {
6727967279
super({
67280-
...config7,
67281-
baseURL: "https://api.deepseek.com/v1"
67280+
baseURL: "https://api.deepseek.com/v1",
67281+
...config7
6728267282
});
6728367283
// Identical method from OpenAiEngine, re-implemented here
6728467284
this.generateCommitMessage = async (messages) => {
@@ -69561,7 +69561,13 @@ Z2(
6956169561
{
6956269562
version: package_default.version,
6956369563
name: "opencommit",
69564-
commands: [configCommand, hookCommand, commitlintConfigCommand, setupCommand, modelsCommand],
69564+
commands: [
69565+
configCommand,
69566+
hookCommand,
69567+
commitlintConfigCommand,
69568+
setupCommand,
69569+
modelsCommand
69570+
],
6956569571
flags: {
6956669572
fgm: {
6956769573
type: Boolean,
@@ -69585,23 +69591,23 @@ Z2(
6958569591
help: { description: package_default.description }
6958669592
},
6958769593
async ({ flags }) => {
69594+
if (await isHookCalled()) {
69595+
await prepareCommitMessageHook();
69596+
return;
69597+
}
6958869598
await runMigrations();
6958969599
await checkIsLatestVersion();
69590-
if (await isHookCalled()) {
69591-
prepareCommitMessageHook();
69592-
} else {
69593-
if (isFirstRun()) {
69594-
const setupComplete = await runSetup();
69595-
if (!setupComplete) {
69596-
process.exit(1);
69597-
}
69598-
}
69599-
const hasApiKey = await promptForMissingApiKey();
69600-
if (!hasApiKey) {
69600+
if (isFirstRun()) {
69601+
const setupComplete = await runSetup();
69602+
if (!setupComplete) {
6960169603
process.exit(1);
6960269604
}
69603-
commit(extraArgs, flags.context, false, flags.fgm, flags.yes);
6960469605
}
69606+
const hasApiKey = await promptForMissingApiKey();
69607+
if (!hasApiKey) {
69608+
process.exit(1);
69609+
}
69610+
commit(extraArgs, flags.context, false, flags.fgm, flags.yes);
6960569611
},
6960669612
extraArgs
6960769613
);

out/github-action.cjs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88062,8 +88062,8 @@ var MLXEngine = class {
8806288062
var DeepseekEngine = class extends OpenAiEngine {
8806388063
constructor(config6) {
8806488064
super({
88065-
...config6,
88066-
baseURL: "https://api.deepseek.com/v1"
88065+
baseURL: "https://api.deepseek.com/v1",
88066+
...config6
8806788067
});
8806888068
// Identical method from OpenAiEngine, re-implemented here
8806988069
this.generateCommitMessage = async (messages) => {

src/cli.ts

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,13 @@ cli(
2424
{
2525
version: packageJSON.version,
2626
name: 'opencommit',
27-
commands: [configCommand, hookCommand, commitlintConfigCommand, setupCommand, modelsCommand],
27+
commands: [
28+
configCommand,
29+
hookCommand,
30+
commitlintConfigCommand,
31+
setupCommand,
32+
modelsCommand
33+
],
2834
flags: {
2935
fgm: {
3036
type: Boolean,
@@ -48,28 +54,29 @@ cli(
4854
help: { description: packageJSON.description }
4955
},
5056
async ({ flags }) => {
57+
if (await isHookCalled()) {
58+
await prepareCommitMessageHook();
59+
return;
60+
}
61+
5162
await runMigrations();
5263
await checkIsLatestVersion();
5364

54-
if (await isHookCalled()) {
55-
prepareCommitMessageHook();
56-
} else {
57-
// Check for first run and trigger setup wizard
58-
if (isFirstRun()) {
59-
const setupComplete = await runSetup();
60-
if (!setupComplete) {
61-
process.exit(1);
62-
}
63-
}
64-
65-
// Check for missing API key and prompt if needed
66-
const hasApiKey = await promptForMissingApiKey();
67-
if (!hasApiKey) {
65+
// Check for first run and trigger setup wizard
66+
if (isFirstRun()) {
67+
const setupComplete = await runSetup();
68+
if (!setupComplete) {
6869
process.exit(1);
6970
}
71+
}
7072

71-
commit(extraArgs, flags.context, false, flags.fgm, flags.yes);
73+
// Check for missing API key and prompt if needed
74+
const hasApiKey = await promptForMissingApiKey();
75+
if (!hasApiKey) {
76+
process.exit(1);
7277
}
78+
79+
commit(extraArgs, flags.context, false, flags.fgm, flags.yes);
7380
},
7481
extraArgs
7582
);

0 commit comments

Comments
 (0)