Skip to content

Commit 6958451

Browse files
Update helper methods to grab appropriate default values from previous scope (#52)
* Updated `Resolve-ParameterWithDefaultConfigurationValue` and `Resolve-RepositoryElements` to grab `$PSBoundParameters` from the previous (calling) scope if not provided. * Updated `Write-InvocationLog` to grab `$MyInvocation` from the previous (calling) scope if not explicitly provided. In all cases, this will simpliy the standard calling pattern for these functions.
1 parent 6cc2950 commit 6958451

15 files changed

+103
-99
lines changed

GitHubAnalytics.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ function Group-GitHubIssue
5555
[string] $DateType = 'created'
5656
)
5757

58-
Write-InvocationLog -Invocation $MyInvocation
58+
Write-InvocationLog
5959

6060
if ($PSCmdlet.ParameterSetName -eq 'Weekly')
6161
{
@@ -148,7 +148,7 @@ function Group-GitHubPullRequest
148148
[string] $DateType = 'created'
149149
)
150150

151-
Write-InvocationLog -Invocation $MyInvocation
151+
Write-InvocationLog
152152

153153
if ($PSCmdlet.ParameterSetName -eq 'Weekly')
154154
{

GitHubBranches.ps1

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ function Get-GitHubRepositoryBranch
7777
[switch] $NoStatus
7878
)
7979

80-
Write-InvocationLog -Invocation $MyInvocation
80+
Write-InvocationLog
8181

82-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
82+
$elements = Resolve-RepositoryElements
8383
$OwnerName = $elements.ownerName
8484
$RepositoryName = $elements.repositoryName
8585

@@ -100,7 +100,7 @@ function Get-GitHubRepositoryBranch
100100
'AccessToken' = $AccessToken
101101
'TelemetryEventName' = $MyInvocation.MyCommand.Name
102102
'TelemetryProperties' = $telemetryProperties
103-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
103+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
104104
}
105105

106106
return Invoke-GHRestMethodMultipleResult @params

GitHubConfiguration.ps1

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -711,6 +711,8 @@ function Resolve-ParameterWithDefaultConfigurationValue
711711
712712
.PARAMETER BoundParameters
713713
The inbound parameters from the calling method.
714+
No need to explicitly provide this if you're using the PSBoundParameters from the
715+
function that is calling this directly.
714716
715717
.PARAMETER Name
716718
The name of the parameter in BoundParameters.
@@ -732,8 +734,7 @@ function Resolve-ParameterWithDefaultConfigurationValue
732734
[CmdletBinding(SupportsShouldProcess)]
733735
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSShouldProcess", "", Justification="Methods called within here make use of PSShouldProcess, and the switch is passed on to them inherently.")]
734736
param(
735-
[Parameter(Mandatory)]
736-
$BoundParameters,
737+
$BoundParameters = (Get-Variable -Name PSBoundParameters -Scope 1 -ValueOnly),
737738

738739
[Parameter(Mandatory)]
739740
[string] $Name,
@@ -830,7 +831,7 @@ function Set-GitHubAuthentication
830831
[switch] $SessionOnly
831832
)
832833

833-
Write-InvocationLog -Invocation $MyInvocation
834+
Write-InvocationLog
834835

835836
if (-not $PSBoundParameters.ContainsKey('Credential'))
836837
{
@@ -891,7 +892,7 @@ function Clear-GitHubAuthentication
891892
[switch] $SessionOnly
892893
)
893894

894-
Write-InvocationLog -Invocation $MyInvocation
895+
Write-InvocationLog
895896

896897
Set-TelemetryEvent -EventName Clear-GitHubAuthentication
897898

GitHubCore.ps1

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ function Invoke-GHRestMethod
175175
Write-Log -Message $Description -Level Verbose
176176
Write-Log -Message "Accessing [$Method] $url [Timeout = $(Get-GitHubConfiguration -Name WebRequestTimeoutSec))]" -Level Verbose
177177

178-
$NoStatus = Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus
178+
$NoStatus = Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus
179179
if ($NoStatus)
180180
{
181181
if ($PSCmdlet.ShouldProcess($url, "Invoke-WebRequest"))
@@ -624,7 +624,7 @@ function Invoke-GHRestMethodMultipleResult
624624
'AccessToken' = $AccessToken
625625
'TelemetryProperties' = $telemetryProperties
626626
'TelemetryExceptionBucket' = $errorBucket
627-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
627+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
628628
}
629629

