renovate icon indicating copy to clipboard operation
renovate copied to clipboard

Support for Azure Pipelines Tasks

Open JamieMagee opened this issue 2 years ago • 9 comments

What would you like Renovate to be able to do?

Azure Pipelines is very similar to GitHub Actions. It is made up of a list of steps that refer to tasks, which are versioned JavaScript packages. For example

- task: Bash@3
  inputs:
    script: echo hello

If you have any ideas on how this should be implemented, please tell us here.

There are two types of Azure Pipelines tasks:

  • Built-in
  • Marketplace

Built-in extensions are a part of Azure DevOps itself, and do not need to be explicitly installed. The source of truth for them is https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks.

Marketplace extensions must be explicitly installed by a user. The source of truth for them is the Visual Studio Marketplace^1

Is this a feature you are interested in implementing yourself?

Yes

JamieMagee avatar Jun 01 '22 05:06 JamieMagee

Hi there,

You're requesting support for a new package manager. We need to know some basic information about this package manager first. Please copy/paste the new package manager questionnaire, and fill it out in full.

Once the questionnaire is filled out we will evaluate if adding support for this manager is something we want to do.

Good luck,

The Renovate team

github-actions[bot] avatar Jun 01 '22 05:06 github-actions[bot]

Investigating this a bit more the API to use is going to be https://dev.azure.com/{organizationName}/_apis/distributedtask/tasks?allVersions=true.

This API returns all available versions for a task in the current organization. Not all task versions are available in all organizations.

I can't find this API exposed via azure-devops-node-api (Thought I might not be looking in the right place. I can, however, find the response type TaskDefinition^1

JamieMagee avatar Jul 26 '22 05:07 JamieMagee

Versions in Azure Pipelines are immutable and pinning will not be necessary for this manager.

JamieMagee avatar Jul 26 '22 05:07 JamieMagee

Work is complete on support for built-in Azure Pipelines tasks.

Providing support for custom Azure Pipelines tasks is a little more complicated. Custom Azure Pipelines tasks come from the Visual Studio Marketplace. The API for this doesn't provide us with the information that we need directly. For example take the following pipeline:

step:
- task: AppStoreRelease@1

If I search the marketplace, either through the UI^1 or API, I receive no results. The extension this belongs to is called "Apple App Store" and has the following metadata:

