init
This commit is contained in:
38
Set-GiteaOrgActionItem.ps1
Normal file
38
Set-GiteaOrgActionItem.ps1
Normal file
@@ -0,0 +1,38 @@
|
||||
param(
|
||||
[ValidateNotNullOrEmpty()] [string]$BaseUrl = "https://code.wynenterprise.io/",
|
||||
[ValidateNotNullOrEmpty()] [string]$Token = $Env:AdminGiteaManagePAT,
|
||||
[ValidateNotNullOrEmpty()] [string]$Org = "devops",
|
||||
|
||||
[Parameter(Mandatory=$true)] [string]$VarName,
|
||||
[string]$Value,
|
||||
[string]$Password
|
||||
)
|
||||
|
||||
if ([string]::IsNullOrWhiteSpace($Value) -and [string]::IsNullOrWhiteSpace($Password)) {
|
||||
throw "Specify either -Value or -Password"
|
||||
}
|
||||
|
||||
if (-not [string]::IsNullOrWhiteSpace($Value) -and -not [string]::IsNullOrWhiteSpace($Password)) {
|
||||
throw "Specify only one of -Value or -Password"
|
||||
}
|
||||
|
||||
$BaseUrl = $BaseUrl.TrimEnd('/')
|
||||
|
||||
$Headers = @{
|
||||
Authorization = "token $Token"
|
||||
Accept = "application/json"
|
||||
"Content-Type" = "application/json"
|
||||
}
|
||||
|
||||
if (-not [string]::IsNullOrWhiteSpace($Password)) { $Uri = "$BaseUrl/api/v1/orgs/$Org/actions/secrets"; $Body = (@{data = $Password} | ConvertTo-Json -Compress); $Method="Put"}
|
||||
else { $Uri = "$BaseUrl/api/v1/orgs/$Org/actions/variables"; $Body = (@{name = $VarName; value = $Value} | ConvertTo-Json -Compress); $Method="Post"}
|
||||
|
||||
$vars = Invoke-RestMethod -Method Get -Uri $Uri -Headers $Headers -ErrorAction Stop
|
||||
$FoundVar = $vars | Where-Object { $_.name -eq $VarName }
|
||||
|
||||
if (-not [bool]$FoundVar) {
|
||||
Invoke-RestMethod -Method $Method -Uri "$Uri/$VarName" -Headers $Headers -Body $Body
|
||||
} else {
|
||||
Invoke-RestMethod -Method Put -Uri "$Uri/$VarName" -Headers $Headers -Body $Body
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user