@@ -297,10 +297,17 @@ class ExtensionSpecificDistributionManager {
297297 `but encountered an error: ${ e } .` ) ;
298298 }
299299
300- // NOTE: We are tacitly assuming that at this point
301- // release.assets.length === 1. This is ensured by
302- // getLatestRelease for now. Reconsider this if a cli release ever
303- // has more than one asset.
300+ // Filter assets to the unique one that we require.
301+ const requiredAssetName = this . getRequiredAssetName ( ) ;
302+ const assets = release . assets . filter ( asset => asset . name === requiredAssetName ) ;
303+ if ( assets . length === 0 ) {
304+ throw new Error ( `Invariant violation: chose a release to install that didn't have ${ requiredAssetName } ` ) ;
305+ }
306+ if ( assets . length > 1 ) {
307+ logger . log ( 'WARNING: chose a release with more than one asset to install, found ' +
308+ assets . map ( asset => asset . name ) . join ( ', ' ) ) ;
309+ }
310+
304311 const assetStream = await this . createReleasesApiConsumer ( ) . streamBinaryContentOfAsset ( release . assets [ 0 ] ) ;
305312 const tmpDirectory = await fs . mkdtemp ( path . join ( os . tmpdir ( ) , "vscode-codeql" ) ) ;
306313
@@ -388,15 +395,6 @@ class ExtensionSpecificDistributionManager {
388395 return true ;
389396 }
390397 ) ;
391- // Actually filter assets to the unique one that we require.
392- release . assets = release . assets . filter ( asset => asset . name === requiredAssetName ) ;
393- if ( release . assets . length === 0 ) {
394- throw new Error ( `Invariant violation: chose a release to install that didn't have ${ requiredAssetName } ` ) ;
395- }
396- if ( release . assets . length > 1 ) {
397- logger . log ( 'WARNING: chose a release with more than one asset to install, found ' +
398- release . assets . map ( asset => asset . name ) . join ( ', ' ) ) ;
399- }
400398 return release ;
401399 }
402400
0 commit comments