Generating PATs from the command line

Personal Access Tokens (PATs) are alternate passwords that you can use to authenticate into Azure DevOps. See Microsoft Docs if you want to know more.

PATs serve a very useful purpose as anyone who has used Azure DevOps can attest to. The usual manner of creating a PAT is to use the web UI to access your personal profile and create the token by filling in a form.

Today on an internal mail list I learnt something new about working with PATs…

##You can create PATs using a commandline tool!

While this won’t be super useful for the majority of users, there are a few use cases where this is a requirement, namely when creating a PAT for service accounts that don’t have interactive login rights.

If you’re interested in leanring more or you want to download and use this utility, you can find the utility (and all code) at the VstsPatGenerator Azure DevOps site.

As an aside, a quick look through the commit history sees that good mate and fellow Aussie, Mitch Denny, had a hand in creating this utility. Cheers Mitch!

Using Build variables in a release pipeline

Often when you’re working with build and release pipelines, you want to use variables from the build pipeline in your release. Today I was asked by a co-worker how you can find the build number from a build artifact and use that in one of the tasks in a release.

The answer can be found in the use of what are called Primary artifact variables. You designate one of the artifacts as a primary artifact in a release pipeline. For the designated primary artifact, Release Management populates a number of variables. For my co-worker, he was interested in the Build number so after designating the primary artifact, he could use the Build number in a task in his release using the following syntax.

Release.Artifacts.{Primary artifact alias}.BuildNumber

The primary artifact is generally the artifact you select initially when you create your release initially.

Identifying the primary build artifact

Identifying the primary build artifact

Here’s a screenshot showing how to use the build variable in a task in your release pipeline. I’m choosing to use a Command Task to output the Build number in the logs just to keep the demonstration easy to follow.

Using a build variable in a release pipeline

Using a build variable in a release pipeline

There are quite a few more primary artifact variables you can use. Check out the Microsoft docs for a complete list.

Visual Studio Roadmap

One of my favourite resources from the VSTS team is the VSTS Features Timeline. This great resource shows what we can expect in VSTS & TFS over the next few months as well as what has been released, right back to 2012! Having found this resource super helpful, I find that I wish every team did this.

The Visual Studio team SHARES THEIR ROADMAP

What? It’s true. I stumbled across a tweet that mentioned that there’s a Visual Studio Roadmap. This is great news as Visual Studio users can now see what the product team is working on. Not only this, but there is a prominent link to their User Voice site so that users can provide feedback and suggestions for Visual Studio. If you’re a Visual Studio user and you’re interested in what’s coming, do yourself a favour and visit the Visual Studio Roadmap.

Visual Studio Roadmap Screenshot

Welcome to my new blog

After blogging for many years on the site, I’ve decided to start a new blog for a couple of reasons. Primarily, I want to broaden the topics I blog about and having “ALM” (Application Lifecycle Management) in the title and URL doesn’t make sense. Also, I am moving hosting providers and starting a new blog is less time consuming then migrating. Who knows, I might still migrate yet 🙂

I wonder how many new blogs have been created with the best of intentions, only to find the enthusiasm for writing your posts wanes when life gets extra busy. I guess only time will tell if I manage to post with any regularity.

Anyway, thanks for reading and welcome.

Global DevOps Bootcamp 2018, Brisbane, Australia

Global DevOps Bootcamp Banner image

What is the Global DevOps Bootcamp?

The Global DevOps Bootcamp takes place once a year on venues all over the world. There wasn’t one last year for the inaugural event but I’m excited to be the organiser for the first Brisbane event in 2018. The Global DevOps Bootcamp is a free one-day event hosted by local passionate DevOps communities around the globe and centrally organized by Xpirit & Solidify and sponsored by Microsoft. This event is all about DevOps on the Microsoft Stack. It shows the latest DevOps trends and insights in modern technologies. It is an amazing combination between getting your hands dirty and sharing experience and knowledge in VSTS, Azure, DevOps with other community members.

What is the focus of the 2018 event?

From one release per month to multiple releases a day

-Applied modern release patterns and practices