Details
{
  "publisher": {
    "publisherId": "e0d976fd-2160-4f6e-811e-4e91431c5533",
    "publisherName": "ms-vsclient",
    "displayName": "Microsoft",
    "flags": "verified",
    "domain": null,
    "isDomainVerified": false
  },
  "extensionId": "fd779727-f190-4827-9972-d0a34dfb5b98",
  "extensionName": "app-store",
  "displayName": "Apple App Store",
  "flags": "validated, public",
  "lastUpdated": "2022-06-29T13:31:42.02Z",
  "publishedDate": "2016-08-23T15:38:19.237Z",
  "releaseDate": "2016-08-23T15:38:19.237Z",
  "shortDescription": "Provides tasks for publishing to Apple's App Store from a TFS/Azure DevOps build or release pipeline",
  "versions": [
    {
      "version": "1.207.0",
      "flags": "validated",
      "lastUpdated": "2022-06-29T13:31:42.02Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.207.0/1656509233572",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.207.0/assetbyname"
    },
    {
      "version": "1.190.0",
      "flags": "validated",
      "lastUpdated": "2021-07-09T06:38:15.65Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.190.0/1625812553609",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.190.0/assetbyname"
    },
    {
      "version": "1.188.0",
      "flags": "validated",
      "lastUpdated": "2021-05-26T16:51:37.517Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.188.0/1622047753762",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.188.0/assetbyname"
    },
    {
      "version": "1.186.0",
      "flags": "validated",
      "lastUpdated": "2021-04-05T16:56:53.813Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.186.0/1617641673320",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.186.0/assetbyname"
    },
    {
      "version": "1.183.1",
      "flags": "validated",
      "lastUpdated": "2021-02-19T11:30:21.207Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.1/1613734082007",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.183.1/assetbyname"
    },
    {
      "version": "1.183.0",
      "flags": "validated",
      "lastUpdated": "2021-02-16T11:17:33.61Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.183.0/1613474115061",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.183.0/assetbyname"
    },
    {
      "version": "1.178.4",
      "flags": "validated",
      "lastUpdated": "2020-11-10T13:22:40.727Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.4/1605014421387",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.178.4/assetbyname"
    },
    {
      "version": "1.178.3",
      "flags": "validated",
      "lastUpdated": "2020-11-07T14:38:15.447Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.3/1604759757655",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.178.3/assetbyname"
    },
    {
      "version": "1.178.2",
      "flags": "validated",
      "lastUpdated": "2020-11-06T15:45:05.1Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.178.2/1604677364340",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.178.2/assetbyname"
    },
    {
      "version": "1.177.2",
      "flags": "validated",
      "lastUpdated": "2020-10-30T13:15:34.133Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.177.2/1604063595012",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.177.2/assetbyname"
    },
    {
      "version": "1.176.0",
      "flags": "validated",
      "lastUpdated": "2020-09-30T05:54:58.13Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.176.0/1601445155241",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.176.0/assetbyname"
    },
    {
      "version": "1.175.0",
      "flags": "validated",
      "lastUpdated": "2020-09-11T09:24:13.38Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.175.0/1599816114013",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.175.0/assetbyname"
    },
    {
      "version": "1.158.0",
      "flags": "validated",
      "lastUpdated": "2019-08-28T21:00:18.163Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.158.0/1567025875559",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.158.0/assetbyname"
    },
    {
      "version": "1.150.0",
      "flags": "validated",
      "lastUpdated": "2019-03-28T19:30:52.07Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.150.0/1553801308588",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.150.0/assetbyname"
    },
    {
      "version": "1.147.0",
      "flags": "validated",
      "lastUpdated": "2019-01-09T21:35:46.927Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.147.0/1547069602120",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.147.0/assetbyname"
    },
    {
      "version": "1.126.0",
      "flags": "validated",
      "lastUpdated": "2017-11-06T17:13:53.34Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VsixManifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.VsixManifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.126.0/1509988431215",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.126.0/assetbyname"
    },
    {
      "version": "1.116.0",
      "flags": "validated",
      "lastUpdated": "2017-04-07T15:24:28.74Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.116.0/1491578666719",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.116.0/assetbyname"
    },
    {
      "version": "1.115.0",
      "flags": "validated",
      "lastUpdated": "2017-03-08T14:24:32.283Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.115.0/1488983071071",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.115.0/assetbyname"
    },
    {
      "version": "1.114.0",
      "flags": "validated",
      "lastUpdated": "2017-03-03T20:18:53.85Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.114.0/1488572332336",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.114.0/assetbyname"
    },
    {
      "version": "1.112.0",
      "flags": "validated",
      "lastUpdated": "2017-01-20T15:24:04.473Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.112.0/1484925840720",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.112.0/assetbyname"
    },
    {
      "version": "1.2.1",
      "flags": "validated",
      "lastUpdated": "2016-12-08T15:10:21.797Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/images/release-task-with-advanced.png"
        },
        {
          "assetType": "images/variable-definition-firewall-issues.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/images/variable-definition-firewall-issues.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.2.1/1481209817257",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.2.1/assetbyname"
    },
    {
      "version": "1.0.0",
      "flags": "validated",
      "lastUpdated": "2016-08-23T15:38:22.5Z",
      "files": [
        {
          "assetType": "images/promote-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/images/promote-task-with-advanced.png"
        },
        {
          "assetType": "images/release-task-with-advanced.png",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/images/release-task-with-advanced.png"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Details",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/Microsoft.VisualStudio.Services.Content.Details"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Content.Thirdpartynotice",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/Microsoft.VisualStudio.Services.Content.Thirdpartynotice"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Default",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/Microsoft.VisualStudio.Services.Icons.Default"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Icons.Small",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/Microsoft.VisualStudio.Services.Icons.Small"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.Manifest",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/Microsoft.VisualStudio.Services.Manifest"
        },
        {
          "assetType": "Microsoft.VisualStudio.Services.VSIXPackage",
          "source": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709/Microsoft.VisualStudio.Services.VSIXPackage"
        }
      ],
      "assetUri": "https://ms-vsclient.gallerycdn.vsassets.io/extensions/ms-vsclient/app-store/1.0.0/1474455309709",
      "fallbackAssetUri": "https://ms-vsclient.gallery.vsassets.io/_apis/public/gallery/publisher/ms-vsclient/extension/app-store/1.0.0/assetbyname"
    }
  ],
  "categories": [
    "Azure Pipelines"
  ],
  "tags": [
    "App Store",
    "Apple",
    "Build task",
    "deploy",
    "Deploy task",
    "iOS",
    "iPad",
    "iPhone",
    "iTunes Connect",
    "release",
    "tvOS",
    "watchOS",
    "Xcode"
  ],
  "installationTargets": [
    {
      "target": "Microsoft.TeamFoundation.Server",
      "targetVersion": ""
    },
    {
      "target": "Microsoft.VisualStudio.Services.Cloud",
      "targetVersion": ""
    }
  ],
  "deploymentType": 0
}

