@@ -626,63 +626,6 @@ export class AIProviderService implements Disposable {
626626 return result != null ? { ...result , parsed : parseSummarizeResult ( result . content ) } : undefined ;
627627 }
628628
629- async prepareCompareDataForAIRequest (
630- repo : Repository ,
631- headRef : string ,
632- baseRef : string ,
633- options ?: {
634- cancellation ?: CancellationToken ;
635- reportNoDiffService ?: ( ) => void ;
636- reportNoCommitsService ?: ( ) => void ;
637- reportNoChanges ?: ( ) => void ;
638- } ,
639- ) : Promise < { diff : string ; logMessages : string } | undefined > {
640- const { cancellation, reportNoDiffService, reportNoCommitsService, reportNoChanges } = options ?? { } ;
641- const diffService = repo . git . diff ( ) ;
642- if ( diffService ?. getDiff === undefined ) {
643- if ( reportNoDiffService ) {
644- reportNoDiffService ( ) ;
645- return ;
646- }
647- }
648-
649- const commitsService = repo . git . commits ( ) ;
650- if ( commitsService ?. getLog === undefined ) {
651- if ( reportNoCommitsService ) {
652- reportNoCommitsService ( ) ;
653- return ;
654- }
655- }
656-
657- const [ diffResult , logResult ] = await Promise . allSettled ( [
658- diffService . getDiff ?.( headRef , baseRef , { notation : '...' } ) ,
659- commitsService . getLog ( `${ baseRef } ..${ headRef } ` ) ,
660- ] ) ;
661- const diff = getSettledValue ( diffResult ) ;
662- const log = getSettledValue ( logResult ) ;
663-
664- if ( ! diff ?. contents || ! log ?. commits ?. size ) {
665- reportNoChanges ?.( ) ;
666- return undefined ;
667- }
668-
669- if ( cancellation ?. isCancellationRequested ) throw new CancellationError ( ) ;
670-
671- const commitMessages : string [ ] = [ ] ;
672- for ( const commit of [ ...log . commits . values ( ) ] . sort ( ( a , b ) => a . date . getTime ( ) - b . date . getTime ( ) ) ) {
673- const message = commit . message ?? commit . summary ;
674- if ( message ) {
675- commitMessages . push (
676- `<commit-message ${ commit . date . toISOString ( ) } >\n${
677- commit . message ?? commit . summary
678- } \n<end-of-commit-message>`,
679- ) ;
680- }
681- }
682-
683- return { diff : diff . contents , logMessages : commitMessages . join ( '\n\n' ) } ;
684- }
685-
686629 async generateCreatePullRequest (
687630 repo : Repository ,
688631 baseRef : string ,
@@ -698,7 +641,7 @@ export class AIProviderService implements Disposable {
698641 const result = await this . sendRequest (
699642 'generate-create-pullRequest' ,
700643 async ( model , reporting , cancellation , maxInputTokens , retries ) => {
701- const compareData = await this . prepareCompareDataForAIRequest ( repo , headRef , baseRef , {
644+ const compareData = await prepareCompareDataForAIRequest ( repo , headRef , baseRef , {
702645 cancellation : cancellation ,
703646 } ) ;
704647
@@ -1452,3 +1395,60 @@ function isPrimaryAIProvider(provider: AIProviders): provider is AIPrimaryProvid
14521395function isPrimaryAIProviderModel ( model : AIModel ) : model is AIModel < AIPrimaryProviders , AIProviderAndModel > {
14531396 return isPrimaryAIProvider ( model . provider . id ) ;
14541397}
1398+
1399+ export async function prepareCompareDataForAIRequest (
1400+ repo : Repository ,
1401+ headRef : string ,
1402+ baseRef : string ,
1403+ options ?: {
1404+ cancellation ?: CancellationToken ;
1405+ reportNoDiffService ?: ( ) => void ;
1406+ reportNoCommitsService ?: ( ) => void ;
1407+ reportNoChanges ?: ( ) => void ;
1408+ } ,
1409+ ) : Promise < { diff : string ; logMessages : string } | undefined > {
1410+ const { cancellation, reportNoDiffService, reportNoCommitsService, reportNoChanges } = options ?? { } ;
1411+ const diffService = repo . git . diff ( ) ;
1412+ if ( diffService ?. getDiff === undefined ) {
1413+ if ( reportNoDiffService ) {
1414+ reportNoDiffService ( ) ;
1415+ return ;
1416+ }
1417+ }
1418+
1419+ const commitsService = repo . git . commits ( ) ;
1420+ if ( commitsService ?. getLog === undefined ) {
1421+ if ( reportNoCommitsService ) {
1422+ reportNoCommitsService ( ) ;
1423+ return ;
1424+ }
1425+ }
1426+
1427+ const [ diffResult , logResult ] = await Promise . allSettled ( [
1428+ diffService . getDiff ?.( headRef , baseRef , { notation : '...' } ) ,
1429+ commitsService . getLog ( `${ baseRef } ..${ headRef } ` ) ,
1430+ ] ) ;
1431+ const diff = getSettledValue ( diffResult ) ;
1432+ const log = getSettledValue ( logResult ) ;
1433+
1434+ if ( ! diff ?. contents || ! log ?. commits ?. size ) {
1435+ reportNoChanges ?.( ) ;
1436+ return undefined ;
1437+ }
1438+
1439+ if ( cancellation ?. isCancellationRequested ) throw new CancellationError ( ) ;
1440+
1441+ const commitMessages : string [ ] = [ ] ;
1442+ for ( const commit of [ ...log . commits . values ( ) ] . sort ( ( a , b ) => a . date . getTime ( ) - b . date . getTime ( ) ) ) {
1443+ const message = commit . message ?? commit . summary ;
1444+ if ( message ) {
1445+ commitMessages . push (
1446+ `<commit-message ${ commit . date . toISOString ( ) } >\n${
1447+ commit . message ?? commit . summary
1448+ } \n<end-of-commit-message>`,
1449+ ) ;
1450+ }
1451+ }
1452+
1453+ return { diff : diff . contents , logMessages : commitMessages . join ( '\n\n' ) } ;
1454+ }
0 commit comments