Updating my Azure DevOps Pipeline Task to Use the Node16 Runner

Background It is easy to create an Open Source Project and leave it to gather technical debt as the libraries it depends upon are updated. I have tried to keep on top of updating all my Azure DevOps Pipeline Extensions, and I have to say Dependabot has certainly helped, but I have not been as diligent as I might have been. So, as a Christmas project, I took the chance to start to do a major update of all my extensions....

December 13, 2022 · 3 min · Richard Fennell

Fixing my Logitech Spotlight Presentation Remote that would not switch on

The Problem I am getting back out in front of audiences again as opposed to doing Teams/Zoom events. So I dug out my trusty Logitech Spotlight presentation remote from the bag where it had been sitting for well over a year. However, there was a problem, it would not pair with my re-built Windows 11 PC. It could not even switch on. A quick search showed I was not alone in having this problem, the Logitech forums showed a lot of angry people....

November 14, 2022 · 4 min · Richard Fennell

Using Azure DevOps Migration Tools Again

I have recently been working with a client who needed to move Azure DevOps Work Items between Team Projects on different Azure DevOps instances. The only realistic choice was to use the free open source Azure DevOps Migration Tools. I have used these tools before, but it was a while ago, and as it is under active development, I had to relearn a few things. It is fair to say that the learning curve for this tool is steep, but as the documentation does not hide this...

November 11, 2022 · 5 min · Richard Fennell

GitVersion task fails on a cloned Azure DevOps YAML Pipeline

Problem I recently had a strange problem. I had an existing Azure DevOps YAML Pipeline that used the checkout task to do a deep Git fetch of a repo and it’s submodules. The reason for the deep fetch was that later in the pipeline we ran GitVersion and this needs the whole repo to be able to calculate the version. - checkout: self persistCredentials: true submodules: true - task: gitversion/setup@0 displayName: 'Get current version of GitVersion' inputs: versionSpec: '5....

November 8, 2022 · 2 min · Richard Fennell

Migrating our "Living the Dream" DevOps demo to GitHub Enterprise

At Black Marble, we have had a long standing Azure DevOps Team Project that we used for end-to-end demos of the principles of DevOps called Living the Dream. This used a legacy codebase, the old Microsoft Fabrikam demo, and showed that can be deployed using modern tools. As I had no similar demo for GitHub Enterprise, I thought it would be interesting to see how the migration process taking my Azure DevOps implementation over to GitHub would go....

November 1, 2022 · 5 min · Richard Fennell

Ignite 2022 Azure DevOps & GitHub Announcements - GitHub Advanced Security comes to Azure DevOps

Today at Microsoft’s Ignite Conference there have been some very interesting announcements related to Azure DevOps and GitHub. In the recent past, I have seen confusion from our clients as to what is Microsoft’s recommended DevOps solution, given they have both Azure DevOps and GitHub. It is true that Microsoft have said, and continue to say, that GitHub is the ’north star’ the long term destination for all users. However, that does not help clients today....

October 12, 2022 · 2 min · Richard Fennell

SonarCloud PR branch analysis when the main/trunk branch has not been analysed

SonarCloud (and it’s on premise equivalent SonarQube) understand the concept of Git branching and PRs (in various platforms, in my case Azure DevOps was the important one). This means you can block the completion of a PR if the new code in the branch/PR does not meet the SonarCloud Quality Gate. A great way to stop the addition of technical debt. However, I recently found a problem when starting to use SonarCloud in an older codebase....

October 1, 2022 · 3 min · Richard Fennell

Showing OWASP Dependency Check results in SonarCloud

The OWASP Dependency Checker can be used to check for known vulnerabilities in a variety of eco-systems. This tool produces a HTML based report, but I wanted to expose the issues in SonarCloud. The problem is that SonarCloud does not allow ingestion of OWASP Dependency Checker vulnerabilities out the box. However, there is the option to ingest Generic Issue Data. To make use of this I just needed to change my XML results file to a JSON format...

September 29, 2022 · 2 min · Richard Fennell

Clearing the AssignedTo field on an Azure DevOps Work items with the AZ CLI

In the past I have written most of my Azure DevOps scripts calling the Azure DevOps REST API from PowerShell. This has worked, but did involve a lot of JSON payload handling. A better option these days is to look at the AZ CLI and specifically the azure-devops extension, as this does much of the heavy lifting for you. This does not mean that everything is plain sailing though. Today I hit a problem that took me a while to solve....

September 6, 2022 · 1 min · Richard Fennell

Why has my HP printer become a DVD? A fix for HP USB Printers not being detected on Windows 10/11

Today I made the fateful mistake of offering to try to fix a family members home printer. Family IT, and especially printers, the bane of all IT Professionals. The Problem The system in question was a 10 year old setup made up of a Dell Optiplex desktop currently running Windows 10 and an HP M1132 LaserJet multifunction printer. This had all been working until a couple of weeks ago when the PC failed to detect the printer....

July 30, 2022 · 2 min · Richard Fennell