diff --git a/src/classes/public/Context/GitHubContext.ps1 b/src/classes/public/Context/GitHubContext.ps1 index 232c2d21a..8d54ac1b9 100644 --- a/src/classes/public/Context/GitHubContext.ps1 +++ b/src/classes/public/Context/GitHubContext.ps1 @@ -1,4 +1,4 @@ -class GitHubContext { +class GitHubContext { # The context ID. [string] $ID diff --git a/src/functions/private/Actions/Import-GitHubEventData.ps1 b/src/functions/private/Actions/Import-GitHubEventData.ps1 index 48c8a9170..def1ed332 100644 --- a/src/functions/private/Actions/Import-GitHubEventData.ps1 +++ b/src/functions/private/Actions/Import-GitHubEventData.ps1 @@ -1,4 +1,6 @@ -function Import-GitHubEventData { +#Requires -Modules @{ ModuleName = 'CasingStyle'; RequiredVersion = '1.0.2' } + +function Import-GitHubEventData { <# .SYNOPSIS Import data from the event that triggered the workflow. @@ -39,7 +41,7 @@ $hashtable = @{} $gitHubEvent.PSObject.Properties | ForEach-Object { $name = $_.Name - $name = $name | Convert-StringCasingStyle -To PascalCase + $name = $name | ConvertTo-CasingStyle -To PascalCase $hashtable[$name] = $_.Value } $gitHubEvent = [pscustomobject]$hashtable diff --git a/src/functions/private/Auth/DeviceFlow/Update-GitHubUserAccessToken.ps1 b/src/functions/private/Auth/DeviceFlow/Update-GitHubUserAccessToken.ps1 index ccf985237..2ff339983 100644 --- a/src/functions/private/Auth/DeviceFlow/Update-GitHubUserAccessToken.ps1 +++ b/src/functions/private/Auth/DeviceFlow/Update-GitHubUserAccessToken.ps1 @@ -23,7 +23,7 @@ [OutputType([securestring])] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingWriteHost', '', Justification = 'Is the CLI part of the module.')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingConvertToSecureStringWithPlainText', '', Justification = 'The tokens are recieved as clear text. Mitigating exposure by removing variables and performing garbage collection.')] - [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidLongLines', '', Scope = 'Function', Justification = 'Reason for suppressing')] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidLongLines', '', Justification = 'Reason for suppressing')] param( # The context to run the command in. Used to get the details for the API call. # Can be either a string or a GitHubContext object. diff --git a/src/functions/private/Config/Initialize-GitHubConfig.ps1 b/src/functions/private/Config/Initialize-GitHubConfig.ps1 index 5e51c0636..fce061650 100644 --- a/src/functions/private/Config/Initialize-GitHubConfig.ps1 +++ b/src/functions/private/Config/Initialize-GitHubConfig.ps1 @@ -1,4 +1,6 @@ -function Initialize-GitHubConfig { +#Requires -Modules @{ ModuleName = 'Context'; RequiredVersion = '6.0.0' } + +function Initialize-GitHubConfig { <# .SYNOPSIS Initialize the GitHub module configuration. diff --git a/src/functions/private/Organization/Blocking/Block-GitHubUserByOrganization.ps1 b/src/functions/private/Organization/Blocking/Block-GitHubUserByOrganization.ps1 index 109173ff5..791b61942 100644 --- a/src/functions/private/Organization/Blocking/Block-GitHubUserByOrganization.ps1 +++ b/src/functions/private/Organization/Blocking/Block-GitHubUserByOrganization.ps1 @@ -76,4 +76,3 @@ Write-Debug "[$stackPath] - End" } } - diff --git a/src/functions/private/Organization/Blocking/Test-GitHubBlockedUserByOrganization.ps1 b/src/functions/private/Organization/Blocking/Test-GitHubBlockedUserByOrganization.ps1 index 928be8432..2ea904246 100644 --- a/src/functions/private/Organization/Blocking/Test-GitHubBlockedUserByOrganization.ps1 +++ b/src/functions/private/Organization/Blocking/Test-GitHubBlockedUserByOrganization.ps1 @@ -72,4 +72,3 @@ Write-Debug "[$stackPath] - End" } } - diff --git a/src/functions/private/Teams/Get-GitHubRESTTeam.ps1 b/src/functions/private/Teams/Get-GitHubRESTTeam.ps1 index ed1859723..dce4b2a53 100644 --- a/src/functions/private/Teams/Get-GitHubRESTTeam.ps1 +++ b/src/functions/private/Teams/Get-GitHubRESTTeam.ps1 @@ -65,7 +65,7 @@ } switch ($PSCmdlet.ParameterSetName) { 'GetByName' { - Get-GitHubTeamByName @params -Name $Name + Get-GitHubRESTTeamByName @params -Name $Name } '__AllParameterSets' { Get-GitHubTeamListByOrg @params diff --git a/src/functions/private/Utilities/Casing/Convert-StringCasingStyle.ps1 b/src/functions/private/Utilities/Casing/Convert-StringCasingStyle.ps1 deleted file mode 100644 index ea3d2058e..000000000 --- a/src/functions/private/Utilities/Casing/Convert-StringCasingStyle.ps1 +++ /dev/null @@ -1,71 +0,0 @@ -filter Convert-StringCasingStyle { - <# - .SYNOPSIS - Convert a string to a different casing style - - .DESCRIPTION - This function converts a string to a different casing style. - - .EXAMPLE - 'thisIsCamelCase' | Convert-StringCasingStyle -To 'snake_case' - - Convert the string 'thisIsCamelCase' to 'this_is_camel_case' - - .EXAMPLE - 'thisIsCamelCase' | Convert-StringCasingStyle -To 'UPPER_SNAKE_CASE' - - Convert the string 'thisIsCamelCase' to 'THIS_IS_CAMEL_CASE' - - .EXAMPLE - 'thisIsCamelCase' | Convert-StringCasingStyle -To 'kebab-case' - - .NOTES - General notes - #> - [OutputType([string])] - [CmdletBinding()] - param( - # The string to convert - [Parameter( - Mandatory, - ValueFromPipeline - )] - [string] $Text, - - # The casing style to convert the string to - [Parameter(Mandatory)] - [ValidateSet( - 'lowercase', - 'UPPERCASE', - 'Title Case', - 'Sentencecase', - 'PascalCase', - 'camelCase', - 'kebab-case', - 'UPPER-KEBAB-CASE', - 'snake_case', - 'UPPER_SNAKE_CASE' - )] - [string] $To - ) - - $currentStyle = Get-StringCasingStyle -Text $Text - - $words = Split-StringByCasingStyle -Text $Text -By $currentStyle - - # Convert the words into the target style - switch ($To) { - 'lowercase' { ($words -join '').toLower() } - 'UPPERCASE' { ($words -join '').toUpper() } - 'Title Case' { ($words | ForEach-Object { $_.Substring(0, 1).ToUpper() + $_.Substring(1).ToLower() }) -join ' ' } - 'Sentencecase' { $words -join '' | ForEach-Object { $_.Substring(0, 1).ToUpper() + $_.Substring(1).ToLower() } } - 'kebab-case' { ($words -join '-').ToLower() } - 'snake_case' { ($words -join '_').ToLower() } - 'PascalCase' { ($words | ForEach-Object { $_.Substring(0, 1).ToUpper() + $_.Substring(1).ToLower() }) -join '' } - 'camelCase' { - $words[0].toLower() + (($words | Select-Object -Skip 1 | ForEach-Object { $_.Substring(0, 1).ToUpper() + $_.Substring(1) }) -join '') - } - 'UPPER_SNAKE_CASE' { ($words -join '_').toUpper() } - 'UPPER-KEBAB-CASE' { ($words -join '-').toUpper() } - } -} diff --git a/src/functions/private/Utilities/Casing/Get-StringCasingStyle.ps1 b/src/functions/private/Utilities/Casing/Get-StringCasingStyle.ps1 deleted file mode 100644 index 0640ade46..000000000 --- a/src/functions/private/Utilities/Casing/Get-StringCasingStyle.ps1 +++ /dev/null @@ -1,98 +0,0 @@ -filter Get-StringCasingStyle { - <# - .SYNOPSIS - Detects the casing style of a string - - .DESCRIPTION - This function detects the casing style of a string. - - .EXAMPLE - 'testtesttest' | Get-StringCasingStyle - - lowercase - - .EXAMPLE - 'TESTTESTTEST' | Get-StringCasingStyle - - UPPERCASE - - .EXAMPLE - 'Testtesttest' | Get-StringCasingStyle - - Sentencecase - - .EXAMPLE - 'TestTestTest' | Get-StringCasingStyle - - PascalCase - - .EXAMPLE - 'testTestTest' | Get-StringCasingStyle - - camelCase - - .EXAMPLE - 'test-test-test' | Get-StringCasingStyle - - kebab-case - - .EXAMPLE - 'TEST-TEST-TEST' | Get-StringCasingStyle - - UPPER-KEBAB-CASE - - .EXAMPLE - 'test_test_test' | Get-StringCasingStyle - - snake_case - - .EXAMPLE - 'TEST_TEST_TEST' | Get-StringCasingStyle - - UPPER_SNAKE_CASE - - .EXAMPLE - 'Test_teSt-Test' | Get-StringCasingStyle - - Unknown - #> - [OutputType([string])] - [CmdletBinding()] - param( - # The string to check the casing style of - [Parameter( - Mandatory, - ValueFromPipeline - )] - [ValidateNotNullOrEmpty()] - [string] $Text - ) - - $style = if ([regex]::Match($Text, '^[a-z][a-z0-9]*$').Success) { - 'lowercase' - } elseif ([regex]::Match($Text, '^[A-Z][A-Z0-9]*$').Success) { - 'UPPERCASE' - } elseif ([regex]::Match($Text, '^[A-Z][a-z0-9]*$').Success) { - 'Sentencecase' - } elseif ([regex]::Match($Text, '^([A-Z][a-z]*)(\s+[A-Z][a-z]*)+$').Success) { - 'Title Case' - } elseif ([regex]::Match($Text, '^[A-Z][a-z0-9]*([A-Z][a-z0-9]*)+$').Success) { - 'PascalCase' - } elseif ([regex]::Match($Text, '^[a-z][a-z0-9]*([A-Z][a-z0-9]*)+$').Success) { - 'camelCase' - } elseif ([regex]::Match($Text, '^[a-z][a-z0-9]*(-[a-z0-9]+)+$').Success) { - 'kebab-case' - } elseif ([regex]::Match($Text, '^[A-Z][A-Z0-9]*(-[A-Z0-9]+)+$').Success) { - 'UPPER-KEBAB-CASE' - } elseif ([regex]::Match($Text, '^[a-z][a-z0-9]*(_[a-z0-9]+)+$').Success) { - 'snake_case' - } elseif ([regex]::Match($Text, '^[A-Z][A-Z0-9]*(_[A-Z0-9]+)+$').Success) { - 'UPPER_SNAKE_CASE' - } else { - 'Unknown' - } - - Write-Debug "Detected casing style: [$style]" - $style - -} diff --git a/src/functions/private/Utilities/Casing/Split-StringByCasingStyle.ps1 b/src/functions/private/Utilities/Casing/Split-StringByCasingStyle.ps1 deleted file mode 100644 index bf2436ee4..000000000 --- a/src/functions/private/Utilities/Casing/Split-StringByCasingStyle.ps1 +++ /dev/null @@ -1,101 +0,0 @@ -filter Split-StringByCasingStyle { - <# - .SYNOPSIS - Splits a kebab-case string into an array of words - - .DESCRIPTION - This function splits a kebab-case string into an array of words. - - .EXAMPLE - Split-StringByCasingStyle -Text 'this-is-a-kebab-case-string' -By kebab-case - - this - is - a - kebab - case - string - - .EXAMPLE - Split-StringByCasingStyle -Text 'this_is_a_kebab_case_string' -By 'snake_case' - - this - is - a - kebab - case - string - - .EXAMPLE - Split-StringByCasingStyle -Text 'ThisIsAPascalCaseString' -By 'PascalCase' - - This - Is - A - Pascal - Case - String - - .EXAMPLE - Split-StringByCasingStyle -Text 'thisIsACamelCaseString' -By 'camelCase' - - this - Is - A - Camel - Case - String - - .EXAMPLE - Split-StringByCasingStyle -Text 'this_is_a-CamelCaseString' -By kebab-case | Split-StringByCasingStyle -By snake_case - - this_is_a - camelcasestring - - - #> - [OutputType([string[]])] - [CmdletBinding()] - param( - # The string to split - [Parameter( - Mandatory, - ValueFromPipeline - )] - [string] $Text, - - # The casing style to split the string by - [Parameter()] - [ValidateSet( - 'lowercase', - 'UPPERCASE', - 'Sentencecase', - 'Title Case', - 'PascalCase', - 'camelCase', - 'kebab-case', - 'UPPER-KEBAB-CASE', - 'snake_case', - 'UPPER_SNAKE_CASE' - )] - [string] $By - ) - - $styles = $PSBoundParameters | Where-Object { $_.Value -eq $true } | Select-Object -ExpandProperty Name - - Write-Debug "Splitting string [$Text] by casing style [$($styles -join ', ' )]" - $splitText = switch ($By) { - 'PascalCase' { [regex]::Matches($Text, '([A-Z][a-z]*)').Value; break } - 'camelCase' { [regex]::Matches($Text, '([A-Z][a-z]*)|^[a-z]+').Value; break } - 'kebab-case' { $Text -split '-'; break } - 'UPPER-KEBAB-CASE' { $Text -split '-'; break } - 'snake_case' { $Text -split '_'; break } - 'UPPER_SNAKE_CASE' { $Text -split '_'; break } - default { - $Text -split ' ' - } - } - - Write-Debug "Result: [$($splitText -join ', ')]" - $splitText -} diff --git a/src/functions/private/Utilities/Hashtable/ConvertTo-HashTable.ps1 b/src/functions/private/Utilities/Hashtable/ConvertTo-HashTable.ps1 index edcfa481b..b4479001c 100644 --- a/src/functions/private/Utilities/Hashtable/ConvertTo-HashTable.ps1 +++ b/src/functions/private/Utilities/Hashtable/ConvertTo-HashTable.ps1 @@ -1,4 +1,6 @@ -filter ConvertTo-HashTable { +#Requires -Modules @{ ModuleName = 'CasingStyle'; RequiredVersion = '1.0.2' } + +filter ConvertTo-HashTable { <# .SYNOPSIS Converts an object to a hashtable @@ -67,7 +69,7 @@ process { try { foreach ($item in $InputObject.PSObject.Properties) { - $name = if ($NameCasingStyle) { ($item.Name | Convert-StringCasingStyle -To $NameCasingStyle) } else { $item.Name } + $name = if ($NameCasingStyle) { ($item.Name | ConvertTo-CasingStyle -To $NameCasingStyle) } else { $item.Name } $hashtable[$name] = $item.Value } $hashtable diff --git a/src/functions/public/Actions/Get-GitHubEventData.ps1 b/src/functions/public/Actions/Get-GitHubEventData.ps1 index 3bce149bd..d057b864b 100644 --- a/src/functions/public/Actions/Get-GitHubEventData.ps1 +++ b/src/functions/public/Actions/Get-GitHubEventData.ps1 @@ -26,4 +26,3 @@ Write-Debug "[$stackPath] - End" } } - diff --git a/src/functions/public/Actions/Get-GitHubRunnerData.ps1 b/src/functions/public/Actions/Get-GitHubRunnerData.ps1 index af6cfbf9d..5a61023b5 100644 --- a/src/functions/public/Actions/Get-GitHubRunnerData.ps1 +++ b/src/functions/public/Actions/Get-GitHubRunnerData.ps1 @@ -26,4 +26,3 @@ Write-Debug "[$stackPath] - End" } } - diff --git a/src/functions/public/Apps/Get-GitHubAppJSONWebToken.ps1 b/src/functions/public/Apps/Get-GitHubAppJSONWebToken.ps1 index 60aa43ebe..b9057fee1 100644 --- a/src/functions/public/Apps/Get-GitHubAppJSONWebToken.ps1 +++ b/src/functions/public/Apps/Get-GitHubAppJSONWebToken.ps1 @@ -1,4 +1,4 @@ -function Get-GitHubAppJSONWebToken { +function Get-GitHubAppJSONWebToken { <# .SYNOPSIS Generates a JSON Web Token (JWT) for a GitHub App. diff --git a/src/functions/public/Apps/GitHub Apps/Get-GitHubApp.ps1 b/src/functions/public/Apps/GitHub Apps/Get-GitHubApp.ps1 index f77eb9b12..0e91cdf47 100644 --- a/src/functions/public/Apps/GitHub Apps/Get-GitHubApp.ps1 +++ b/src/functions/public/Apps/GitHub Apps/Get-GitHubApp.ps1 @@ -74,4 +74,3 @@ Write-Debug "[$stackPath] - End" } } - diff --git a/src/functions/public/Apps/Webhooks/Get-GitHubAppWebhookConfiguration.ps1 b/src/functions/public/Apps/Webhooks/Get-GitHubAppWebhookConfiguration.ps1 index 94c3b3f16..36a02d756 100644 --- a/src/functions/public/Apps/Webhooks/Get-GitHubAppWebhookConfiguration.ps1 +++ b/src/functions/public/Apps/Webhooks/Get-GitHubAppWebhookConfiguration.ps1 @@ -53,4 +53,3 @@ Write-Debug "[$stackPath] - End" } } - diff --git a/src/functions/public/Config/Get-GitHubConfig.ps1 b/src/functions/public/Config/Get-GitHubConfig.ps1 index 545c3aa94..42633f786 100644 --- a/src/functions/public/Config/Get-GitHubConfig.ps1 +++ b/src/functions/public/Config/Get-GitHubConfig.ps1 @@ -1,6 +1,4 @@ -#Requires -Modules @{ ModuleName = 'Context'; RequiredVersion = '6.0.0' } - -function Get-GitHubConfig { +function Get-GitHubConfig { <# .SYNOPSIS Get a GitHub module configuration. diff --git a/src/functions/public/Git/Get-GitHubGitConfig.ps1 b/src/functions/public/Git/Get-GitHubGitConfig.ps1 index af4babb61..3698f8b0d 100644 --- a/src/functions/public/Git/Get-GitHubGitConfig.ps1 +++ b/src/functions/public/Git/Get-GitHubGitConfig.ps1 @@ -54,9 +54,12 @@ $configList = $configList | Sort-Object $configList | ForEach-Object { + Write-Debug "CONFIG: $_" $name, $value = $_ -split '=', 2 + $name = ('' + $name).Trim() + $value = ('' + $value).Trim() $config += @{ - ($name.Trim()) = ($value.Trim()) + $name = $value } } $config diff --git a/src/functions/public/License/Get-GitHubLicense.ps1 b/src/functions/public/License/Get-GitHubLicense.ps1 index 7f5953a61..8ec620b6a 100644 --- a/src/functions/public/License/Get-GitHubLicense.ps1 +++ b/src/functions/public/License/Get-GitHubLicense.ps1 @@ -1,6 +1,4 @@ -#Requires -Modules @{ ModuleName = 'DynamicParams'; RequiredVersion = '1.1.8' } - -filter Get-GitHubLicense { +filter Get-GitHubLicense { <# .SYNOPSIS Get a license template, list of all popular license templates or a license for a repository diff --git a/src/functions/public/Users/Get-GitHubUser.ps1 b/src/functions/public/Users/Get-GitHubUser.ps1 index 6ce36be14..0744f87e4 100644 --- a/src/functions/public/Users/Get-GitHubUser.ps1 +++ b/src/functions/public/Users/Get-GitHubUser.ps1 @@ -87,7 +87,7 @@ $user } 'AllUsers' { - Get-GitHubAllUsers -Since $Since -PerPage $PerPage -Context $Context + Get-GitHubAllUser -Since $Since -PerPage $PerPage -Context $Context } } } catch {