630630
$result = Invoke-GHRestMethod @params
@@ -743,6 +743,8 @@ function Resolve-RepositoryElements
743743
.PARAMETER BoundParameters
744744
The inbound parameters from the calling method.
745745
This is expecting values that may include 'Uri', 'OwnerName' and 'RepositoryName'
746+
No need to explicitly provide this if you're using the PSBoundParameters from the
747+
function that is calling this directly.
746748
747749
.PARAMETER DisableValidation
748750
By default, this function ensures that it returns with all elements provided,
@@ -758,8 +760,7 @@ function Resolve-RepositoryElements
758760
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Justification="This was the most accurate name that I could come up with. Internal only anyway.")]
759761
param
760762
(
761-
[Parameter(Mandatory)]
762-
$BoundParameters,
763+
$BoundParameters = (Get-Variable -Name PSBoundParameters -Scope 1 -ValueOnly),
763764

764765
[switch] $DisableValidation
765766
)

GitHubIssues.ps1

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,9 @@ function Get-GitHubIssue
167167
[switch] $NoStatus
168168
)
169169

170-
Write-InvocationLog -Invocation $MyInvocation
170+
Write-InvocationLog
171171

172-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters -DisableValidation
172+
$elements = Resolve-RepositoryElements -DisableValidation
173173
$OwnerName = $elements.ownerName
174174
$RepositoryName = $elements.repositoryName
175175

@@ -303,7 +303,7 @@ function Get-GitHubIssue
303303
'AccessToken' = $AccessToken
304304
'TelemetryEventName' = $MyInvocation.MyCommand.Name
305305
'TelemetryProperties' = $telemetryProperties
306-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
306+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
307307
}
308308

309309
$result = Invoke-GHRestMethodMultipleResult @params
@@ -383,9 +383,9 @@ function Get-GitHubIssueTimeline
383383
[switch] $NoStatus
384384
)
385385

386-
Write-InvocationLog -Invocation $MyInvocation
386+
Write-InvocationLog
387387

388-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
388+
$elements = Resolve-RepositoryElements
389389
$OwnerName = $elements.ownerName
390390
$RepositoryName = $elements.repositoryName
391391

@@ -401,7 +401,7 @@ function Get-GitHubIssueTimeline
401401
'AccessToken' = $AccessToken
402402
'TelemetryEventName' = $MyInvocation.MyCommand.Name
403403
'TelemetryProperties' = $telemetryProperties
404-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
404+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
405405
}
406406

407407
return Invoke-GHRestMethodMultipleResult @params
@@ -492,9 +492,9 @@ function New-GitHubIssue
492492
[switch] $NoStatus
493493
)
494494

495-
Write-InvocationLog -Invocation $MyInvocation
495+
Write-InvocationLog
496496

497-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
497+
$elements = Resolve-RepositoryElements
498498
$OwnerName = $elements.ownerName
499499
$RepositoryName = $elements.repositoryName
500500

@@ -521,7 +521,7 @@ function New-GitHubIssue
521521
'AccessToken' = $AccessToken
522522
'TelemetryEventName' = $MyInvocation.MyCommand.Name
523523
'TelemetryProperties' = $telemetryProperties
524-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
524+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
525525
}
526526

527527
return Invoke-GHRestMethod @params
@@ -625,9 +625,9 @@ function Update-GitHubIssue
625625
[switch] $NoStatus
626626
)
627627

628-
Write-InvocationLog -Invocation $MyInvocation
628+
Write-InvocationLog
629629

630-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
630+
$elements = Resolve-RepositoryElements
631631
$OwnerName = $elements.ownerName
632632
$RepositoryName = $elements.repositoryName
633633

@@ -661,7 +661,7 @@ function Update-GitHubIssue
661661
'AccessToken' = $AccessToken
662662
'TelemetryEventName' = $MyInvocation.MyCommand.Name
663663
'TelemetryProperties' = $telemetryProperties
664-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
664+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
665665
}
666666

667667
return Invoke-GHRestMethod @params
@@ -737,9 +737,9 @@ function Lock-GitHubIssue
737737
[switch] $NoStatus
738738
)
739739

740-
Write-InvocationLog -Invocation $MyInvocation
740+
Write-InvocationLog
741741

742-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
742+
$elements = Resolve-RepositoryElements
743743
$OwnerName = $elements.ownerName
744744
$RepositoryName = $elements.repositoryName
745745

@@ -767,7 +767,7 @@ function Lock-GitHubIssue
767767
'AccessToken' = $AccessToken
768768
'TelemetryEventName' = $MyInvocation.MyCommand.Name
769769
'TelemetryProperties' = $telemetryProperties
770-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
770+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
771771
}
772772

