Skip to content

Instantly share code, notes, and snippets.

View akanieski's full-sized avatar

Andrew Kanieski akanieski

View GitHub Profile
@akanieski
akanieski / Export-WindowsCertStoreToPEM.ps1
Created November 7, 2023 21:25
Export-WindowsCertStoreToPEM
# Get all certificates from the cert store
$certs = Get-ChildItem -Path "Cert:\CurrentUser\Root"
# Initialize an empty array to hold the PEM strings
$pemCerts = @()
# Loop over each certificate
foreach ($cert in $certs) {
# Export the certificate as a PEM string
$pem = [System.Convert]::ToBase64String($cert.Export([System.Security.Cryptography.X509Certificates.X509ContentType]::Cert))
@akanieski
akanieski / ado-servicenow-validate.yml
Created October 24, 2023 15:18
Simple Service Now Change Control Validator
parameters:
- name: changeControlNumber
type: string
displayName: Change Control Number
default: 'CHG000000'
- name: serviceNowUri
type: string
displayName: Service Now Base Uri
default: https://service-now-tenant.service-now.com
- name: serviceNowUser
@akanieski
akanieski / get-data.ps1
Created September 21, 2023 17:46
http-request-loop
# Define your array of strings
$strings = @("https://example.com/api/endpoint1", "https://example.com/api/endpoint2", "https://example.com/api/endpoint3")
# Specify the CSV file path
$csvFilePath = "responses.csv"
# Initialize an empty array to store the response data
$responseData = @()
# Iterate over each string in the array
@akanieski
akanieski / pre-commit
Created June 22, 2023 22:45
GitLeaks Pre-Commit Hook
#!/bin/sh
#
# Define color codes
RED='\033[0;31m'
LIGHT_GREEN='\033[1;32m'
NC='\033[0m' # No Color
if command -v podman &> /dev/null; then
export cli='podman'
else
@akanieski
akanieski / adjust-sqlproj-rules.yml
Created March 25, 2023 19:42
Adjust SQL Project Files to enforce a given SqlCodeAnalysisRules set
parameters:
- name: rules
type: string
- name: directory
type: string
steps:
- powershell: |
$rules = '${{ parameters.rules }}'
$dir = '${{ parameters.directory }}'
@akanieski
akanieski / analyze-changes.yml
Created March 25, 2023 17:36
Azure Pipelines - Run Stages When Certain Files Are Changed
parameters:
- name: searchPattern
type: string
- name: setVariableNamed
type: string
- name: publishAsArtifactNamed
type: string
default: SkipPublishChanges
steps:
@akanieski
akanieski / Get-LatestAgents.ps1
Created July 21, 2022 16:34
Update Azure DevOps Server App Tiers with Latest Agents
param (
[string] $Path
)
$RootDir = "C:\ProgramData\Microsoft\Azure DevOps\"
$AgentsCacheDirectory = "$RootDir\Agents"
if ($Path) {
$AgentsCacheDirectory = $Path
}
$LatestRelease = Invoke-RestMethod -Uri "https://api.github.com/repos/microsoft/azure-pipelines-agent/releases/latest"
@akanieski
akanieski / BuildDefinitionSummary.sql
Created May 16, 2022 23:38
Build Definition Summaries - Tracking Artifactory and SonarQube Adoption
select
x.* into #TaskDefs from (select * from [AzureDevops_CollectionDb].[Task].tbl_TaskDefinition UNION
select
*
from
[AzureDevops_ConfigDb].[Task].tbl_TaskDefinition
) x;
select
*
from
@akanieski
akanieski / FindCustomFields.sql
Created February 5, 2022 04:09
Query to locate custom fields
select prj.ProjectName, WorkItemType, f.ReferenceName, f.FieldId from dbo.tbl_FieldUsage u
left join tbl_field f on f.fieldid = u.fieldid
left join [AnalyticsModel].tbl_WorkItemTypeField witf on witf.FieldReferenceName = f.ReportingReferenceName
left join [AnalyticsModel].tbl_Project prj on prj.ProjectSK = witf.ProjectSK
where u.IsCore = 0 and u.ObjectId = -100 and ChangerId > 0
@akanieski
akanieski / FindCustomWIT.sql
Created February 5, 2022 04:09
Query to locate custom work item types
select ProjectName, WorkItemType from [AnalyticsModel].[tbl_Process] pro
left join [AnalyticsModel].tbl_Project prj on prj.ProjectSK = pro.ProjectSK
where workitemtype not in (
'Bug'
, 'Change Request'
, 'Code Review Request'
, 'Code Review Response'
, 'Epic'
, 'Feature'