None of which contains AppStoreRelease.

You need to retrieve the assetType of Microsoft.VisualStudio.Services.Manifest which looks like:

Details
{
    "manifestVersion": 1,
    "visibility": [
        "Build and release"
    ],
    "repository": {
        "type": "git",
        "uri": "https://github.com/microsoft/app-store-vsts-extension/"
    },
    "scope": [
        "vso.build",
        "vso.serviceendpoint"
    ],
    "contributions": [
        {
            "id": "app-store-promote",
            "type": "ms.vss-distributed-task.task",
            "targets": [
                "ms.vss-distributed-task.tasks"
            ],
            "properties": {
                "name": "_build/Tasks/AppStorePromote"
            }
        },
        {
            "id": "app-store-release",
            "type": "ms.vss-distributed-task.task",
            "targets": [
                "ms.vss-distributed-task.tasks"
            ],
            "properties": {
                "name": "_build/Tasks/AppStoreRelease"
            }
        },
        {
            "id": "ipa-resign",
            "type": "ms.vss-distributed-task.task",
            "targets": [
                "ms.vss-distributed-task.tasks"
            ],
            "properties": {
                "name": "_build/Tasks/IpaResign"
            }
        },
        {
            "id": "apple-app-store-service-endpoint",
            "description": "AppleAppStoreAuthenticationEndpoint",
            "type": "ms.vss-endpoint.service-endpoint-type",
            "targets": [
                "ms.vss-endpoint.endpoint-types"
            ],
            "properties": {
                "name": "apple-app-store",
                "displayName": "Apple App Store",
                "url": "https://itunesconnect.apple.com/",
                "inputDescriptors": [],
                "authenticationSchemes": [
                    {
                        "type": "ms.vss-endpoint.endpoint-auth-scheme-basic",
                        "inputDescriptors": [
                            {
                                "id": "username",
                                "name": "App Store E-mail",
                                "description": "The e-mail address of the service account used to authenticate with the Apple App Store.",
                                "inputMode": "textbox",
                                "isConfidential": false,
                                "validation": {
                                    "isRequired": true,
                                    "dataType": "string"
                                }
                            },
                            {
                                "id": "password",
                                "name": "Password",
                                "description": "Password for the account that is publishing to the Apple App Store.",
                                "inputMode": "passwordbox",
                                "isConfidential": true,
                                "validation": {
                                    "isRequired": true,
                                    "dataType": "string"
                                }
                            },
                            {
                                "id": "appSpecificPassword",
                                "name": "App-specific Password",
                                "description": "Used with two-step verification. (See: https://appleid.apple.com/account/manage -> Security -> App-specific Passwords)",
                                "inputMode": "passwordbox",
                                "isConfidential": true,
                                "validation": {
                                    "isRequired": false,
                                    "dataType": "string"
                                }
                            },
                            {
                                "id": "fastlaneSession",
                                "name": "Fastlane Session",
                                "description": "Used with two-step verification. (See: https://github.com/fastlane/fastlane/blob/master/spaceship/README.md#support-for-ci-machines)",
                                "inputMode": "textarea",
                                "isConfidential": true,
                                "validation": {
                                    "isRequired": false,
                                    "dataType": "string"
                                }
                            }
                        ]
                    },
                    {
                        "type": "ms.vss-endpoint.endpoint-auth-scheme-token",
                        "inputDescriptors": [
                            {
                                "id": "apiKeyId",
                                "name": "Key ID",
                                "description": "App Store Connect API Key ID",
                                "inputMode": "textbox",
                                "isConfidential": false,
                                "validation": {
                                    "isRequired": true,
                                    "dataType": "string"
                                }
                            },
                            {
                                "id": "apiKeyIssuerId",
                                "name": "Issuer ID",
                                "description": "App Store Connect API Issuer ID",
                                "inputMode": "textbox",
                                "isConfidential": false,
                                "validation": {
                                    "isRequired": true,
                                    "dataType": "string"
                                }
                            },
                            {
                                "id": "apitoken",
                                "name": "Key Content (base64-encoded Private Key)",
                                "description": "Base64-encoded content of the App Store Connect API P8 private key file",
                                "inputMode": "textarea",
                                "isConfidential": true,
                                "validation": {
                                    "isRequired": true,
                                    "dataType": "string"
                                }
                            },
                            {
                                "id": "apiKeyInHouse",
                                "name": "In House (Enterprise)",
                                "description": "App Store Connect API Use In House (Enterprise) Account",
                                "inputMode": "combo",
                                "isConfidential": false,
                                "validation": {
                                    "isRequired": false,
                                    "dataType": "string",
                                    "maxLength": 30
                                },
                                "values": {
                                    "inputId": "apiKeyInHouseValues",
                                    "defaultValue": "apiKeyInHouse_false",
                                    "possibleValues": [
                                        {
                                            "value": "apiKeyInHouse_true",
                                            "displayValue": "Yes"
                                        },
                                        {
                                            "value": "apiKeyInHouse_false",
                                            "displayValue": "No"
                                        }
                                    ]
                                }
                            }
                        ]
                    }
                ]
            }
        }
    ],
    "scopes": [],
    "contributionTypes": []
}