This time the event is all about DevOps and improving your release cadence. It will help you understand the latest DevOps trends and insights in modern technologies that enable you to release multiple times per day. It is an amazing combination between getting your hands dirty and sharing experience and knowledge around VSTS, Azure, DevOps with other community members.

When, where and getting registered

The Global DevOps Bootcamp is held around the world on SATURDAY, 16th June 2018 starting at 10:00am and wrapping up at approximately 5:00pm.

The event will be held in the Microsoft office at Level 28, 400 George Street, Brisbane.

Spots are limited so REGISTER NOW (Via Eventbrite)


To help cover costs, the following organisations have kindly pitched in to help the local DevOps community. A HUGE thank you for helping get our event off the ground.

Platinum Sponsor


Gold sponsors



While attending the Microsoft MVP Summit in Redmond at the start of March, I had the pleasure of meeting many of the organisers running events in other countries.

Global DevOps Bootcamp Organisers

A group of the Global DevOps Bootcamp 2018 organisers.

Retrospective – DevOps using VSTS and Azure course

Last week I delivered the first run of my new DevOps using VSTS and Azure course in Kirkland, Washington. While my retrospectives are usually just for my personal improvement, I decided to start sharing my retrospectives to be more transparent. The public record of my goals to improve should also keep me focused on achieving those goals. As a secondary goal, this should also provide an insight into some of the work that goes into creating and evolving high-quality technical training courses.

What worked

  • Enthusiasm from the attendees was fantastic which gave the class an exciting feel over the 3 days.
  • While DevOps is focused on BOTH operations and developers, this is definitely a “DevOps for developers” course. Attendees for the first run of the course were exactly the target audience. I’ll need to ensure any promotion of the course continues to mention DevOps for developers.
  • Students had various levels of experience with both VSTS and Azure including participants who were taking the class in preparation for moving from on-premises TFS to VSTS.
  • Occasionally screenshots in the courseware were slightly wrong due to recent updates to either VSTS or Azure. Students were very understanding of this given the release cadence of the products in question. This will remain a concern for me as student expectations vary. I’m sure I’ll run across students who won’t be as understanding.
  • Based on the high number of questions asked during the course, the allocation of time for Q&A seems about right.
  • Having students sign-up in class for a new Microsoft Account, email, Dev Essentials account and Azure account went quite quickly and smoothly. Having students create these accounts for themselves allows them to continue using these resources after class with the lab work they did still in their account. They can choose to delete their lab work of course, or leave it in place while they learn and explore more. I’m convinced this is much better than requiring them to have an existing account as a course pre-requisite.

What didn’t work

  • For one exercise in the course, I planned on using the VSTS Demo Generator. Despite it working multiple times during course development, it failed during class and then in further testing. In all occasions, the VSTS accounts were completely new so there should not have been any reason for the utility to fail. I was able to work around this in class, but I know now I can’t rely on it.

[UPDATE Jan 2018] I have now used the VSTS Demo Generator tool for a few more courses and it appears to be working again. If you’ve not used it already, be sure to give it a go if you want to explore capabilities in VSTS with some sample data.

  • The course felt a little rushed towards the end of the last day.

What can I improve next time.

  • Now the first run is over, use the timings to better plan future deliveries so that it doesn’t feel rushed towards the end.
  • Change the lab exercise that used the VSTS Demo Generator to not rely on it for future runs. If I can isolate the reason for the failure, I will share that information with the team responsible for the tool to see if they can fix it.
  • Create a couple of extra demos to have on-hand should students ask how VSTS build & release could work with other Azure services. Eg. Azure Functions demo. Also have a more complex example of using Azure Resource Manager (ARM) templates should students enquire about this.

What’s next?

  • Having completed the first delivery in the US now, I’m partnering with DDLS to deliver this course in Australia next month. I’ve also had enquiries about delivering this as an in-house workshop for an organisation so that’s positive.
  • Continue to review the decision to add the Azure focus to the VSTS course and not the new TFS 2017 Build & Release** course. While VSTS can deploy to either cloud or on-premises server, and TFS can deploy to either as well, I’ve chosen to group them this way for now and review.

