@@ -7,7 +7,7 @@ import type { BlameIgnoreRevsFileError } from './git/errors';
7
7
import { BlameIgnoreRevsFileBadRevisionError } from './git/errors' ;
8
8
import type { GitCommit } from './git/models/commit' ;
9
9
import { Logger } from './system/logger' ;
10
- import { executeCommand } from './system/vscode/command' ;
10
+ import { executeCommand , executeCoreCommand } from './system/vscode/command' ;
11
11
import { configuration } from './system/vscode/configuration' ;
12
12
import { openUrl } from './system/vscode/utils' ;
13
13
@@ -137,11 +137,24 @@ export function showGitVersionUnsupportedErrorMessage(
137
137
) ;
138
138
}
139
139
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 (
142
144
'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 ,
144
149
) ;
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
+ }
145
158
}
146
159
147
160
export function showLineUncommittedWarningMessage ( message : string ) : Promise < MessageItem | undefined > {
0 commit comments