Skip to content

Instantly share code, notes, and snippets.

@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 18, 2024 15:29
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 November 23, 2023 09:10
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"
)
@rfennell
rfennell / Get-AgentPoolForNamedAgent.ps1
Created September 6, 2022 09:20
A sample script that shows how to find the Azure DevOps agent pool for a named agent. Also shows the call required to delete the agent
function Get-AgentPoolForNamedAgent {
param
(
$pat,
$url,
$agentName
)
$patToken = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($pat)"))