Skip to content

Commit 254394e

Browse files
[+] Added support for supplying raw textual data instead of key path
1 parent a45b5d5 commit 254394e

2 files changed

Lines changed: 28 additions & 7 deletions

File tree

PSGithub/Public/Get-GithubToken.ps1

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,33 @@ General notes
2323
function Get-GithubToken {
2424
[CmdletBinding()]
2525
param(
26-
[Parameter(Mandatory)]
26+
[Parameter(Mandatory, ParameterSetName = "Data")]
27+
[string]
28+
$KeyData,
29+
[Parameter(Mandatory, ParameterSetName = "Path")]
2730
[string]
2831
$KeyPath,
29-
[Parameter(Mandatory)]
32+
[Parameter(Mandatory, ParameterSetName = "Data")]
33+
[Parameter(Mandatory, ParameterSetName = "Path")]
3034
[int]
3135
$AppId,
32-
[Parameter(Mandatory)]
36+
[Parameter(Mandatory, ParameterSetName = "Data")]
37+
[Parameter(Mandatory, ParameterSetName = "Path")]
3338
[int]
3439
$InstallationId
3540
)
3641

37-
$jwt = Get-JWTToken -AppId $AppId -KeyPath $KeyPath
42+
switch ($PSCmdlet.ParameterSetName) {
43+
"Data" {
44+
$jwt = Get-JWTToken -AppId $AppId -KeyData $KeyData
45+
}
46+
"Path" {
47+
$jwt = Get-JWTToken -AppId $AppId -KeyPath $KeyPath
48+
}
49+
default {
50+
throw [System.NotImplementedException]::new($PSCmdlet.ParameterSetName)
51+
}
52+
}
3853

3954
$headers = @{
4055
Authorization = "Bearer $jwt"

PSGithub/Public/Get-JWTToken.ps1

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
function Get-JWTToken {
22
param(
3-
[Parameter(Mandatory)]
3+
[Parameter(Mandatory, ParameterSetName="Data")]
4+
[string]
5+
$KeyData,
6+
[Parameter(Mandatory, ParameterSetName="Path")]
47
[string]
58
$KeyPath,
6-
[Parameter(Mandatory)]
9+
[Parameter(Mandatory, ParameterSetName="Data")]
10+
[Parameter(Mandatory, ParameterSetName="Path")]
711
[int]
812
$AppId,
913
[ValidateScript({ $_ -gt 30 })]
@@ -33,7 +37,9 @@ function Get-JWTToken {
3337
# D) Create Signature
3438

3539
## 1.) Load PEM
36-
$keyData = Get-Content -Path $KeyPath -Raw
40+
if ($PSCmdlet.ParameterSetName -eq "Path"){
41+
$KeyData = Get-Content -Path $KeyPath -Raw
42+
}
3743
$reader = [System.IO.StringReader]::new($keyData)
3844
try{
3945
$pemReader = New-Object Org.BouncyCastle.OpenSsl.PemReader $reader

0 commit comments

Comments
 (0)