From 307001fe5e287dd691129a4efaf929128e7d8f3b Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 15:15:45 +0100 Subject: [PATCH 01/10] Integrate store module --- src/GitHub/GitHub.ps1 | 4 +- src/GitHub/data/Config.psd1 | 5 + src/GitHub/data/SecretVault.psd1 | 5 - .../private/Config/Initialize-SecretVault.ps1 | 74 ---------- src/GitHub/public/Config/Get-GitHubConfig.ps1 | 25 +--- src/GitHub/public/Config/Set-GitHubConfig.ps1 | 129 ++++-------------- 6 files changed, 41 insertions(+), 201 deletions(-) create mode 100644 src/GitHub/data/Config.psd1 delete mode 100644 src/GitHub/data/SecretVault.psd1 delete mode 100644 src/GitHub/private/Config/Initialize-SecretVault.ps1 diff --git a/src/GitHub/GitHub.ps1 b/src/GitHub/GitHub.ps1 index 79c1d6ddf..babae939b 100644 --- a/src/GitHub/GitHub.ps1 +++ b/src/GitHub/GitHub.ps1 @@ -1,8 +1,8 @@ $scriptFilePath = $MyInvocation.MyCommand.Path -Write-Verbose "[$scriptFilePath] - Initializing GitHub module..." +Write-Verbose "[$scriptFilePath] - Initializing GitHub PowerShell module..." -Initialize-SecretVault -Name $script:SecretVault.Name -Type $script:SecretVault.Type +Initialize-Store -Name 'GitHubPowerShell' -SecretVaultName $script:Config.Name -SecretVaultType $script:Config.Type # Autologon if a token is present in environment variables $envVar = Get-ChildItem -Path 'Env:' | Where-Object Name -In 'GH_TOKEN', 'GITHUB_TOKEN' | Select-Object -First 1 diff --git a/src/GitHub/data/Config.psd1 b/src/GitHub/data/Config.psd1 new file mode 100644 index 000000000..fdb54946e --- /dev/null +++ b/src/GitHub/data/Config.psd1 @@ -0,0 +1,5 @@ +@{ + Name = 'SecretStore' # $script:Config.Name + Type = 'Microsoft.PowerShell.SecretStore' # $script:Config.Type + Prefix = 'GHPS' # $script:Config.Prefix +} diff --git a/src/GitHub/data/SecretVault.psd1 b/src/GitHub/data/SecretVault.psd1 deleted file mode 100644 index 6a669c66a..000000000 --- a/src/GitHub/data/SecretVault.psd1 +++ /dev/null @@ -1,5 +0,0 @@ -@{ - Name = 'SecretStore' # $script:SecretVault.Name - Type = 'Microsoft.PowerShell.SecretStore' # $script:SecretVault.Type - Prefix = 'GHPS_' # $script:SecretVault.Prefix -} diff --git a/src/GitHub/private/Config/Initialize-SecretVault.ps1 b/src/GitHub/private/Config/Initialize-SecretVault.ps1 deleted file mode 100644 index e39dd3d90..000000000 --- a/src/GitHub/private/Config/Initialize-SecretVault.ps1 +++ /dev/null @@ -1,74 +0,0 @@ -#Requires -Version 7.0 -#Requires -Modules Microsoft.PowerShell.SecretManagement -#Requires -Modules Microsoft.PowerShell.SecretStore - -function Initialize-SecretVault { - <# - .SYNOPSIS - Initialize a secret vault. - - .DESCRIPTION - Initialize a secret vault. If the vault does not exist, it will be created. - - .EXAMPLE - Initialize-SecretVault -Name 'SecretStore' -Type 'Microsoft.PowerShell.SecretStore' - - Initializes a secret vault named 'SecretStore' using the 'Microsoft.PowerShell.SecretStore' module. - - .NOTES - For more information about secret vaults, see - https://learn.microsoft.com/en-us/powershell/utility-modules/secretmanagement/overview?view=ps-modules - #> - [OutputType([void])] - [CmdletBinding()] - param ( - # The name of the secret vault. - [Parameter()] - [string] $Name = 'SecretStore', - - # The type of the secret vault. - [Parameter()] - [Alias('ModuleName')] - [string] $Type = 'Microsoft.PowerShell.SecretStore' - ) - - $functionName = $MyInvocation.MyCommand.Name - - $vault = Get-SecretVault | Where-Object { $_.ModuleName -eq $Type } - if (-not $vault) { - Write-Verbose "[$functionName] - [$Type] - Registering" - - switch ($Type) { - 'Microsoft.PowerShell.SecretStore' { - $vaultParameters = @{ - Authentication = 'None' - PasswordTimeout = -1 - Interaction = 'None' - Scope = 'CurrentUser' - WarningAction = 'SilentlyContinue' - Confirm = $false - Force = $true - } - Reset-SecretStore @vaultParameters - } - } - Write-Verbose "[$functionName] - [$Type] - Done" - } else { - Write-Verbose "[$functionName] - [$Type] - already registered" - } - - $secretStore = Get-SecretVault | Where-Object { $_.Name -eq $Name } - if (-not $secretStore) { - Write-Verbose "[$functionName] - [$Name] - Registering" - $secretVault = @{ - Name = $Name - ModuleName = $Type - DefaultVault = $true - Description = 'SecretStore' - } - Register-SecretVault @secretVault - Write-Verbose "[$functionName] - [$Name] - Done" - } else { - Write-Verbose "[$functionName] - [$Name] - already registered" - } -} diff --git a/src/GitHub/public/Config/Get-GitHubConfig.ps1 b/src/GitHub/public/Config/Get-GitHubConfig.ps1 index ecb5394cc..37ee203cd 100644 --- a/src/GitHub/public/Config/Get-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Get-GitHubConfig.ps1 @@ -1,4 +1,6 @@ -function Get-GitHubConfig { +#Requires -Modules Store + +function Get-GitHubConfig { <# .SYNOPSIS Get configuration value. @@ -40,28 +42,13 @@ switch ($Name) { 'AccessToken' { - Get-Secret -Name "$prefix`AccessToken" + Get-StoreConfig -Name "$prefix`AccessToken" } 'RefreshToken' { - Get-Secret -Name "$prefix`RefreshToken" + Get-StoreConfig -Name "$prefix`RefreshToken" } default { - $RefreshTokenSecretInfo = Get-SecretInfo -Name "$prefix`RefreshToken" - if ($null -ne $RefreshTokenSecretInfo.Metadata) { - $RefreshTokenMetadata = $RefreshTokenSecretInfo.Metadata | ConvertFrom-HashTable | ConvertTo-HashTable - } - - $AccessTokenSecretInfo = Get-SecretInfo -Name "$prefix`AccessToken" - if ($null -ne $AccessTokenSecretInfo.Metadata) { - $AccessTokenMetadata = $AccessTokenSecretInfo.Metadata | ConvertFrom-HashTable | ConvertTo-HashTable - } - $metadata = Join-Object -Main $RefreshTokenMetadata -Overrides $AccessTokenMetadata -AsHashtable - - if ($Name) { - $metadata.$Name - } else { - $metadata.GetEnumerator() | Sort-Object -Property Name - } + Get-StoreConfig -Name $Name } } } diff --git a/src/GitHub/public/Config/Set-GitHubConfig.ps1 b/src/GitHub/public/Config/Set-GitHubConfig.ps1 index ba389cd65..ef2eee9c9 100644 --- a/src/GitHub/public/Config/Set-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Set-GitHubConfig.ps1 @@ -1,4 +1,6 @@ -function Set-GitHubConfig { +#Requires -Modules Store + +function Set-GitHubConfig { <# .SYNOPSIS Set the GitHub configuration. @@ -72,108 +74,33 @@ [string] $UserName ) - $prefix = $script:SecretVault.Prefix - - #region AccessToken - $secretName = "$prefix`AccessToken" - $removeKeys = 'AccessToken', 'RefreshToken', 'RefreshTokenExpirationDate' - $keepTypes = 'String', 'Int', 'DateTime' - - # Get existing metadata if it exists - $newSecretMetadata = @{} - if (Get-SecretInfo -Name $secretName) { - $secretGetInfoParam = @{ - Name = $secretName - Vault = $script:SecretVault.Name - } - $secretInfo = Get-SecretInfo @secretGetInfoParam - Write-Verbose "$secretName - secretInfo : $($secretInfo | Out-String)" - $secretMetadata = $secretInfo.Metadata | ConvertFrom-HashTable | ConvertTo-HashTable - $newSecretMetadata = Join-Object -Main $newSecretMetadata -Overrides $secretMetadata -AsHashtable - } - - # Get metadata updates from parameters and clean up unwanted data - $updateSecretMetadata = $PSBoundParameters | ConvertFrom-HashTable | ConvertTo-HashTable - Write-Verbose "updateSecretMetadata : $($updateSecretMetadata | Out-String)" - Write-Verbose "updateSecretMetadataType : $($updateSecretMetadata.GetType())" - Remove-HashtableEntry -Hashtable $updateSecretMetadata -KeepTypes $keepTypes -RemoveNames $removeKeys - Write-Verbose "updateSecretMetadata : $($updateSecretMetadata | Out-String)" - - $newSecretMetadata = Join-Object -Main $newSecretMetadata -Overrides $updateSecretMetadata -AsHashtable - Write-Verbose "newSecretMetadata : $($newSecretMetadata | Out-String)" - Write-Verbose "newSecretMetadataType : $($newSecretMetadata.GetType())" - - if ($AccessToken) { - $accessTokenSetParam = @{ - Name = $secretName - Vault = $script:SecretVault.Name - SecureStringSecret = $AccessToken - } - if ($PSCmdlet.ShouldProcess("secret [$secretName] in secret vault [$($script:SecretVault.Name)]", 'Set')) { - Set-Secret @accessTokenSetParam - } + $prefix = $script:Config.Prefix + + $Settings = @{ + AccessToken = $AccessToken + AccessTokenExpirationDate = $AccessTokenExpirationDate + AccessTokenType = $AccessTokenType + ApiBaseUri = $ApiBaseUri + ApiVersion = $ApiVersion + AuthType = $AuthType + DeviceFlowType = $DeviceFlowType + Owner = $Owner + RefreshToken = $RefreshToken + RefreshTokenExpirationDate = $RefreshTokenExpirationDate + Repo = $Repo + Scope = $Scope + UserName = $UserName } - if (Get-SecretInfo -Name $secretName) { - $secretSetInfoParam = @{ - Name = $secretName - Vault = $script:SecretVault.Name - Metadata = $newSecretMetadata - } - if ($PSCmdlet.ShouldProcess("secret [$secretName] in secret vault [$($script:SecretVault.Name)]", 'Set')) { - Set-SecretInfo @secretSetInfoParam - } - } - #endregion AccessToken - - #region RefreshToken - $secretName = "$prefix`RefreshToken" - $removeKeys = 'AccessToken', 'RefreshToken', 'AccessTokenExpirationDate' - - # Get existing metadata if it exists - $newSecretMetadata = @{} - if (Get-SecretInfo -Name $secretName) { - $secretGetInfoParam = @{ - Name = $secretName - Vault = $script:SecretVault.Name - } - $secretInfo = Get-SecretInfo @secretGetInfoParam - Write-Verbose "$secretName - secretInfo : $($secretInfo | Out-String)" - $secretMetadata = $secretInfo.Metadata | ConvertFrom-HashTable | ConvertTo-HashTable - $newSecretMetadata = Join-Object -Main $newSecretMetadata -Overrides $secretMetadata -AsHashtable - } - - # Get metadata updates from parameters and clean up unwanted data - $updateSecretMetadata = $PSBoundParameters | ConvertFrom-HashTable | ConvertTo-HashTable - Write-Verbose "updateSecretMetadata : $($updateSecretMetadata | Out-String)" - Write-Verbose "updateSecretMetadataType : $($updateSecretMetadata.GetType())" - Remove-HashtableEntry -Hashtable $updateSecretMetadata -KeepTypes $keepTypes -RemoveNames $removeKeys - Write-Verbose "updateSecretMetadata : $($updateSecretMetadata | Out-String)" - - $newSecretMetadata = Join-Object -Main $newSecretMetadata -Overrides $updateSecretMetadata -AsHashtable - Write-Verbose "newSecretMetadata : $($newSecretMetadata | Out-String)" - Write-Verbose "newSecretMetadataType : $($newSecretMetadata.GetType())" - - if ($RefreshToken) { - $refreshTokenSetParam = @{ - Name = $secretName - Vault = $script:SecretVault.Name - SecureStringSecret = $RefreshToken - } - if ($PSCmdlet.ShouldProcess("secret [$secretName] in secret vault [$($script:SecretVault.Name)]", 'Set')) { - Set-Secret @refreshTokenSetParam - } - } - - if (Get-SecretInfo -Name $secretName) { - $secretSetInfoParam = @{ - Name = $secretName - Vault = $script:SecretVault.Name - Metadata = $newSecretMetadata - } - if ($PSCmdlet.ShouldProcess("secret [$secretName] in secret vault [$($script:SecretVault.Name)]", 'Set')) { - Set-SecretInfo @secretSetInfoParam + foreach ($key in $Settings.Keys) { + if ($null -ne $Settings[$key]) { + if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $Settings[$key]")) { + if ($key -eq 'AccessToken' -or $key -eq 'RefreshToken') { + Set-StoreConfig -Name "$prefix`$key" -Value $Settings[$key] + } else { + Set-StoreConfig -Name $key -Value $Settings[$key] + } + } } } - #endregion AccessToken } From 9f599b07c3d6cc35b63bd24803d8d78ab4872956 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 15:33:42 +0100 Subject: [PATCH 02/10] Fix storing stuff --- src/GitHub/public/Config/Get-GitHubConfig.ps1 | 9 +++------ src/GitHub/public/Config/Set-GitHubConfig.ps1 | 10 +++------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/src/GitHub/public/Config/Get-GitHubConfig.ps1 b/src/GitHub/public/Config/Get-GitHubConfig.ps1 index 37ee203cd..f5c61f03b 100644 --- a/src/GitHub/public/Config/Get-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Get-GitHubConfig.ps1 @@ -40,12 +40,9 @@ function Get-GitHubConfig { $prefix = $script:SecretVault.Prefix - switch ($Name) { - 'AccessToken' { - Get-StoreConfig -Name "$prefix`AccessToken" - } - 'RefreshToken' { - Get-StoreConfig -Name "$prefix`RefreshToken" + switch -Regex ($Name) { + 'AccessToken|RefreshToken' { + Get-StoreConfig -Name "$prefix$Name" } default { Get-StoreConfig -Name $Name diff --git a/src/GitHub/public/Config/Set-GitHubConfig.ps1 b/src/GitHub/public/Config/Set-GitHubConfig.ps1 index ef2eee9c9..9ab254874 100644 --- a/src/GitHub/public/Config/Set-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Set-GitHubConfig.ps1 @@ -77,7 +77,7 @@ function Set-GitHubConfig { $prefix = $script:Config.Prefix $Settings = @{ - AccessToken = $AccessToken + "$prefix`AccessToken" = $AccessToken AccessTokenExpirationDate = $AccessTokenExpirationDate AccessTokenType = $AccessTokenType ApiBaseUri = $ApiBaseUri @@ -85,7 +85,7 @@ function Set-GitHubConfig { AuthType = $AuthType DeviceFlowType = $DeviceFlowType Owner = $Owner - RefreshToken = $RefreshToken + "$prefix`RefreshToken" = $RefreshToken RefreshTokenExpirationDate = $RefreshTokenExpirationDate Repo = $Repo Scope = $Scope @@ -95,11 +95,7 @@ function Set-GitHubConfig { foreach ($key in $Settings.Keys) { if ($null -ne $Settings[$key]) { if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $Settings[$key]")) { - if ($key -eq 'AccessToken' -or $key -eq 'RefreshToken') { - Set-StoreConfig -Name "$prefix`$key" -Value $Settings[$key] - } else { - Set-StoreConfig -Name $key -Value $Settings[$key] - } + Set-StoreConfig -Name $key -Value $Settings[$key] } } } From e74d931126355c290d9a6234dbc2b57664f6e18f Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 15:35:11 +0100 Subject: [PATCH 03/10] Add specifics on regex --- src/GitHub/public/Config/Get-GitHubConfig.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GitHub/public/Config/Get-GitHubConfig.ps1 b/src/GitHub/public/Config/Get-GitHubConfig.ps1 index f5c61f03b..eb3065ef5 100644 --- a/src/GitHub/public/Config/Get-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Get-GitHubConfig.ps1 @@ -41,7 +41,7 @@ function Get-GitHubConfig { $prefix = $script:SecretVault.Prefix switch -Regex ($Name) { - 'AccessToken|RefreshToken' { + '^AccessToken$|^RefreshToken$' { Get-StoreConfig -Name "$prefix$Name" } default { From 82cf77da1f4d386d7a35cfa6d6ce3efc5413f2ff Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 15:47:39 +0100 Subject: [PATCH 04/10] Skip tests --- .github/workflows/Process-PSModule.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index b14321be4..2ace30fd5 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -24,3 +24,5 @@ jobs: Process-PSModule: uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v1 secrets: inherit + with: + SkipTests: true From 03812484b4cd2c1e10cd06c1a0d52abf59fd832e Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 15:54:44 +0100 Subject: [PATCH 05/10] Fix loading issue --- .github/workflows/Process-PSModule.yml | 2 -- src/GitHub/public/Config/Get-GitHubConfig.ps1 | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index 2ace30fd5..b14321be4 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -24,5 +24,3 @@ jobs: Process-PSModule: uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v1 secrets: inherit - with: - SkipTests: true diff --git a/src/GitHub/public/Config/Get-GitHubConfig.ps1 b/src/GitHub/public/Config/Get-GitHubConfig.ps1 index eb3065ef5..5c920e853 100644 --- a/src/GitHub/public/Config/Get-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Get-GitHubConfig.ps1 @@ -38,7 +38,7 @@ function Get-GitHubConfig { [string] $Name ) - $prefix = $script:SecretVault.Prefix + $prefix = $script:Config.Prefix switch -Regex ($Name) { '^AccessToken$|^RefreshToken$' { From faf0bbf8faf295a29e9e799cb3321a1b1377c3b8 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 16:17:11 +0100 Subject: [PATCH 06/10] Push to shove --- .github/workflows/Process-PSModule.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index b14321be4..2ace30fd5 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -24,3 +24,5 @@ jobs: Process-PSModule: uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v1 secrets: inherit + with: + SkipTests: true From ca85505dc29a86c2215279505be21dcf5a31c336 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 16:30:49 +0100 Subject: [PATCH 07/10] Test --- .github/workflows/Process-PSModule.yml | 2 -- src/GitHub/public/Config/Set-GitHubConfig.ps1 | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/Process-PSModule.yml b/.github/workflows/Process-PSModule.yml index 2ace30fd5..b14321be4 100644 --- a/.github/workflows/Process-PSModule.yml +++ b/.github/workflows/Process-PSModule.yml @@ -24,5 +24,3 @@ jobs: Process-PSModule: uses: PSModule/Process-PSModule/.github/workflows/workflow.yml@v1 secrets: inherit - with: - SkipTests: true diff --git a/src/GitHub/public/Config/Set-GitHubConfig.ps1 b/src/GitHub/public/Config/Set-GitHubConfig.ps1 index 9ab254874..11ffdf672 100644 --- a/src/GitHub/public/Config/Set-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Set-GitHubConfig.ps1 @@ -93,7 +93,7 @@ function Set-GitHubConfig { } foreach ($key in $Settings.Keys) { - if ($null -ne $Settings[$key]) { + if (($null -ne $Settings[$key]) -or (-not [string]::IsNullOrEmpty($Settings[$key]))) { if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $Settings[$key]")) { Set-StoreConfig -Name $key -Value $Settings[$key] } From 032e2260c27893ff9d60f1538367d01b97ed8b1c Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 16:34:15 +0100 Subject: [PATCH 08/10] test --- src/GitHub/public/Config/Set-GitHubConfig.ps1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/GitHub/public/Config/Set-GitHubConfig.ps1 b/src/GitHub/public/Config/Set-GitHubConfig.ps1 index 11ffdf672..343b24f20 100644 --- a/src/GitHub/public/Config/Set-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Set-GitHubConfig.ps1 @@ -94,7 +94,8 @@ function Set-GitHubConfig { foreach ($key in $Settings.Keys) { if (($null -ne $Settings[$key]) -or (-not [string]::IsNullOrEmpty($Settings[$key]))) { - if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $Settings[$key]")) { + if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $($Settings[$key])")) { + Write-Verbose "Setting $key to $($Settings[$key])" Set-StoreConfig -Name $key -Value $Settings[$key] } } From a9235ff5f72a56ba718e3dc80d7b385f4d885f2e Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 16:44:05 +0100 Subject: [PATCH 09/10] test --- src/GitHub/public/Config/Set-GitHubConfig.ps1 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/GitHub/public/Config/Set-GitHubConfig.ps1 b/src/GitHub/public/Config/Set-GitHubConfig.ps1 index 343b24f20..d862a2f53 100644 --- a/src/GitHub/public/Config/Set-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Set-GitHubConfig.ps1 @@ -92,12 +92,12 @@ function Set-GitHubConfig { UserName = $UserName } + $Settings | Remove-HashtableEntry -NullOrEmptyValues + foreach ($key in $Settings.Keys) { - if (($null -ne $Settings[$key]) -or (-not [string]::IsNullOrEmpty($Settings[$key]))) { - if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $($Settings[$key])")) { - Write-Verbose "Setting $key to $($Settings[$key])" - Set-StoreConfig -Name $key -Value $Settings[$key] - } + if ($PSCmdlet.ShouldProcess("Setting $key", "Setting $key to $($Settings[$key])")) { + Write-Verbose "Setting $key to $($Settings[$key])" + Set-StoreConfig -Name $key -Value $Settings[$key] } } } From 216aa1ad5fd3a7710ac0c1e4a003a2c05e863f79 Mon Sep 17 00:00:00 2001 From: Marius Storhaug Date: Sun, 17 Mar 2024 16:56:18 +0100 Subject: [PATCH 10/10] Fix interface for SecretVaultType and Name --- src/GitHub/public/Config/Get-GitHubConfig.ps1 | 2 ++ src/GitHub/public/Config/Set-GitHubConfig.ps1 | 10 ++++++++++ 2 files changed, 12 insertions(+) diff --git a/src/GitHub/public/Config/Get-GitHubConfig.ps1 b/src/GitHub/public/Config/Get-GitHubConfig.ps1 index 5c920e853..c4f40cfd4 100644 --- a/src/GitHub/public/Config/Get-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Get-GitHubConfig.ps1 @@ -32,6 +32,8 @@ function Get-GitHubConfig { 'RefreshToken', 'RefreshTokenExpirationDate', 'Repo', + 'SecretVaultName', + 'SecretVaultType', 'Scope', 'UserName' )] diff --git a/src/GitHub/public/Config/Set-GitHubConfig.ps1 b/src/GitHub/public/Config/Set-GitHubConfig.ps1 index d862a2f53..b8cb3e567 100644 --- a/src/GitHub/public/Config/Set-GitHubConfig.ps1 +++ b/src/GitHub/public/Config/Set-GitHubConfig.ps1 @@ -65,6 +65,14 @@ function Set-GitHubConfig { [Parameter()] [string] $Repo, + # Set the secret vault name. + [Parameter()] + [string] $SecretVaultName, + + # Set the secret vault type. + [Parameter()] + [string] $SecretVaultType, + # Set the scope. [Parameter()] [string] $Scope, @@ -88,6 +96,8 @@ function Set-GitHubConfig { "$prefix`RefreshToken" = $RefreshToken RefreshTokenExpirationDate = $RefreshTokenExpirationDate Repo = $Repo + SecretVaultName = $SecretVaultName + SecretVaultType = $SecretVaultType Scope = $Scope UserName = $UserName }