From ec699c48bff7a90dc35d553723ba9f60c852e073 Mon Sep 17 00:00:00 2001 From: Jack Lukic Date: Sun, 3 Mar 2024 06:23:44 -0500 Subject: [PATCH] Bug (commitling) Parse JSON blocks from return response (#297) --- src/modules/commitlint/config.ts | 4 ++++ src/modules/commitlint/utils.ts | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/modules/commitlint/config.ts b/src/modules/commitlint/config.ts index 71f54db..2f6b076 100644 --- a/src/modules/commitlint/config.ts +++ b/src/modules/commitlint/config.ts @@ -61,6 +61,10 @@ export const configureCommitlintIntegration = async (force = false) => { // Cleanup the consistency answer. Sometimes 'gpt-3.5-turbo' sends rule's back. prompts.forEach((prompt) => (consistency = consistency.replace(prompt, ''))); + + // sometimes consistency is preceded by explanatory text like "Here is your JSON:" + consistency = utils.getJSONBlock(consistency); + // ... remaining might be extra set of "\n" consistency = utils.removeDoubleNewlines(consistency); diff --git a/src/modules/commitlint/utils.ts b/src/modules/commitlint/utils.ts index aba2a71..d46d18b 100644 --- a/src/modules/commitlint/utils.ts +++ b/src/modules/commitlint/utils.ts @@ -16,6 +16,16 @@ export const removeDoubleNewlines = (input: string): string => { return input; }; +export const getJSONBlock = (input: string): string => { + const jsonIndex = input.search('```json'); + if(jsonIndex > -1) { + input = input.slice(jsonIndex + 8); + const endJsonIndex = consistency.search('```'); + input = input.slice(0, endJsonIndex); + } + return input; +}; + export const commitlintLLMConfigExists = async (): Promise => { let exists; try { @@ -44,4 +54,4 @@ export const getCommitlintLLMConfig = content.toString() ) as CommitlintLLMConfig; return commitLintLLMConfig; - }; +};