From there you need to look at the contributions with type of ms.vss-distributed-task.task and parse the name from the properties object.

All that is to say, it's not possible call that API directly in Renovate. Scraping the API to generate the data we need is the only way I can see. However, I'm not sure if the resulting data would be too large to bundle with Renovate directly or not.

JamieMagee avatar Aug 09 '22 22:08 JamieMagee

Scrape -> new git repo -> use that as a datasource ?

rarkins avatar Aug 09 '22 22:08 rarkins

Additionally, custom tasks can be defined by {publisherName}.{extensionName}.{taskId}.{taskName}, or some variation of it. For example:

  • id-az-pipeline.jmeter-perf-analyzer.custom-build-release-task.perfanalyzer
  • perfanalyzer

refer to the same task. The fully-qualified version is only required if there are conflicts with the taskName.

JamieMagee avatar Aug 09 '22 22:08 JamieMagee

Scrape -> new git repo -> use that as a datasource ?

Yeah, that's likely going to be the solution.

JamieMagee avatar Aug 09 '22 22:08 JamieMagee

And the query I've been using:

POST https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery

{
	"assetTypes": [
		"Microsoft.VisualStudio.Services.Manifest"
	],
	"filters": [
		{
			"criteria": [
				{
					"filterType": 5,
					"value": "Azure Pipelines"
				},
				{
					"filterType": 8,
					"value": "Microsoft.TeamFoundation.Server"
				},
				{
					"filterType": 8,
					"value": "Microsoft.VisualStudio.Services.Cloud"
				}
			],
			"pageSize": 1000,
			"sortBy": 1,
			"sortOrder": 0,
			"pagingToken": null
		}
	],
	"flags": 3
}

This returns the minimal information required (extension metadata, version, and the manifest file we need to parse)

JamieMagee avatar Aug 09 '22 22:08 JamieMagee

Hi @JamieMagee, I see this feature is released. Suddenly I see a lot of PRs being generated: image

I am not sure your approach is working, because apparently not everyone has access to the same versions: image

Did you add a setting, so we can turn off this feature for our repository?

Edit (just found out that package managers can be disabled globally): { "matchManagers": ["azure-pipelines"], "enabled": false }

johannesoenema avatar Aug 10 '22 07:08 johannesoenema

Sorry about that! It's difficult to tell which versions are deployed. There's no public API, only the https://dev.azure.com/{organizationName}/_apis/distributedtask/tasks?allVersions=true API on Azure DevOps itself. Unfortunately, that's not possible to use for people that store their code in GitHub, but build on Azure Pipelines. I thought using the versions from the GitHub repository^1 was safe, but clearly not.

JamieMagee avatar Aug 10 '22 15:08 JamieMagee

The version has been updated here: https://github.com/microsoft/azure-pipelines-tasks/pull/16485/files#diff-25b595d6d12daddae02f6c5f915dbf6e4619763231d5bc51c9f9ae99532b3d4a

But apparently hasn't been released yet.

JamieMagee avatar Aug 10 '22 15:08 JamieMagee

@JamieMagee I've a Azure Pipeline containing of a build stage and a deployment stage.

stages:
  - stage: Build
    jobs:
    - job: Build
      steps:
      - task: [email protected]
        inputs:
          packageType: sdk
          version: 6.0.400
  - stage: Deployment
    jobs:
    - deployment: deployment
      strategy:
        runOnce:
          deploy:
            steps:
              - task: UseDotNet@2
                inputs:
                  packageType: sdk
                  version: 6.0.400

Renovate 32.154.4 seems to ignore the task in the deployment stage (the one pinned to version 2), while it updates the same task used in jobs (updated to 2.207.2).

pascalberger avatar Aug 11 '22 11:08 pascalberger

Does the feature actually query for valid/available versions? As well for On-Prem Azure DevOps Servers?

