Skip to content

Commit 0ab271d

Browse files
authored
Merge pull request #76 from rulasg/improve-token-maangement-on-Set-custom-properties
Add Get-UserToken function to retrieve GitHub token and update setRepoProperties.ps1 to use it
2 parents 3e7dc24 + ee1838b commit 0ab271d

2 files changed

Lines changed: 26 additions & 4 deletions

File tree

Test/public/setRepoPropertiesSuccess.test.ps1

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
function Test_SetRepoProperties_Success{
22

33
$owner = 'solidifydemo' ; $repo = 'bit21' ; $property = 'kk' ; $value = 'someValuekk'
4+
$token = 'fakeToken'
45

56
$cmd = @'
6-
curl -L -s -H "Authorization: Bearer $env:GH_TOKEN" -X PATCH https://api.github.com/repos/{owner}/{repo}/properties/values -d '{"properties":[{"property_name":"{name}","value":"{value}"}]}'
7+
curl -L -s -H "Authorization: Bearer {token}" -X PATCH https://api.github.com/repos/{owner}/{repo}/properties/values -d '{"properties":[{"property_name":"{name}","value":"{value}"}]}'
78
'@
89
$cmd = $cmd -replace '{owner}',$owner
910
$cmd = $cmd -replace '{repo}',$repo
1011
$cmd = $cmd -replace '{name}',$property
1112
$cmd = $cmd -replace '{value}',$value
13+
$cmd = $cmd -replace '{token}',$token
1214

1315
# If success return null
1416
Set-InvokeCommandMock -Alias $cmd -Command "echo null"
17+
Set-InvokeCommandMock -Alias getToken -Command "echo $token"
1518

1619
$result = Set-RepoProperty -owner $owner -repo $repo -name $property -value $value
1720

@@ -21,18 +24,21 @@ curl -L -s -H "Authorization: Bearer $env:GH_TOKEN" -X PATCH https://api.github.
2124
function Test_SetRepoProperties_NotFound{
2225

2326
$owner = 'solidifydemo' ; $repo = 'bit21' ; $property = 'kk' ; $value = 'someValuekk'
27+
$token = 'fakeToken'
2428

2529
$cmd = @'
26-
curl -L -s -H "Authorization: Bearer $env:GH_TOKEN" -X PATCH https://api.github.com/repos/{owner}/{repo}/properties/values -d '{"properties":[{"property_name":"{name}","value":"{value}"}]}'
30+
curl -L -s -H "Authorization: Bearer {token}" -X PATCH https://api.github.com/repos/{owner}/{repo}/properties/values -d '{"properties":[{"property_name":"{name}","value":"{value}"}]}'
2731
'@
2832
$cmd = $cmd -replace '{owner}',$owner
2933
$cmd = $cmd -replace '{repo}',$repo
3034
$cmd = $cmd -replace '{name}',$property
3135
$cmd = $cmd -replace '{value}',$value
36+
$cmd = $cmd -replace '{token}',$token
3237

3338
# If success return null
3439
$mockfile = $PSScriptRoot | Join-Path -ChildPath 'testData' -AdditionalChildPath 'setRepoPropertiesNotFound.json'
3540
Set-InvokeCommandMock -Alias $cmd -Command "Get-Content -Path $(($mockfile | Get-Item).FullName)"
41+
Set-InvokeCommandMock -Alias getToken -Command "echo $token"
3642

3743
$result = Set-RepoProperty -owner $owner -repo $repo -name $property -value $value @ErrorParameters
3844

public/setRepoProperties.ps1

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
# This command works
66
# curl -L -H "Authorization: Bearer $env:GH_TOKEN" -X PATCH https://api.github.com/repos/solidifydemo/bit21/properties/values -d '{"properties":[{"property_name":"kk","value":"kkvalue23"}]}'
77
$cmd = @'
8-
curl -L -s -H "Authorization: Bearer $env:GH_TOKEN" -X PATCH https://api.github.com/repos/{owner}/{repo}/properties/values -d '{"properties":[{"property_name":"{name}","value":"{value}"}]}'
8+
curl -L -s -H "Authorization: Bearer {token}" -X PATCH https://api.github.com/repos/{owner}/{repo}/properties/values -d '{"properties":[{"property_name":"{name}","value":"{value}"}]}'
99
'@
1010

1111
Set-MyInvokeCommandAlias -Alias SetRepoProperty -Command $cmd
12+
Set-MyInvokeCommandAlias -Alias getToken -Command "Get-UserToken"
1213

1314
<#
1415
.SYNOPSIS
@@ -34,7 +35,9 @@ function Set-RepoProperty{
3435

3536
"Setting property $Name to $Value for $Owner/$Repo" | Write-Verbose
3637

37-
$param = @{ owner = $Owner ; repo = $Repo ; name = $Name ; value = $Value }
38+
$token = Invoke-MyCommand -Command getToken
39+
40+
$param = @{ owner = $Owner ; repo = $Repo ; name = $Name ; value = $Value ; token= $token}
3841

3942
if($PSCmdlet.ShouldProcess("$Owner/$Repo","Set property $Name to $Value")){
4043
$result = Invoke-MyCommandJson -Command SetRepoProperty -Parameters $param
@@ -47,3 +50,16 @@ function Set-RepoProperty{
4750
return $null
4851
} Export-ModuleMember -Function Set-RepoProperty
4952

53+
<#
54+
.SYNOPSIS
55+
Gets the user token from the environment
56+
#>
57+
function Get-UserToken{
58+
$token = $env:GH_TOKEN
59+
if($null -eq $token){
60+
"GH_TOKEN environment variable is not set" | Write-Error
61+
return $null
62+
}
63+
return $token
64+
} Export-ModuleMember -Function Get-UserToken
65+

0 commit comments

Comments
 (0)