Functions/Public/Set-GitHubRelease.ps1
function Set-GitHubRelease { <# .SYNOPSIS Set information about a release .DESCRIPTION Set information about a release .PARAMETER Repository The name of the repository .PARAMETER Id The id of the release .PARAMETER Tag The name of the TagName .PARAMETER Target Specifies the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Unused if the Git tag already exists. Default: the repository's default branch (usually master). .PARAMETER Name The name of the release .PARAMETER Body Text describing the contents of the tag .PARAMETER Draft Makes the release a draft .PARAMETER Prerelease Makes the release a Prerelease .INPUTS System.String System.S .OUTPUTS System.Management.Automation.PSObject .EXAMPLE Set-GitHubReleaseAsset -Repository MyRepository -Id xxxx -Name NewName .EXAMPLE Set-GitHubReleaseAsset -Repository MyRepository -Id xxxx -Label NewLabel .EXAMPLE Set-GitHubReleaseAsset -Repository MyRepository -Id xxxx -Name NewName -Label NewLabel #> [CmdletBinding(SupportsShouldProcess,ConfirmImpact="Low")][OutputType('System.Management.Automation.PSObject')] Param ( [Parameter(Mandatory=$false, Position=0)] [ValidateNotNullOrEmpty()] [String]$Repository, [Parameter(Mandatory=$false, Position=1)] [ValidateNotNullOrEmpty()] [String]$Id, [Parameter(Mandatory=$false, Position=2)] [ValidateNotNullOrEmpty()] [String]$Tag, [Parameter(Mandatory=$false, Position=3)] [ValidateNotNullOrEmpty()] [String]$Target, [Parameter(Mandatory=$true, Position=4)] [ValidateNotNullOrEmpty()] [String]$Name, [Parameter(Mandatory=$false, Position=5)] [ValidateNotNullOrEmpty()] [String]$Body, [Parameter(Mandatory=$false, Position=6)] [ValidateNotNullOrEmpty()] [System.Management.Automation.SwitchParameter]$Draft, [Parameter(Mandatory=$false, Position=3)] [ValidateNotNullOrEmpty()] [System.Management.Automation.SwitchParameter]$Prerelease ) try { # --- Grab the sessionstate variable & test throw if it is null $SessionInfo = Get-GitHubSessionInformation -Verbose:$VerbosePreference $Release = [PSCustomObject] @{ name = $Name } if ($PSBoundParameters.ContainsKey("Tag")){ $Release | Add-Member -MemberType NoteProperty -Name tag_name -Value $Tag } if ($PSBoundParameters.ContainsKey("Target")){ $Release | Add-Member -MemberType NoteProperty -Name target_commitish -Value $Target } if ($PSBoundParameters.ContainsKey("Body")){ $Release | Add-Member -MemberType NoteProperty -Name body -Value $Body } if ($PSBoundParameters.ContainsKey("Draft")){ $Release | Add-Member -MemberType NoteProperty -Name draft -Value $true } if ($PSBoundParameters.ContainsKey("Prerelease")){ $Release | Add-Member -MemberType NoteProperty -Name prerelease -Value $true } if ($PSCmdlet.ShouldProcess($Id)){ $URI = "/repos/$($SessionInfo.Username)/$($Repository)/releases/$($Id)" Invoke-GitHubRestMethod -Method PATCH -URI $URI -Body ($Release | ConvertTo-Json) -Verbose:$VerbosePreference } } catch [Exception]{ throw $_.Exception } } |