Posts

Showing posts from 2020

Do you really need so many Basic + Test Plans licenses?

Planning to discuss another cost saving opportunity in Azure DevOps in this post.   You can find the number of Basic + Test Plans licenses you are currently consuming by looking at the summary from the users page under org settings in Azure DevOps, or by hitting the User Entitlement Summary API. Multiply the number by $52 to get your monthly spend for this license type.   The below article has a comparison of the activities that can be performed with Basic vs Basic + Test Plans licenses: https://docs.microsoft.com/en-us/azure/devops/test/manual-test-permissions?view=azure-devops#license-requirements   This is a short summary of the comparison: Basic + Test Plans  Basic  Create test cases from the  Define  tab inside Azure Test Plans.    Create test cases (but not from  Define  tab in Azure Test Plans.  Add test cases to suites and assign Testers. 

Azure DevOps - getting project stats for all projects

Image
If you have quite a lot of projects in your Azure DevOps organization and is looking for a way to filter the inactive projects out, that’s what   we will discuss today.   This is going to be based on the data the we see in the "Project stats" section on the landing page of an ADO project. This data gets fetched using the   "Contribution/HierarchyQuery/project" REST Api, which for some reason doesn't seem to be documented. So we may have to keep an eye out for any changes.   The apis lets you get project stats like: Work Items : created and updated Repos : Commits pushed with the number of authors, PRs created and completed the range can be specified, and accepts a maximum value of 30 days. If you use TFVC, that data is also returned - like the number of changesets and authors. I am not using it for the calculation here as we don't use TFVC.  You can also get the metrics for builds and releases - j ust in case you are interested, the

Export the members of a project level group from all the projects in an Azure DevOps

Image
How many project administrators do you have on an average per project? Though there is no real mandate or best practice on the number, I think you don’t want too many people with project admin privileges. This could also be an auditing question to figure out who can do what. Same can be the case with Build and Release admin group, other default groups or any of the custom security groups that you may have created at the project level. If you are trying to export such a list, here is a script that can help you. You can provide any project level group as the input to the script, and it will export a list containing the members of the group, across all the projects in your organization to a csv file.  The script lists both users and groups that are members of the group given as input, but do not expand groups further. You can then filter by project to look at the details of individual projects. How to run the script: The script takes three parameters: Name of th

Automating removal of user licenses.

In my opinion, this is a must. The logic is simple, you identify inactive users and either remove them or assign them a free Stakeholder license, and save money. Tip 1 : There are several options from which you can choose to run the automation, below are some of them: As a script that you run manually. Automate using Azure Pipelines Automate using Azure Functions Here is one of the approaches we are following, which makes use of Rest APIs for Azure DevOps and Azure Functions. This is a graceful approach where the users will be notified about their license getting downgraded. They will also have the choice to login to ADO within a specified time to retain their license. The Axure Function is timer triggered - you can choose to keep the "notifying the users" logic and "removal" logic in the same function or separate functions. During the notification flow: Get the list of users using ADO Rest API, and find the list of us

Managing user licenses and cost for Azure DevOps.

Image
User licenses contribute to a major share of the cost for Azure DevOps services. In this post we will focus mainly on user licenses and some tips for managing them efficiently. Managing the cost associated with other paid services for Azure DevOps will be covered in a separate post. If you are part of the Azure DevOps admin team of your organization, you should be having an idea about the monthly / annual spend for Azure DevOps. The user who sets up billing for Azure DevOps services needs to have permissions at the subscription level, as explained in this article -  Add a user who can set up billing for Azure DevOps . Often what happens is, setting up billing for Azure DevOps is done by someone who has more privileges in Azure - like a subscription admin. However once the subscription is linked, an ADO collection admin can then add people and assign them licenses.  It is also possible that the ADO admin doesn't get a copy of the bill, thereby blocking the visibility to the

Being an administrator for Azure DevOps Services

What is Azure DevOps? Here is an extract from the article that I had written earlier -  Azure vs DevOps vs Azure DevOps : Azure DevOps is a tool that offers the different practices in a DevOps workflow as services. You can choose to use all or any of these services in your application's life cycle. Azure DevOps evolved from Team Foundation Server, which was at one point, an on-premise only solution. Microsoft is now offering this product as a cloud service as well, which was earlier named VSTS (Visual Studio Team Services), and was later rebranded to Azure DevOps Services. The server version is now called Azure DevOps Server. The services offered include: Azure Boards - for planning and tracking. This is where you would create backlogs, do capacity planning, infer reports like velocity and burn down. Azure Pipelines - for creating CI / CD workflows. Create pipelines for automated builds and deployments. This is platform, language and cloud in