DevOps using VSTS & Azure training on 11th-13th September.

I’m getting excited about the upcoming first-run of my new DevOps using VSTS & Azure course which is coming up in less than 3 weeks. This new 3-day course has been developed to help teach attendees how to create modern build and release pipelines in Visual Studio Team Services, that target deployment to Azure.

The course features content from the latest updates to VSTS and is ideal for anyone wanting to plan, build, test, release, and measure modern business applications on the Microsoft technology stack.


The training is available either in-person in Kirkland, WA or you can attend via our remote classroom option from anywhere in the US or Canada.

More information…

TFS 2017 – Adding reports to an existing team project

Something I’m finding more often lately are team projects created without the SQL Reports folder. While this may be your intention, usually I find people expected it to be created when the used the web based user interface in TFS 2017 to create their new team project.

if you look at the following screenshot, notice there is no mention of SQL Reporting Services?


Using this interface to create a new team project does not create the reports folder for your new team project. If you use Team Explorer in Visual Studio to create your new team project, the reports folder will be created and the default reports added.

So, how can we add the reports to an existing team project in TFS 2017?

Microsoft has provided a command line tool called TFSConfig that can do many things including create the reports folder for existing team projects.

To add the reports folder use the following steps.

  1. Log onto your TFS 2017 server
  2. Open a command prompt as an administrator
  3. Navigate to the C:\Program Files\Microsoft Team Foundation Server 15.0\Tools directory
  4. Enter the following command, entering the appropriate values for each parameter.

TFSConfig addprojectreports /collection:”http://tfsmain:8080/tfs/DefaultCollection” /teamproject:”Payroll” /template:”Agile”

The parameters shown above that you need to update are as follows.



/template:”Agile, Scrum, CMMI or a customised template if you’ve made one


That’s it. The command will report its progress and output to the screen and a log file as it goes. It generally takes 30-45 seconds to complete.

DevOps training in Perth this week

After delivering my 3-day DevOps using Visual Studio TFS 2015 course in Seattle last week, it was off on a 16,680+km journey to Perth, Western Australia to deliver the course again this week for a partner. Fortunately the trip included a short 24hour break at home in Brisbane which was nice 🙂

I’ve got a great class of 6 students eager to learn how to best use Microsoft Team Foundation Server to deliver value to their clients as efficiently as possible.

Upgrade your TFS administration skills to TFS 2017 today

With the release of Microsoft Team Foundation Server 2017 announced at the Connect(); // 2016 conference in mid-November, organisations are now looking at upgrading to the latest version.

The new version of TFS brings many major benefits to teams including:

  • Package Management

    Create and manage private NuGet feeds.

  • Code Search

    Search all the code across your project collection easily.

  • Agile planning improvements

    new form, following work items, live updates, better notifications, …

  • Git improvements

    Hugely upgraded pull request experience, iterative reviews, squash merge, …

  • Build improvements

    Java build templates, Xamarin build tasks, Docker support, …

  • Release management improvement

    Support for ARM templates, task groups, manual approval task, scheduled releases, …

  • Test improvements

    10X more compact test results storage, lots of manual testing improvements, test reporting and traceability improvements, …

To help TFS administrators upskill their knowledge to help plan, upgrade and configure TFS 2017, we’ve created a brand new course specifically for existing administrators.

Introducing Updating Your TFS Administration Skills for TFS 2017, a 2-day training course for experienced TFS administrators.

At the completion of this course, attendees will be able to:

  • enable new features in TFS 2017 as required
  • plan their migration to the latest version of TFS
  • configure Package Management and set security on feeds
  • install, configure, and optimise the new Code Search feature
  • troubleshoot issues with Code Search
  • understand the latest improvements to Build and Release from an admin perspective
  • install extensions from the Visual Studio Marketplace
  • understand how to install internally developed TFS extensions
  • understand the new process template model
  • implement work item customisations
  • understand and configure new permissions

Find out more about this course and review the course outline now. (PDF)

If you’re new to TFS administration, we also have a 4-day “TFS 2017 Configuration and Administration” course featuring comprehensive coverage of all administration tasks.