| 26 | export let disposable_spblitzversion = vscode.commands.registerCommand('extension.sp_blitzversion', getblitzversion); |
| 27 | |
| 28 | async function checkForUpdates(context?: sqlops.ObjectExplorerContext): Promise<string> { |
| 29 | let baseUrl = "https://api.github.com/repos/BrentOzarULTD/SQL-Server-First-Responder-Kit/releases/latest"; |
| 30 | let apitoken = 'token ' + apiconfig.token; |
| 31 | |
| 32 | try { |
| 33 | var connectId; |
| 34 | if (context) { |
| 35 | let connection = context.connectionProfile; |
| 36 | connectId = connection.id; |
| 37 | let connectionMaybe = await sqlops.connection.getCurrentConnection(); |
| 38 | if (!connectionMaybe) { |
| 39 | throw("Connect to server before checking First Responder Kit version."); |
| 40 | } |
| 41 | } else { |
| 42 | let connection = await sqlops.connection.getCurrentConnection(); |
| 43 | if (!connection) { |
| 44 | throw("Connect to server before checking First Responder Kit version."); |
| 45 | } |
| 46 | connectId = connection.connectionId; |
| 47 | } |
| 48 | vscode.window.showInformationMessage("Checking First Responder Kit for Updates"); |
| 49 | |
| 50 | let query = `declare @versionno datetime |
| 51 | DECLARE @VERSION VARCHAR(30) |
| 52 | |
| 53 | IF OBJECT_ID('dbo.sp_Blitz') IS NULL |
| 54 | set @versionno = '1/1/1900' |
| 55 | ELSE |
| 56 | BEGIN |
| 57 | BEGIN TRY |
| 58 | exec sp_blitz @VERSIONCHECKMODE = 1, @VERSION = @VERSION OUTPUT, @versiondate = @versionno output; |
| 59 | END TRY |
| 60 | BEGIN CATCH |
| 61 | exec sp_blitz @help = 1, @versiondate = @versionno output |
| 62 | END CATCH |
| 63 | END |
| 64 | |
| 65 | select convert(varchar(10),@versionno,112) as versionno`; |
| 66 | |
| 67 | let connectionUri = await sqlops.connection.getUriForConnection(connectId); |
| 68 | let queryProvider = sqlops.dataprotocol.getProvider<sqlops.QueryProvider>(context.connectionProfile.providerName, sqlops.DataProviderType.QueryProvider); |
| 69 | let results = await queryProvider.runQueryAndReturn(connectionUri, query); |
| 70 | let cell = results.rows[0][0]; |
| 71 | let currentVersion = cell.displayValue; |
| 72 | |
| 73 | //get live most recent version from github |
| 74 | var options = { |
| 75 | uri: baseUrl, |
| 76 | headers: { |
| 77 | 'Authorization': apitoken, |
| 78 | 'User-Agent': 'Request-Promise' |
| 79 | }, |
| 80 | json: true, |
| 81 | simple: false |
| 82 | }; |
| 83 | var scriptText = await request.get(options); |
| 84 | let recentVersion = scriptText.tag_name; |
| 85 | |