Skip to content

Commit ef940c1

Browse files
committed
Adds upgrade/switch actions to pre-release expiration
1 parent ac20da1 commit ef940c1

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/constants.commands.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@ export type CoreCommands =
289289
| 'workbench.action.nextEditor'
290290
| 'workbench.action.openWalkthrough'
291291
| 'workbench.action.toggleMaximizedPanel'
292+
| 'workbench.extensions.action.switchToRelease'
292293
| 'workbench.extensions.installExtension'
293294
| 'workbench.extensions.uninstallExtension'
294295
| 'workbench.files.action.focusFilesExplorer'

src/messages.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import type { BlameIgnoreRevsFileError } from './git/errors';
77
import { BlameIgnoreRevsFileBadRevisionError } from './git/errors';
88
import type { GitCommit } from './git/models/commit';
99
import { Logger } from './system/logger';
10-
import { executeCommand } from './system/vscode/command';
10+
import { executeCommand, executeCoreCommand } from './system/vscode/command';
1111
import { configuration } from './system/vscode/configuration';
1212
import { 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

147160
export function showLineUncommittedWarningMessage(message: string): Promise<MessageItem | undefined> {

0 commit comments

Comments
 (0)