Azure DevOps cross organization daily task wrangling
Problem statement
My employer has standardized on Azure DevOps Boards as the issue tracking system of record. I have become fond of this system and immensely respect its capabilities. Due to my role, I end up with a very large number of work items assigned to me across a very diverse number of different Azure DevOps organizations. While an extension exists to support Cross Account Query, it has a significant and insurmountable limitation that the accounts being queried must have a uniform “schema” for Iteration Path and Area Path. This limitation is a fact of life in my role.
This blog post shows my workaround that gives me the ability:
- To see a comprehensive dashboard across the many different Azure DevOps organizations that contain work items assigned to me, so I can know which ones I need to work on in any given day.
- To check them off task by task when I have done all I intend to do on that particular task today.
- To reset the “done for today” status so I get a fresh dashboard the next day.
It is not very elegant, but works for me. I’m open to suggestions for improvements. Please leave a comment if you have any ideas.
Solution
-
For each Azure DevOps organization, write and save a query that shows the work items assigned to me. Here are a screen grabs of two such queries.
Some things to note about these queries:
- The Area Path values vary and are specific to the organization.
- The Iteration Path values vary, but both have @CurrentIteration.
- The State values vary and are specific to the organization.
- They both have a funny Tags value: Does Not Contain
edburns_done-for-today
. This tag is obviously named.
-
Write an anologous set of queries, but for the last clause the Tags value is Contains
edburns_done-for-today
. -
Use the Daily Links chrome extension to cause all the saved queries in a new browser tab. Install the Daily Links extension from the Chrome web store. This also works in Edge.
Daily wrangling
-
Start of day process.
-
Select the Daily Links button in the browser.
-
For each tab:
-
Decide which of the tasks you will NOT* be able to work on today.
-
Apply the
edburns_done-for-today
tag to those issues. -
Re-run the query.
-
-
-
End of day process.
-
Select the Daily Links button in the browser.
-
For each tab:
-
Run the analogous “Contains done for today” query for that tab.
-
Use the multi-issue edit feature to remove that tag.
-
-
Problems with this solution
-
You have to write 2N queries.
-
You pollute the tagspace with information that is only relevant to you.
-
The act of resetting the “done for today” tag is high effort. I suspect there is a way to make a batch process that just does this with one action, but I have not invested in learning how.
-
The quality of the queries regarding their ability to convey the context of each task is up to the query author. In my implementation, I simply include Parent next te Title in the Column options.