Skip to content

Instantly share code, notes, and snippets.

@rfennell
rfennell / agent-scheduled-job-yml
Last active August 30, 2024 09:12
Azure DevOps Custom Maintenance Jobs
# This is the pipeline that runs any scheduled maintainance jobs
# we wish to run in addition to the built in Azure DevOps Maintainance jobs
# The parameters to target each pool and agent
parameters:
- name: pool
- name: agent
- name: nvdapikey
# We cannot use to the parameters directly else we get a 'A template expression is not allowed in this context'
@rfennell
rfennell / revert-workitems.ps1
Last active April 17, 2024 14:45
A PowerShell script to revert the values in a specified list of fields for a list of work items returned by a WIQL query
[CmdletBinding()]
<#
.SYNOPSIS
Reverts work items to their previous state in Azure DevOps based on the specified criteria.
.DESCRIPTION
Reverts work items to their previous state in Azure DevOps based on the specified criteria.
@rfennell
rfennell / Copy-GitLabRepoToAzureDevOps.ps1
Last active April 23, 2024 12:35
Copy repos from GitLab to Azure DevOps
<#
.SYNOPSIS
Copies GitLab repositories to Azure DevOps.
.DESCRIPTION
This script retrieves GitLab repositories using the provided GitLab token and copies them to an Azure DevOps project.
.PARAMETER gitlabtoken
Specifies the GitLab token to authenticate with the GitLab API.
Create a personal access token in GitLab by navigating to Profile > Edit Profile > Access Tokens.
@rfennell
rfennell / Copy-LastBlogCommit.ps1
Created March 22, 2024 09:01
When run in a Hugo based Static website Git Repo will copy content to another repo
param (
[string]$blog = "rfennell",
[string]$destination = "C:\projects\bm-source\BMBlogs-Hugo"
)
write-host "Copying last blog commit"
$commandOutput = Invoke-Expression "git diff-tree --no-commit-id --name-only -r HEAD"
foreach ($sourceFile in $commandOutput) {
@rfennell
rfennell / export-tfs-upgate-log-to-csv.ps1
Last active October 5, 2023 10:44
Extracts the timestamps from a TFS/Azure DevOps upgrade log or ease of charting
param
(
$logfile = "TPC\_ApplyPatch.log",
$outfile = "out.csv"
)
# A function to covert the start and end times to a number of minutes
# Can't use simple timespan as we only have the time portion not the whole datetime
# Hence the hacky added a day-1 second
@rfennell
rfennell / DockerCompose.yml
Last active June 6, 2024 15:55
A BICEP file to deploy Snipe IT to Azure - see the comments below for usage details
version: "3"
services:
snipe-it:
image: snipe/snipe-it:latest
volumes:
- snipeit:/var/lib/snipeit
- snipeit-logs:/var/www/html/storage/logs
volumes:
@rfennell
rfennell / run.csx
Created July 14, 2023 12:24
Azure Function code to send a Tweet to the V2 Twitter API using OAUTH1.0
#r "Newtonsoft.Json"
using System.Text;
using System.Net;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Newtonsoft.Json;
using OAuth;
public static async Task<IActionResult> Run(HttpRequest req, ILogger log)
@rfennell
rfennell / Get-NugetPackage.ps1
Last active April 1, 2023 15:39
Downloading NuGet packages with 'System.Net.WebClient' from an Azure DevOps Artifact feed
param(
$package,
$version,
$azdoOrg,
$feedname,
# provide a, Azure DevOps PAT if it a private feed
$pat,
$DestinationPath = "$package-$version.zip"
)
@rfennell
rfennell / KeyVaultFilter.yaml
Created February 7, 2023 18:54
An inline task to convert a regex based filter to a comma separated list as required to download Secrets from KeyVault in Azure DevOps
variables:
# the variable used to filter the KeyVault secret list
# This can be a simple prefix and wildcard e.g. 'Config-*''
# Or a more complex regex expression e.g. ^(?:Config-*|Settings-*)
- name: KV-Filter
value: '^(?:Config-*|Settings-*)'
# the variable used to KeyVault name
- name: KV-Name
value: 'bm-kv1'
@rfennell
rfennell / DependancyCheckToSonarCloudConvertor.ps1
Last active September 30, 2022 11:46
Script to convert OWASP Dependency Check Results to a format that can be ingested into SonarCloud
param
(
# The OWASP results XML file
$input = "dependancy-results.xml",
# The SonarCloud generic issue JSON file
$output = "dependancy-results.json",
# The file to associate issues with
$filename = "c:\folder\file.cs"
)