@@ -7,7 +7,7 @@ import type { BlameIgnoreRevsFileError } from './git/errors';
77import { BlameIgnoreRevsFileBadRevisionError } from './git/errors' ;
88import type { GitCommit } from './git/models/commit' ;
99import { Logger } from './system/logger' ;
10- import { executeCommand } from './system/vscode/command' ;
10+ import { executeCommand , executeCoreCommand } from './system/vscode/command' ;
1111import { configuration } from './system/vscode/configuration' ;
1212import { openUrl } from './system/vscode/utils' ;
1313
@@ -137,11 +137,24 @@ export function showGitVersionUnsupportedErrorMessage(
137137 ) ;
138138}
139139
140- export function showPreReleaseExpiredErrorMessage ( version : string ) {
141- return showMessage (
140+ export async function showPreReleaseExpiredErrorMessage ( version : string ) {
141+ const upgrade = { title : 'Upgrade' } ;
142+ const switchToRelease = { title : 'Switch to Release Version' } ;
143+ const result = await showMessage (
142144 'error' ,
143- `This GitLens pre-release version (${ version } ) has expired. Please upgrade to a more recent version.` ,
145+ `This pre-release version (${ version } ) of GitLens has expired. Please upgrade to a more recent pre-release, or switch to the release version.` ,
146+ undefined ,
147+ null ,
148+ upgrade ,
144149 ) ;
150+
151+ if ( result === upgrade ) {
152+ void executeCoreCommand ( 'workbench.extensions.installExtension' , 'eamodio.gitlens' , {
153+ installPreReleaseVersion : true ,
154+ } ) ;
155+ } else if ( result === switchToRelease ) {
156+ void executeCoreCommand ( 'workbench.extensions.action.switchToRelease' , 'eamodio.gitlens' ) ;
157+ }
145158}
146159
147160export function showLineUncommittedWarningMessage ( message : string ) : Promise < MessageItem | undefined > {
0 commit comments