VSTS API for accessing project queues? - azure-devops

I need to programmatically set the queue ID in a VSTS (now Azure DevOps) release definition. I've found this post:
How to list VSTS agent pools programmatically from PowerShell?
Unfortunately the APIs in that post are higher level than I need because that deal with agent pools, which are defined at the organization level. I need to get the project-specific queues that reference these agent pools so that I can inject the queue ID into my release definition. Are there APIs to get what I need?

I found the answer for what I needed and wanted to share with others. There are indeed undocumented APIs to get the project-specific queues. Use a GET request with the following to get the list of queues:
https://foo.visualstudio.com/Project_Name/_apis/distributedtask/queues/
Similarly, if you want the info on a specific queue, GET the following:
https://foo.visualstudio.com/Project_Name/_apis/distributedtask/queues/QUEUEID
Edit
I talked with Azure DevOps engineers at MS and they indicated that this is indeed the correct way to get queue info. They also said that, while these APIs are undocumented currently, they are supported (I was referred to this post) and support all RESTful HTTP verbs, although I have not tested this last statement.

Related

How can I get AzureDevOps build variables information through the Rest API's?

I have a tool aztr that summarizes the Azure Build/Release pipeline test results. A recent requirement has come up to save the incoming variable information and the summary information for consumption outside of the tool (say a csv file).
Now on the Release pipelines side the Release API provides all the details about the variables passed into the Release. I want the same functionality to be available on the Build side as well but the Build API, does not provide that functionality. Is there a different API, I need to use to get the variables passed into the build?
Thank you for your responses.
We could list the custom build variables via this API
GET https://dev.azure.com/{organization}/{project}/_apis/build/definitions/{definitionId}?api-version=6.0
In addition, they are some predefined variables in the variable and they are DevOps Services system variables, we cannot list them via this api.
Result:

How to audit azure DevOps services and monitor releases?

I have an Azure DevOps instance where I am trying to control and monitor who is doing releases. So, who pressed the button to do the release and what releases have happened.
I tried in Audit options, but it is not satisfying my requirement.
What is the best way to get what I am looking for?
Thanks in advanceā€¦
It's a little unclear what you mean by CONTROL
If you are needing to tighten control of which users are allowed to initiate releases outside of a CI/CD pipeline, this is something you would use the built in object permissions for release pipelines.
I've organized our release pipelines into folders
Each of these folders is treated as an object upon which permissions can be set.
For MONITORING the release pipelines
Again, I tend to just use the All Pipelines folder which gives a list of the releases that happened ordered by date. That view lists the pipeline and gives the users Avatar, which is enough to know who created the release.
Also
There are some out-of-the-box widgets that you can put on your dashboard, but I've found them to be unhelpful on the whole. Not to mention that if you have 100's of pipelines you will want to have something reading from your list of pipelines via REST api and pushing those widgets onto the dashboard via the REST api so that you don't need to manage them all "by hand" through the UI. Then if you're going to get into using the REST api, you might as well write your own tool to report the information you need (and possibly turn it into a widget others can consume from the marketplace). I haven't found anything very effective on reporting/summarizing the collection of release pipelines from the marketplace, but there may be something squirreled away in there somewhere.

Organizing Microsoft Azure DevOps Projects

I have a question about Microsoft DevOps (formerly Visual Studio Team Services or VSTS). I have multiple applications that are set up as separate projects, but we have basically one team of devs. Some of the older projects are TFS based some are git.
Ideally I would like to create a board based on the team and 'attach' projects to the board. Or something that ends up being roughly the equivalent of this.
I can't seem to find anything close to this. Does anyone have any ideas? Or any suggestions?
Thanks for your help!
As I mentioned in my comment you can use the AzureDevOps Rest API.
Representational State Transfer (REST) APIs are service endpoints that
support sets of HTTP operations (methods), which provide create,
retrieve, update, or delete access to the service's resources
Most REST APIs are accessible through our client
libraries,
which can be used to greatly simplify your client code.
Once you created your own board, you can fill up the details using the REST API response.

Move resources from one resource group to another

I was searching the Steps to Move resources from one resource group to another on Azure and found this - saying work in progress to achieve it through Azure portal since May 04, 2015
Just wanted to know if we have any other way (SDKs, Azure Powershell etc) to achieve the same?
Much appreciated if you could share the steps in an eloborated way, so that I think it would useful for the future referrers.
Now you can move resources from one resource group to another in the same or other subscription though there are some restrictions on what all resource types can be moved and what all resource types can be moved across subscription. You can do it through Azure Portal, PowerShell as well as using Azure Resource Manager REST API. Please see this blog post for more details on how to do this: https://azure.microsoft.com/en-in/documentation/articles/resource-group-move-resources/

Azure Powershell to read all the resources irrespective of its status or type

I am developing a powershell script to read all the azure resources (irrespective of its status or resource type) under a particular subscription. I have n number of subscriptions and a number of resources (such as DB, storage, Hosted Services, VM's, Cache etc) under each subscription. I know that I can read each resource and its status one by one through Azure Powershell.
This is actually used for auditing purpose and need to do it every two months.So, for simplicity I am automating this task. What I want to achieve is that: we have a tab named "All Items" in Azure Management Portal, where it lists all the resources of the selected subscription, irrespective of its status and types. I need to read the entire resource and its details (which includes status, its region etc etc) listed over there.
Tried Googling many times using many phrases, but no luck yet. Can someone offer me a hand for solving this in simple?
Any help would be really appreciated.
Depends on what information you need about each resource.
You can download the Azure PowerShell cmdlets (http://go.microsoft.com/?linkid=9811175&clcid=0x409) and use Get-AzureResource to list all resources for a subscription, but this will just get the 'generic' resource data - the resource information shared by all resources, regardless of type.
To get the full data, you need a ResourceProvider-specific API version for each resource provider, and this information is a bit undiscoverable, you would have to hard code it into your script.
-Mark