fix(aidoc_classes): Improve commit message generation by handling empty diffs and updating changelog instructions
This commit is contained in:
		| @@ -1,7 +1,4 @@ | ||||
| # Changelog | ||||
|  | ||||
| ## 1.1.41 | ||||
| fix(aidoc_classes): Improve commit message generation by handling empty diffs and updating changelog instructions | ||||
|  | ||||
| ## 1.0.2 | ||||
| - fix(core): update | ||||
| - fix(aidoc_classes): Improve commit message generation by handling empty diffs and updating changelog instructions | ||||
| @@ -3,6 +3,6 @@ | ||||
|  */ | ||||
| export const commitinfo = { | ||||
|   name: '@git.zone/tsdoc', | ||||
|   version: '1.1.41', | ||||
|   version: '1.1.42', | ||||
|   description: 'An advanced TypeScript documentation tool using AI to generate and enhance documentation for TypeScript projects.' | ||||
| } | ||||
|   | ||||
| @@ -22,7 +22,10 @@ export class Commit { | ||||
|   public async buildNextCommitObject(): Promise<INextCommitObject> { | ||||
|     const smartgitInstance = new plugins.smartgit.Smartgit(); | ||||
|     await smartgitInstance.init(); | ||||
|     const gitRepo = await plugins.smartgit.GitRepo.fromOpeningRepoDir(smartgitInstance, this.projectDir); | ||||
|     const gitRepo = await plugins.smartgit.GitRepo.fromOpeningRepoDir( | ||||
|       smartgitInstance, | ||||
|       this.projectDir | ||||
|     ); | ||||
|     const diffString = await gitRepo.getUncommittedDiff(); | ||||
|     const projectContext = new ProjectContext(this.projectDir); | ||||
|     let contextString = await projectContext.update(); | ||||
| @@ -32,7 +35,7 @@ ${contextString} | ||||
| Below is the diff of the uncommitted changes. If nothing is changed, there are no changes: | ||||
|  | ||||
| ${diffString || 'No changes.'} | ||||
|     ` | ||||
|     `; | ||||
|  | ||||
|     let result = await this.aiDocsRef.openaiInstance.chat({ | ||||
|       systemMessage: ` | ||||
| @@ -62,7 +65,9 @@ Also you are given a diff | ||||
|     }); | ||||
|  | ||||
|     // console.log(result.message); | ||||
|     const resultObject: INextCommitObject = JSON.parse(result.message.replace('```json', '').replace('```', '')); | ||||
|     const resultObject: INextCommitObject = JSON.parse( | ||||
|       result.message.replace('```json', '').replace('```', '') | ||||
|     ); | ||||
|  | ||||
|     // lets build the changelog based on that | ||||
|     const commitMessages = await gitRepo.getAllCommitMessages(); | ||||
| @@ -83,19 +88,27 @@ You are given | ||||
|  | ||||
| Only return the changelog file, so it can be written directly to changelog.md | ||||
|  | ||||
| For the latest version, that is not yet part of the commit messages, use {{nextVersion}} and {{nextVersionMessage}} placeholders. | ||||
| For the latest version, that is not yet part of the commit messages, add a placeholder entry that uses {{nextVersion}} and {{nextVersionMessage}} as variables to filled later. | ||||
| Only output newer versions and their changes compared to ones already mentioned. We take of appending your output later. | ||||
|       `, | ||||
|       userMessage: ` | ||||
| The previous changelog file is: | ||||
| ${(!previousChangelog) ? 'No previous changelog file found' : previousChangelog.contents.toString()} | ||||
| ${!previousChangelog ? 'No previous changelog file found' : previousChangelog.contents.toString()} | ||||
|  | ||||
| Here are the commit messages so far: | ||||
|  | ||||
| ${commitMessages.join('\n\n')} | ||||
| ` | ||||
|     }) | ||||
|     resultObject.changelog = result2.message; | ||||
| `, | ||||
|     }); | ||||
|     if (previousChangelog) { | ||||
|       let newChangelog = result2.message; | ||||
|       newChangelog = newChangelog.replace('# Changelog\n\n', ''); | ||||
|       let oldChangelog = previousChangelog.contents.toString().replace('# Changelog\n\n', ''); | ||||
|       newChangelog = `# Changelog\n\n${newChangelog}\n\n${oldChangelog}`; | ||||
|       resultObject.changelog = newChangelog; | ||||
|     } else { | ||||
|       resultObject.changelog = result2.message; | ||||
|     } | ||||
|     return resultObject; | ||||
|   } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user