@@ -518,6 +518,44 @@ export class AIProviderService implements Disposable {
518518 return result != null ? { ...result , parsed : parseSummarizeResult ( result . content ) } : undefined ;
519519 }
520520
521+ async generatePullRequestMessage (
522+ repo : Repository ,
523+ baseRef : string ,
524+ compareRef : string ,
525+ source : Source ,
526+ options ?: {
527+ cancellation ?: CancellationToken ;
528+ context ?: string ;
529+ generating ?: Deferred < AIModel > ;
530+ progress ?: ProgressOptions ;
531+ } ,
532+ ) : Promise < AISummarizeResult | undefined > {
533+ const diff = await repo . git . diff ( ) . getDiff ?.( compareRef , baseRef ) ;
534+
535+ const result = await this . sendRequest (
536+ 'generate-commitMessage' ,
537+ ( ) => ( {
538+ diff : diff ?. contents ?? '[no code changes]' ,
539+ context : options ?. context ?? '' ,
540+ instructions : configuration . get ( 'ai.generateCommitMessage.customInstructions' ) ?? '' ,
541+ } ) ,
542+ m => `Generating commit message with ${ m . name } ...` ,
543+ source ,
544+ m => ( {
545+ key : 'ai/generate' ,
546+ data : {
547+ type : 'commitMessage' ,
548+ 'model.id' : m . id ,
549+ 'model.provider.id' : m . provider . id ,
550+ 'model.provider.name' : m . provider . name ,
551+ 'retry.count' : 0 ,
552+ } ,
553+ } ) ,
554+ options ,
555+ ) ;
556+ return result != null ? { ...result , parsed : parseSummarizeResult ( result . content ) } : undefined ;
557+ }
558+
521559 async generateDraftMessage (
522560 changesOrRepo : string | string [ ] | Repository ,
523561 sourceContext : Source & { type : AIGenerateDraftEventData [ 'draftType' ] } ,
0 commit comments