The blog of Richard Fennell

This is the blog of Richard Fennell, I am a Microsoft MVP for Developer Technologies and the CTO of Black Marble Ltd a Microsoft Gold Partner based in the North of England. Black Marble specialises in Integration projects using the Azure/Microsoft stack. I blog mostly on the subject of DevOps using Azure DevOps and GitHub.
Richard Fennell (headshot)

You need to wait longer when restarting Logic Apps

I have been doing some work one a Logic Apps that routes its traffic out via a vNet and accesses its underlying Storage Account via private endpoints. ‘Nothing that special in that configuration’ I hear you saying, but I did manage to confuse myself whilst testing. After changing my configuration of the vNet, I restarted the Logic App to make sure everything was working as expected on startup. The Logic App appeared to start within a few seconds, the Overview pane in the Azure Portal showing the correct values....

March 25, 2025 · 1 min · Richard Fennell

Why cannot I see my Logic App action output?

The Problem I recently was debugging an Execute PowerShell Code Logic App action, so wanted to see it’s output. However, when I reviewed the run history, the output for my code action was empty. The Cause (and Solution) The problem turned out to be that the Logic App’s Inbound traffic configuration. You can replicate this issue easily Create a new Logic App Workflow, use any trigger and then add an Execute PowerShell Code action, you don’t need to edit the default code sample....

March 15, 2025 · 1 min · Richard Fennell

Parsing CSV files in Azure Logic Apps

The Problem I recently had the need in an Azure Logic App to read a CSV file from an Azure Storage account, parse the file, and then process the data row by row. Unfortunately, there is no built-in action in Logic Apps to parse CSV files. So as to avoid having to write an Azure function, or use a number of slow, low level Logic App actions, I decided to use the PowershellCode action to parse the CSV file quickly inline with the rest of the Logic App....

March 5, 2025 · 2 min · Richard Fennell

I know I am late to the game with Home Assistant....

Since moving house a couple of years ago, I have gained an ever increasing set of apps on my phone to manage various things, such the Solaredge PV and battery system we installed and our Octopus Energy account, to name but two. In the past, I had avoided IOT and the ‘Intelligent Home’ as I did not want to get to the point where ‘I can’t do the washing up, the Internet is down’....

February 20, 2025 · 3 min · Richard Fennell

What are my options authenticating the az devops CLI?

Edited: 4th Feb 2025 to add detail on Azure DevOps Pipelines Service Connection Introduction When automating administration tasks via scripts in Azure DevOps in the past I would have commonly used the Azure DevOps REST API. However, today I tend to favour the Azure DevOps CLI. The reason for this is that the CLI wrappers the REST API in such a way that it is easier to use and more consistent....

January 31, 2025 · 6 min · Richard Fennell

Passing Azure DevOps WI field names in PowerShell to Az DevOps CLI as variables

The Issue The Azure DevOps CLI command az boards work-item update can take a list of fields as a set if value pairs e.g. az boards work-item update --id 123 --fields Microsoft.VSTS.Scheduling.Effort=10 However, if you try to replace the field name with a variable in PowerShell like this $fieldname = "Microsoft.VSTS.Scheduling.Effort" az boards work-item update --id 123 --fields $fieldname=10 you will get an error like this The –fields argument should consist of space separated “field=value” pairs....

January 27, 2025 · 1 min · Richard Fennell

Signing files in GitHub Actions

Background I recently wrote about the changes I had had to make to our Azure DevOps pipelines to address the changes required when code signing with a new DigiCert certificate due to new private key storage requirements for Code Signing certificates Today I had to do the same for a GitHub Actions pipeline. The process is very similar, but there are a few differences in the syntax and the way the secrets are stored....

January 20, 2025 · 4 min · Richard Fennell

Re-authenticating Microsoft Authenticator after swapping your phone

This one of those posts that is more a note to self as I keep forgetting how to do this, but I hope it helps others. Background I use Microsoft’s Authenticator to provide MFA on a number of accounts. I recently swapped my Android phone and had to, after restoring a backup, re-authenticate some accounts on the new device. This was a simple process for most accounts, just a case of validating the code generated by the new device, but I had a problem with the entries where my Black Marble Entra ID account was a guest in other company’s Entra ID directories....

January 20, 2025 · 2 min · Richard Fennell

Why am I getting no private key is available error when I try to digitally sign files in my Azure DevOps Pipeline?

Background It is becoming increasingly important to sign files digitally to ensure that they have not been tampered with, to secure the software supply chain. This is something we have done for a good while as a step in our Azure DevOps pipelines. However, recent(ish) changes in the way certificates are issued has meant we have had to revise our approach. The Problem We used to use a .PFX file, stored as an Azure DevOps secure file, that contained the public and private keys and was accessed using a password, to sign our files....

December 11, 2024 · 3 min · Richard Fennell

Inject a step into Web Deploy

I really like Web Deploy, it is a powerful tool for injecting parameters whilst deploying web applications to both Azure or an on-premise IIS Server. Every project is different, and sometimes you need to be able to inject a step into the Web Deploy package creation process to complete some extra step. This can be done by adding a target to the .csproj project file. The following example shows how you could sign the assemblies before the Web Deploy package is created....

December 4, 2024 · 1 min · Richard Fennell