Skip to main content

Posts

Azure DevOps Tips & Tricks - Find private REST APIs

Often working with Azure DevOps, I hit a wall trying to automate some tasks but there are no REST API's made public yet.

It was one of those task of automating creation of Environments in multi-stage YAML based pipelines in AzDO.



Quick research reveals that this has been requested in uservoice (please upvote).
Let's see one of the very simple ways to discover some of these APIs.

Az DevOps CLI - Fetch all Pull Requests assigned to a user

I wrote a sample PowerShell code snippet to crawl across all opened Pull requests in multiple repositories inside an Azure DevOps project and list the ones out where myself or the team/group I am part of assigned as a reviewer.

End result is this:




Az DevOps CLI : Query Release(s) definition for a Task status

Someone, asked me at work if I could generate a list of Release pipelines definitions which did not have a specific task (AzSK SVT task) missing or disabled.

This was more for an internal audit purpose and can definitely be built upon.
I recently read that Az CLI got an extension support for Az DevOps. Please read on the GitHub repository on how to install this extension for Az CLI.
Time to put this to try.

Below gist describes the steps I used in pwsh (PowerShell Core) with Az CLI & DevOps extension installed.

The above script should be self explanatory (read the comments). Please leave a comment if you have any queries.




Az.ResourceGraph - Search across all Subscriptions

Azure Resource Graph is an amazing tool in the belt of Az Ops team. It allows to quickly search across all your subscriptions (does it?).

Started using Az Resource graph with that pretext that the queries I ran will be run against all the subscriptions I have read access to, Yes it will but there is a catch here!

I mostly use Az.ResourceGraph PowerShell module (Why? another post)

Found the solution by digging into the source code for the Search-AzGraph cmdlet, if the subscriptions are not specified explicitly then the cmdlet uses a method named GetSubscriptions()

Below is a snippet of the method def:

The catch is that if no subscriptions are supplied it defaults to subscriptions in the default context. I am not really sure but some of the subscriptions which I can see when running Get-AzSubscription were missing when I ran the below:

(Get-AzContext).Account.ExtendedProperties.Subscriptions

So, the trick is to set the PSDefaultParameterValues for the Search-AzGraph cmdlet to include all the s…

Azure + GoLang SDK : Authenticating Part-1

My personal notes on how to authenticate to Azure in the GoLang code. 



The auth package lives at "github.com/Azure/go-autorest/autorest/azure/auth"
In the above package, at the moment I have explored below two functions:

NewAuthorizerFromFile methodNewAuthorizerFromEnvironment method

Python : Exploring Objects similar to PowerShell

To be fair Python's REPL mode allows you to explore objects pretty easy. But since PowerShell has been my first language, I often tend to crib for similar experience.

P.S. - I do know that PowerShell language specs picked up quite many things from Python. Also, Python is my goto language on Linux platform as well.

So back to cribbing, I tend to miss most the exploring aspects of  PowerShell e.g. Get-Member and Format-* cmdlets until one day I sat down and wrote few functions in Python to give me a similar experience.