At least I don't think so:

A task is missing. The pipeline references a task called 'DotNetCoreCLI'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version 2.208.1, job 'Job1', step ''.)

So I guess On-Prem users should disable the manager right?

timmkrause avatar Aug 11 '22 12:08 timmkrause

OK, I just understood a little bit more how it works via https://github.com/renovatebot/renovate/pull/16949.

Really seems like we've to disable it. What a pitty that Azure DevOps does not expose that tasks data via an API...

timmkrause avatar Aug 11 '22 20:08 timmkrause

Does the feature actually query for valid/available versions? As well for On-Prem Azure DevOps Servers?

At least I don't think so:

A task is missing. The pipeline references a task called 'DotNetCoreCLI'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version 2.208.1, job 'Job1', step ''.)

So I guess On-Prem users should disable the manager right?

I have the same issue on Azure DevOps. It seems the versions are not valid after they got updated.

NPadrutt avatar Aug 12 '22 07:08 NPadrutt

@NPadrutt See https://github.com/renovatebot/renovate/pull/16949. It seems that Azure DevOps does not provide a "public API that exposes this information" (if I understood it correctly). So Renovate operates on a static list which is updated weekly by a GitHub Actions pipeline (https://github.com/renovatebot/renovate/issues/17050) based on https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks (see footnote of https://github.com/renovatebot/renovate/pull/16904). So there may even be discrepancies between the Microsoft Azure DevOps tasks repo and actually deployed task versions within Azure DevOps "Cloud".

We disabled the manager via

"azure-pipelines": {
  "enabled": false
}

timmkrause avatar Aug 15 '22 14:08 timmkrause

FWIW, I'm also having issues since https://github.com/renovatebot/renovate/pull/16949 was merged; for example this renovate pull request fails to build on azure pipelines:

A task is missing. The pipeline references a task called 'UseDotNet'. This usually indicates the task isn't installed, and you may be able to install it from the Marketplace: https://marketplace.visualstudio.com. (Task version 2.207.2, job 'build_linux', step ''.)

gitfool avatar Aug 17 '22 03:08 gitfool

Thanks for reporting. I've opened this bug and will ping some folks internally. But from what I've researched there is no public API to determine exactly what versions are available.

JamieMagee avatar Aug 17 '22 04:08 JamieMagee

Perhaps this integration should be disabled by default since it will produce wrong results in many cases.

rouke-broersma avatar Sep 30 '22 09:09 rouke-broersma

I'm labeling this v33 on the assumption that we want to disable the integration by default. Feel free to revert this, if needed.

HonkingGoose avatar Oct 03 '22 09:10 HonkingGoose

Could this be configured to bump major versions only? It often seems to be the case with ADO stuff that the MS environment is somewhat behind their latest versions. I'm unsure if they're intending us to track the versions this closely? Or are people generally pinning specific task versions in their pipelines rather than majors?

Reading https://learn.microsoft.com/en-us/azure/devops/pipelines/process/tasks?view=azure-devops&tabs=yaml

"When a new minor version is released (for example, 1.2 to 1.3), your build or release will automatically use the new version. However, if a new major version is released (for example 2.0), your build or release will continue to use the major version you specified until you edit the pipeline and manually change to the new major version. The build or release log will include an alert that a new major version is available."

DevRCRun avatar Oct 03 '22 09:10 DevRCRun

This Package rule makes renovate ignore minor updates. Keeping the task on the current major.

  "packageRules": [ 
    {
      // Skip minor version for Pipeline Tasks
      "matchDatasources": ["azure-pipelines-tasks"],
      "matchUpdateTypes": ["minor"],
      "enabled": false
    }
  ],

However when a new major version creates a PR it will also include the minor not only the major version. Any suggestion on how to solve that?

  steps:
- - task: HelmInstaller@0
+ - task: [email protected]

janorn avatar Oct 05 '22 15:10 janorn

Would be so nice if I just could tell renovate to only use the value newMajor for the version.

janorn avatar Oct 05 '22 16:10 janorn

This config actually makes renovate only update major revisions.

  "packageRules": [ 
    {
      // Only extract major versions for Pipeline Tasks
      "matchDatasources": ["azure-pipelines-tasks"],
      "extractVersion": "^(?<version>\\d+)"
    }
  ]

janorn avatar Oct 05 '22 23:10 janorn

:tada: This issue has been resolved in version 33.0.0 :tada:

The release is available on:

Your semantic-release bot :package::rocket:

renovate-release avatar Oct 23 '22 05:10 renovate-release