Making SonarQube Quality Checks a required PR check on Azure DevOps

This is another of those posts to remind me in the future. I searched the documentation for this answer for ages and found nothing, eventually getting the solution by asking on the SonarQube Forum When you link SonarQube into an Azure DevOps pipeline that is used from branch protection the success, or failure, of the PR branch analysis is shown as an optional PR Check The question was ‘how to do I make it a required check?’. Turns out the answer is to add an extra Azure DevOps branch policey status check for the ‘SonarQube/quality gate’ ...

September 21, 2021 · 1 min · Richard Fennell

My cancer story – thus far

This is a somewhat different post to my usual technical ones… In December 2017 I had major surgery. This was to remove an adrenal cortical carcinoma (ACC) that had grown on one of my adrenal glands and then up my inferior vena cava (IVC) into my heart. Early on I decided, though not hiding the fact I was ill, to not live every detail on social media. So, it is only now that I am back to a reasonable level of health and with some distance that I feel I can write about my experiences. I hope they might give people some hope that there can be a good outcome when there is a cancer diagnosis. ...

August 23, 2021 · 14 min · Richard Fennell

But what if I can't use GitHub Codespaces? Welcome to github.dev

Yesterday GitHub released Codespaces as a commercial offering. A new feature I have been using during its beta phase. Codespaces provides a means for developers to easily edit GitHub hosted repos in Visual Studio Code on a high-performance VM. No longer does the new developer on the team have to spend ages getting their local device setup ‘just right’. They can, in a couple of clicks, provision a Codespace that is preconfigured for the exact needs of the project i.e the correct VM performance, the right VS Code extensions and the debug environment configured. All billed on a pay as you go basis and accessible from any client. ...

August 12, 2021 · 2 min · Richard Fennell

How I dealt with a strange problem with PSRepositories and dotnet NuGet sources

Background We regularly re-build our Azure DevOps private agents using Packer and Lability, as I have posted about before. Since the latest re-build, we have seen all sorts of problems. All related to pulling packages and tools from NuGet based repositories. Problems we have never seen with any previous generation of our agents. The Issue The issue turned out to be related to registering a private PowerShell repository. $RegisterSplat = @{ Name = 'PrivateRepo' SourceLocation = 'https://psgallery.mydomain.co.uk/nuget/PowerShell' PublishLocation = 'https://psgallery.mydomain.co.uk/nuget/PowerShell' InstallationPolicy = 'Trusted' } Register-PSRepository @RegisterSplat Running this command caused the default dotnet NuGet repository to be unregistered i.e. the command dotnet nuget list source was expected to return ...

July 16, 2021 · 1 min · Richard Fennell

Porting my Visual Studio Parameters.xml Generator tool to Visual Studio 2022 Preview

As I am sure you are all aware the preview of Visual Studio 2022 has just dropped, so it is time for me to update my Parameter.xml Generator Tool to support this new version of Visual Studio. But what does my extension do? As the Marketplace description says… A tool to generate parameters.xml files for MSdeploy from the existing web.config file or from an app.config file for use with your own bespoke configuration transformation system. ...

June 22, 2021 · 3 min · Richard Fennell

Automating the creation of Team Projects in Azure DevOps

Creating a new project in Azure DevOps with your desired process template is straightforward. However, it is only the start of the job for most administrators. They will commonly want to set up other configuration settings such as branch protection rules, default pipelines etc. before giving the team access to the project. All this administration can be very time consuming and of course prone to human error. To make this process easier, quicker and more consistent I have developed a process to automated all of this work. It uses a mixture of the following: ...

June 10, 2021 · 2 min · Richard Fennell

Getting the approver for release to an environment within an Azure DevOps Multi-Stage YAML pipeline

I recently had the need to get the email address of the approver of a deployment to an environment from within a multi-stage YAML pipeline. Turns out it was not as easy as I might have hoped given the available documented APIs. Background My YAML pipeline included a manual approval to allow deployment to a given environment. Within the stage protected by the approval, I needed the approver’s details, specifically their email address. ...

May 15, 2021 · 1 min · Richard Fennell

Loading drivers for cross-browser testing with Selenium

Another post so I don’t forget how I fixed a problem…. I have been making sure some Selenium UX tests that were originally written against Chrome also work with other browsers. I have had a few problems, the browser under test failing to load or Selenium not being able to find elements. Turns out the solution is to just use the custom driver start-up options, the default constructors don’t seem to work for browsers other theran Chrome and Firefox. ...

April 21, 2021 · 1 min · Richard Fennell

A first look at the beta of GitHub Issue Forms

Update 10 May 2021 - Remember that GitHub Issue Forms are in early beta, you need to keep an eye on the regular new releases as they come out. For example, my GitHub Forms stopped showing last week. This was due to me using now deprecate lines in the YAML definition files. Once I edited the files to update to support YAML they all leap back into life GitHub Issues are core to tracking work in GitHub. Their flexibility is their biggest advantage and disadvantage. As a maintainer of a projects, I always need specific information when an issue is raised. Whether it be a bug, or feature request. ...

April 6, 2021 · 2 min · Richard Fennell

Tidying up local branches with a Git Alias and a PowerShell Script

It is easy to get your local branches in Git out of sync with the upstream repository, leaving old dead branches locally that you can’t remember creating. You can use the prune option on your Git Fetch command to remove the remote branch references, but that command does nothing to remove local branches. A good while ago, I wrote a small PowerShell script to wrapper the running of the Git Fetch and then based on the deletions remove any matching local branches. Then finally returning me to my trunk branch. ...

March 16, 2021 · 1 min · Richard Fennell