This issue was moved to a discussion.
You can continue the conversation there. Go to discussion →
Add support for Azure DevOps API-based datasource #19725
Labels
status:requirements
Full requirements are not yet known, so implementation should not be started
type:feature
Feature (new functionality)
What would you like Renovate to be able to do?
Renovate has support for Azure-DevOps built-in tasks and the Azure DevOps Marketplace's public tasks.
But it doesn't support tasks that were installed directly into an Azure DevOps Organization (
tfx build tasks upload
) nor does it support extensions that are privately listed on the marketplace.Renovate also won't be too helpful for people using Team Foundation Server or Azure DevOps Server, since these might not even have all tasks available, nor won't they have the same list of built-in tasks available to them.
Each instance of Azure DevOps however, has a set of APIs that one can query to provide grab the data needed directly from the instance. Below is a set of APIs to query to get all the information required to give proper advice
If you have any ideas on how this should be implemented, please tell us here.
name
's andid
s (GET https://dev.azure.com/jessehouwing/_apis/distributedtask/tasks/
)task.name
task.id
task.contributionIdentifier.task.name
task.contributionIdentifier.task.id
"serverOwned":true
id
to get a list of versions (GET https://dev.azure.com/jessehouwing/_apis/distributedtask/tasks/{{task.Id}}?allversions=true
ResourceArea
's API to find the ExtensionManagement API (GET https://dev.azure.com/jessehouwing/_apis/resourceareas/
)GET https://extmgmt.dev.azure.com/jessehouwing/_apis/extensionmanagement/installedextensionsbyname/jessehouwing/jessehouwing-vsts-variable-tasks?api-version=7.1-preview.1&assetTypes=Microsoft.VisualStudio.Services.Manifest
) using the contribution identifiertask.contributionIdentifier
.repository.uri
) from the fetched manifest file (GET https://jessehouwing.gallerycdn.vsassets.io/extensions/jessehouwing/jessehouwing-vsts-variable-tasks/3.0.10/1670319234705/Microsoft.VisualStudio.Services.Manifest
)Ideally Renovate should also suggest:
task.id
, a highertask.version
, but a differenttask.name
.task.deprecated: true
.task.preview: true
.If RenovateBot would support Private Extensions, then a few new issues pop-up, since private extensions can publish the same tasks (same
task.name
), even with the sameversion
. In that case a task must be disambiguated by itstask.id
or by using the long nametask.contributionIdentifier.task.name
.The current mechanism, with statically generated files, would allow suggestions for Azure DevOps Server in the case of a non-marketplace connected server instance where the admin would have to download and install the extension manually.
We should probably make the desired sources configurable, as renovatebot might expose the names of internal extensions and tasks through calling out to GitHub.
The text was updated successfully, but these errors were encountered: