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.x' - task: gitversion/execute@0 displayName: 'Run GitVersion to generate SEMVER' inputs: useConfigFile: true configFilePath: '$(System.DefaultWorkingDirectory)/GitVersion.yml' On this original pipeline this was all working as expected. ...

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. This is a good learning exercise as it is the type of problem that many of our enterprise clients will need to do if changing DevOps platform. My key aim was to do the minimum to get the CI/CD process moved from Azure Pipelines to GitHub Action ...

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. Many of mine ask ‘but I am using Azure DevOps, but all Microsoft seem to talk about is GitHub, is Azure DevOps dead?’. ...

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. You cannot do SonarCloud analysis of a child branch before the main/trunk has been analysed. ...

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

Book Review "Accelerate DevOps with GitHub" by Michael Kaufmann

The contents of this book is not at all what I was expecting from the title ‘Accelerate DevOps with GitHub’. Usually books that aim to provide up to date walkthroughs for a specific current tools tend to not place them within the large tapestry of the ecosystem. This is not the case with this book from Michael Kaufmann. Each section is delivered in broadly three parts, which I found really effective ...

September 4, 2022 · 2 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. The printer was uninstalled, assuming that would fix the problem, but the Add Printer tools could not even find the printer. ...

July 30, 2022 · 2 min · Richard Fennell

Why has my MVC site stopped working?

I am currently upgrading a .NET Core 3.1(LTS) MVC website to run on .NET 6, stepping it through intermediate .NET versions to make sure some EF Migrations were done correctly. Everything upgraded without any major issue until the final step to .NET 6. As soon as I did this my MVC pages failed to render, but no error was reported After much fiddling the solution to the problem was pointed out to me by one of my colleagues. The way MVC is shipped with .NET (Core) has changed from being a NuGet package to being part of the framework. This happened a good while ago, but become a blocking issue with .NET Core. ...

July 28, 2022 · 2 min · Richard Fennell

Cannot retrieve Umbraco node

We recently hit a problem when we tried to edit a page on anold Umbraco 7 instance. When we tried to edit a page in the Umbraco web UI we got the error ‘failed to retrieve data for content id 1119’ Now this page had been created a long time ago by a user who had since left the company, and this was the root cause. It seems there is an issue with Umbraco and deleted users. To avoid this problem, it is actually recommended you disable old Umbraco user accounts as opposed to deleting them. ...

July 25, 2022 · 1 min · Richard Fennell