GitManagement.psm1
$Script:ErrorActionPreference = "Stop" Set-StrictMode -Version Latest # If git is not installed, abort the module load if ($null -eq (Get-Command "git.exe" -ErrorAction SilentlyContinue)) { throw "Unable to find 'git.exe' in your PATH. GitManagement module does not work without git installed." } # Script-internal configuration object $Script:GitManagement = @{ } $GitManagement.Providers = @{ } $GitManagement.BaseDirectory = $null $GitManagement.Repositories = $null $GitManagement.LastRepositoryScan = Get-Date # Load everything Get-ChildItem -Recurse $PSScriptRoot *.ps1 | ForEach-Object { . $_.FullName } # Default providers Add-Provider Azure 'https://(?:\w+@)?dev.azure.com/(?<Organization>\w+)/(?<Project>\w+)/_git/(?<Repository>[\w-_]+)' Organization, Project, Repository Add-Provider GitHub 'https://github\.com/(?<UserOrOrganization>\w+)/(?<Repository>[\w-_]+)\.git' UserOrOrganization, Repository Add-Provider Bitbucket 'https://(?:\w+@)?bitbucket.org/(?<User>\w+)/(?<Repository>[\w-_]+)\.git' User, Repository |