fix(aidoc_classes): Improve commit message generation by handling empty diffs and updating changelog instructions
This commit is contained in:
parent
e1323569f5
commit
eac26521c6
@ -1,7 +1,4 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
## 1.1.41
|
## 1.1.41
|
||||||
fix(aidoc_classes): Improve commit message generation by handling empty diffs and updating changelog instructions
|
- fix(aidoc_classes): Improve commit message generation by handling empty diffs and updating changelog instructions
|
||||||
|
|
||||||
## 1.0.2
|
|
||||||
- fix(core): update
|
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/tsdoc',
|
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.'
|
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> {
|
public async buildNextCommitObject(): Promise<INextCommitObject> {
|
||||||
const smartgitInstance = new plugins.smartgit.Smartgit();
|
const smartgitInstance = new plugins.smartgit.Smartgit();
|
||||||
await smartgitInstance.init();
|
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 diffString = await gitRepo.getUncommittedDiff();
|
||||||
const projectContext = new ProjectContext(this.projectDir);
|
const projectContext = new ProjectContext(this.projectDir);
|
||||||
let contextString = await projectContext.update();
|
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:
|
Below is the diff of the uncommitted changes. If nothing is changed, there are no changes:
|
||||||
|
|
||||||
${diffString || 'No changes.'}
|
${diffString || 'No changes.'}
|
||||||
`
|
`;
|
||||||
|
|
||||||
let result = await this.aiDocsRef.openaiInstance.chat({
|
let result = await this.aiDocsRef.openaiInstance.chat({
|
||||||
systemMessage: `
|
systemMessage: `
|
||||||
@ -62,7 +65,9 @@ Also you are given a diff
|
|||||||
});
|
});
|
||||||
|
|
||||||
// console.log(result.message);
|
// 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
|
// lets build the changelog based on that
|
||||||
const commitMessages = await gitRepo.getAllCommitMessages();
|
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
|
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.
|
Only output newer versions and their changes compared to ones already mentioned. We take of appending your output later.
|
||||||
`,
|
`,
|
||||||
userMessage: `
|
userMessage: `
|
||||||
The previous changelog file is:
|
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:
|
Here are the commit messages so far:
|
||||||
|
|
||||||
${commitMessages.join('\n\n')}
|
${commitMessages.join('\n\n')}
|
||||||
`
|
`,
|
||||||
})
|
});
|
||||||
|
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;
|
resultObject.changelog = result2.message;
|
||||||
|
}
|
||||||
return resultObject;
|
return resultObject;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user