Skip to content

Commit 521ef2b

Browse files
Merge pull request #3 from theohbrothers/enhancement/releases-add-parameters-for-new-githubrepositoryreleasex
Enhancement (releases): Add parameters for `New-GitHubRepositoryRelease*`
2 parents b36d9b2 + 2394fb9 commit 521ef2b

File tree

2 files changed

+39
-5
lines changed

2 files changed

+39
-5
lines changed

src/PSGitHubRestApi/Public/New-GitHubRepositoryRelease.ps1

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,22 @@ function New-GitHubRepositoryRelease {
3636
[Parameter(Mandatory=$false)]
3737
[ValidateNotNullOrEmpty()]
3838
[bool]$Prerelease
39+
,
40+
[Parameter(Mandatory=$false)]
41+
[ValidateNotNullOrEmpty()]
42+
[string]$DiscussionCategoryName
43+
,
44+
[Parameter(Mandatory=$false)]
45+
[ValidateNotNullOrEmpty()]
46+
[bool]$GenerateReleaseNotes
47+
,
48+
[Parameter(Mandatory=$false)]
49+
[ValidateSet(
50+
"True",
51+
"False",
52+
"Legacy"
53+
)]
54+
[string]$MakeLatest
3955
)
4056

4157
begin {
@@ -55,6 +71,9 @@ function New-GitHubRepositoryRelease {
5571
if ($Body) { $_body['body'] = $Body }
5672
if ($null -ne $Draft) { $_body['draft'] = $Draft }
5773
if ($null -ne $Prerelease) { $_body['prerelease'] = $Prerelease }
74+
if ($DiscussionCategoryName) { $_body['discussion_category_name'] = $DiscussionCategoryName }
75+
if ($null -ne $GenerateReleaseNotes) { $_body['generate_release_notes'] = $GenerateReleaseNotes }
76+
if ($MakeLatest) { $_body['make_latest'] = $MakeLatest }
5877
$_bodyJson = $_body | ConvertTo-Json -Depth 100
5978
"Uri: '$_uri'" | Write-Verbose
6079
"Headers:" | Write-Verbose

src/PSGitHubRestApi/Public/New-GitHubRepositoryReleaseAsset.ps1

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,19 @@
11
function New-GitHubRepositoryReleaseAsset {
2-
[CmdletBinding()]
2+
[CmdletBinding(DefaultParameterSetName='$ReleaseId')]
33
param(
4-
[Parameter(Mandatory=$true)]
4+
[Parameter(ParameterSetName='$ReleaseId', Mandatory=$true)]
5+
[ValidateNotNullOrEmpty()]
6+
[string]$Namespace
7+
,
8+
[Parameter(ParameterSetName='$ReleaseId', Mandatory=$true)]
9+
[ValidateNotNullOrEmpty()]
10+
[string]$Repository
11+
,
12+
[Parameter(ParameterSetName='$ReleaseId', Mandatory=$true)]
13+
[ValidateNotNullOrEmpty()]
14+
[string]$ReleaseId
15+
,
16+
[Parameter(ParameterSetName='UploadUrl', Mandatory=$true)]
517
[ValidateNotNullOrEmpty()]
618
[string]$UploadUrl
719
,
@@ -16,10 +28,13 @@ function New-GitHubRepositoryReleaseAsset {
1628
)
1729

1830
begin {
19-
$_matchInfo = $UploadUrl.Trim() | Select-String -Pattern '(.+\/assets)($|{\?name,label})'
20-
$_uploadUrlProcessed = if ($_matchInfo) { $_matchInfo.Matches.Groups[1].Value } else { $UploadUrl }
31+
if ($ReleaseId) {
32+
$_uploadUrlProcessed = "https://uploads.github.com/repos/$Namespace/$Repository/releases/$ReleaseId/assets"
33+
}elseif ($UploadUrl) {
34+
$_matchInfo = $UploadUrl.Trim() | Select-String -Pattern '(.+\/assets)($|{\?name,label})'
35+
$_uploadUrlProcessed = if ($_matchInfo) { $_matchInfo.Matches.Groups[1].Value } else { $UploadUrl }
36+
}
2137
$_assetItem = Get-Item -Path $Asset -ErrorAction Stop
22-
2338
$_uri = "$($_uploadUrlProcessed)?name=$($_assetItem.Name)"
2439
$_headers = @{
2540
Authorization = "token $($ApiKey)"

0 commit comments

Comments
 (0)