diff --git a/app/exec/extension/_lib/extension-composer-factory.ts b/app/exec/extension/_lib/extension-composer-factory.ts index db7094b7..eeec0705 100644 --- a/app/exec/extension/_lib/extension-composer-factory.ts +++ b/app/exec/extension/_lib/extension-composer-factory.ts @@ -20,7 +20,8 @@ export class ComposerFactory { targets.forEach((target) => { switch (target.id) { case "Microsoft.VisualStudio.Services" : - case "Microsoft.VisualStudio.Services.Cloud" : + case "Microsoft.VisualStudio.Services.Cloud": + case "Microsoft.VisualStudio.Services.Resource.Cloud": case "Microsoft.TeamFoundation.Server" : composers.push(new VSSExtensionComposer(settings)); break; diff --git a/app/exec/extension/_lib/vsix-manifest-builder.ts b/app/exec/extension/_lib/vsix-manifest-builder.ts index b18b3d30..5ecf892e 100644 --- a/app/exec/extension/_lib/vsix-manifest-builder.ts +++ b/app/exec/extension/_lib/vsix-manifest-builder.ts @@ -281,6 +281,30 @@ export class VsixManifestBuilder extends ManifestBuilder { }); } break; + case "cloudresources": + if (_.isObject(value)) { + Object.keys(value).forEach(function (resourceType) { + let resourceTypeCased = _.capitalize(_.camelCase(resourceType)); + let resourceValue = _.get(value, resourceType); + if (resourceValue) { + if (_.isObject(resourceValue)) { + Object.keys(resourceValue).forEach((childType) => { + let childResourceValue = _.get(resourceValue, childType); + if (childResourceValue) { + this.addProperty("Microsoft.VisualStudio.Services.Resource.Cloud." + resourceTypeCased + childType, childResourceValue); + } else { + trace.warn("'%s' property not found for resource: '%s'... ignoring.", childType, resourceType); + } + }); + } else { + this.addProperty("Microsoft.VisualStudio.Services.Resource.Cloud." + resourceTypeCased, resourceValue); + } + } else { + trace.warn("'%s' property not found for resource: 'cloudResources'... ignoring.", resourceType); + } + }); + } + break; case "repository": if (_.isObject(value)) { const {type, url, uri} = value;