773773
return Invoke-GHRestMethod @params
@@ -837,9 +837,9 @@ param(
837837
[switch] $NoStatus
838838
)
839839

840-
Write-InvocationLog -Invocation $MyInvocation
840+
Write-InvocationLog
841841

842-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
842+
$elements = Resolve-RepositoryElements
843843
$OwnerName = $elements.ownerName
844844
$RepositoryName = $elements.repositoryName
845845

@@ -856,7 +856,7 @@ $params = @{
856856
'AccessToken' = $AccessToken
857857
'TelemetryEventName' = $MyInvocation.MyCommand.Name
858858
'TelemetryProperties' = $telemetryProperties
859-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
859+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
860860
}
861861

862862
return Invoke-GHRestMethod @params

GitHubLabels.ps1

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ function Get-GitHubLabel
7474
[switch] $NoStatus
7575
)
7676

77-
Write-InvocationLog -Invocation $MyInvocation
77+
Write-InvocationLog
7878

79-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
79+
$elements = Resolve-RepositoryElements
8080
$OwnerName = $elements.ownerName
8181
$RepositoryName = $elements.repositoryName
8282

@@ -92,7 +92,7 @@ function Get-GitHubLabel
9292
'AccessToken' = $AccessToken
9393
'TelemetryEventName' = $MyInvocation.MyCommand.Name
9494
'TelemetryProperties' = $telemetryProperties
95-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
95+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
9696
}
9797

9898
if (-not [String]::IsNullOrWhiteSpace($Name))
@@ -184,9 +184,9 @@ function New-GitHubLabel
184184
[switch] $NoStatus
185185
)
186186

187-
Write-InvocationLog -Invocation $MyInvocation
187+
Write-InvocationLog
188188

189-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
189+
$elements = Resolve-RepositoryElements
190190
$OwnerName = $elements.ownerName
191191
$RepositoryName = $elements.repositoryName
192192

@@ -217,7 +217,7 @@ function New-GitHubLabel
217217
'AccessToken' = $AccessToken
218218
'TelemetryEventName' = $MyInvocation.MyCommand.Name
219219
'TelemetryProperties' = $telemetryProperties
220-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
220+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
221221
}
222222

223223
return Invoke-GHRestMethod @params
@@ -292,9 +292,9 @@ function Remove-GitHubLabel
292292
[switch] $NoStatus
293293
)
294294

295-
Write-InvocationLog -Invocation $MyInvocation
295+
Write-InvocationLog
296296

297-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
297+
$elements = Resolve-RepositoryElements
298298
$OwnerName = $elements.ownerName
299299
$RepositoryName = $elements.repositoryName
300300

@@ -311,7 +311,7 @@ function Remove-GitHubLabel
311311
'AccessToken' = $AccessToken
312312
'TelemetryEventName' = $MyInvocation.MyCommand.Name
313313
'TelemetryProperties' = $telemetryProperties
314-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
314+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
315315
}
316316

317317
return Invoke-GHRestMethod @params
@@ -407,9 +407,9 @@ function Update-GitHubLabel
407407
[switch] $NoStatus
408408
)
409409

410-
Write-InvocationLog -Invocation $MyInvocation
410+
Write-InvocationLog
411411

412-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
412+
$elements = Resolve-RepositoryElements
413413
$OwnerName = $elements.ownerName
414414
$RepositoryName = $elements.repositoryName
415415

@@ -432,7 +432,7 @@ function Update-GitHubLabel
432432
'AccessToken' = $AccessToken
433433
'TelemetryEventName' = $MyInvocation.MyCommand.Name
434434
'TelemetryProperties' = $telemetryProperties
435-
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus)
435+
'NoStatus' = (Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus)
436436
}
437437

438438
return Invoke-GHRestMethod @params
@@ -524,11 +524,11 @@ function Set-GitHubLabel
524524
$Label = $script:defaultGitHubLabels
525525
}
526526

527-
$elements = Resolve-RepositoryElements -BoundParameters $PSBoundParameters
527+
$elements = Resolve-RepositoryElements
528528
$OwnerName = $elements.ownerName
529529
$RepositoryName = $elements.repositoryName
530530

531-
$NoStatus = Resolve-ParameterWithDefaultConfigurationValue -BoundParameters $PSBoundParameters -Name NoStatus -ConfigValueName DefaultNoStatus
531+
$NoStatus = Resolve-ParameterWithDefaultConfigurationValue -Name NoStatus -ConfigValueName DefaultNoStatus
532532

533533
$commonParams = @{
534534
'OwnerName' = $OwnerName

0 commit comments

Comments
 (0)