@@ -22,17 +22,17 @@ function Get-GitHubMilestone
22
22
The OwnerName and RepositoryName will be extracted from here instead of needing to provide
23
23
them individually.
24
24
25
- . PARAMETER MilestoneNumber
25
+ . PARAMETER Milestone
26
26
The number of a specific milestone to get. If not supplied, will return back all milestones for this repository.
27
27
28
28
. PARAMETER Sort
29
- How to sort the results, either due_on or completeness. Default: due_on
29
+ How to sort the results, either DueOn or Completeness.
30
30
31
31
. PARAMETER Direction
32
- How to list the results, either asc or desc . Ignored without the sort parameter. Default: asc
32
+ How to list the results, either Ascending or Descending . Ignored without the sort parameter.
33
33
34
34
. PARAMETER State
35
- Only milestones with this state are returned, either open, closed , or all. Default: open
35
+ Only milestones with this state are returned, either Open, Closed , or All.
36
36
37
37
. PARAMETER AccessToken
38
38
If provided, this will be used as the AccessToken for authentication with the
@@ -46,40 +46,45 @@ function Get-GitHubMilestone
46
46
47
47
. EXAMPLE
48
48
Get-GitHubMilestone -OwnerName Powershell -RepositoryName PowerShellForGitHub
49
-
50
49
Get the milestones for the PowerShell\PowerShellForGitHub project.
50
+
51
+ Get-GitHubMilestone -Uri 'https://github.com./PowerShell/PowerShellForGitHub' -Milestone 1
52
+ Get milestone number 1 for the PowerShell\PowerShellForGitHub project.
51
53
#>
52
54
[CmdletBinding (
53
55
SupportsShouldProcess ,
54
56
DefaultParametersetName = ' RepositoryElements' )]
55
57
[Diagnostics.CodeAnalysis.SuppressMessageAttribute (" PSShouldProcess" , " " , Justification= " Methods called within here make use of PSShouldProcess, and the switch is passed on to them inherently." )]
56
58
param (
59
+ [Parameter (Mandatory , ParameterSetName = ' MilestoneElements' )]
57
60
[Parameter (Mandatory , ParameterSetName = ' RepositoryElements' )]
58
61
[string ] $OwnerName ,
59
62
63
+ [Parameter (Mandatory , ParameterSetName = ' MilestoneElements' )]
60
64
[Parameter (Mandatory , ParameterSetName = ' RepositoryElements' )]
61
65
[string ] $RepositoryName ,
62
66
67
+ [Parameter (Mandatory , ParameterSetName = ' MilestoneUri' )]
63
68
[Parameter (Mandatory , ParameterSetName = ' RepositoryUri' )]
64
69
[string ] $Uri ,
65
70
66
- [Parameter (ParameterSetName = ' RepositoryUri ' )]
67
- [Parameter (ParameterSetName = ' RepositoryElements ' )]
68
- [string ] $MilestoneNumber ,
71
+ [Parameter (Mandatory , ParameterSetName = ' MilestoneUri ' )]
72
+ [Parameter (Mandatory , ParameterSetName = ' MilestoneElements ' )]
73
+ [int ] $Milestone ,
69
74
70
75
[Parameter (ParameterSetName = ' RepositoryUri' )]
71
76
[Parameter (ParameterSetName = ' RepositoryElements' )]
72
- [ValidateSet (' open ' , ' closed ' , ' all ' )]
77
+ [ValidateSet (' Open ' , ' Closed ' , ' All ' )]
73
78
[string ] $State ,
74
79
75
80
[Parameter (ParameterSetName = ' RepositoryUri' )]
76
81
[Parameter (ParameterSetName = ' RepositoryElements' )]
77
- [ValidateSet (' due_on ' , ' completeness ' )]
82
+ [ValidateSet (' DueOn ' , ' Completeness ' )]
78
83
[string ] $Sort ,
79
84
80
85
[Parameter (ParameterSetName = ' RepositoryUri' )]
81
86
[Parameter (ParameterSetName = ' RepositoryElements' )]
82
- [ValidateSet (' asc ' , ' desc ' )]
87
+ [ValidateSet (' Ascending ' , ' Descending ' )]
83
88
[string ] $Direction ,
84
89
85
90
[string ] $AccessToken ,
@@ -96,30 +101,45 @@ function Get-GitHubMilestone
96
101
$telemetryProperties = @ {
97
102
' OwnerName' = (Get-PiiSafeString - PlainText $OwnerName )
98
103
' RepositoryName' = (Get-PiiSafeString - PlainText $RepositoryName )
99
- ' ProvidedMilestone' = $PSBoundParameters.ContainsKey (' MilestoneNumber ' )
104
+ ' ProvidedMilestone' = $PSBoundParameters.ContainsKey (' Milestone ' )
100
105
}
101
106
102
- if ($PSBoundParameters.ContainsKey (' MilestoneNumber ' ))
107
+ if ($PSBoundParameters.ContainsKey (' Milestone ' ))
103
108
{
104
- $uriFragment = " repos/$OwnerName /$RepositoryName /milestones/$MilestoneNumber "
105
- $description = " Getting milestone $MilestoneNumber for $RepositoryName "
109
+ $uriFragment = " repos/$OwnerName /$RepositoryName /milestones/$Milestone "
110
+ $description = " Getting milestone $Milestone for $RepositoryName "
106
111
}
107
112
else
108
113
{
109
114
$getParams = @ ()
110
115
111
116
if ($PSBoundParameters.ContainsKey (' Sort' ))
112
117
{
113
- $getParams += " sort=$Sort "
118
+ if ($Sort -eq " Completeness" )
119
+ {
120
+ $getParams += " sort=completeness"
121
+ }
122
+ elseif ($Sort -eq " DueOn" )
123
+ {
124
+ $getParams += " sort=due_on"
125
+ }
114
126
}
115
127
116
128
if ($PSBoundParameters.ContainsKey (' Direction' ))
117
129
{
118
- $getParams += " direction=$Direction "
130
+ if ($Direction -eq " Ascending" )
131
+ {
132
+ $getParams += " direction=asc"
133
+ }
134
+ elseif ($Direction -eq " Descending" )
135
+ {
136
+ $getParams += " direction=desc"
137
+ }
119
138
}
120
139
121
140
if ($PSBoundParameters.ContainsKey (' State' ))
122
141
{
142
+ $State = $State.ToLower ()
123
143
$getParams += " state=$State "
124
144
}
125
145
@@ -143,7 +163,7 @@ function New-GitHubMilestone
143
163
{
144
164
<#
145
165
. DESCRIPTION
146
- Creates a new Github milestone in an issue for the given repository
166
+ Creates a new Github milestone for the given repository
147
167
148
168
The Git repo for this module can be found here: http://aka.ms/PowerShellForGitHub
149
169
@@ -164,12 +184,12 @@ function New-GitHubMilestone
164
184
The title of the milestone.
165
185
166
186
. PARAMETER State
167
- Only milestones with this state are returned , either open or closed. Default: open
187
+ The state of the milestone , either Open or Closed.
168
188
169
189
. PARAMETER Description
170
190
A description of the milestone.
171
191
172
- . PARAMETER Due_On
192
+ . PARAMETER DueOn
173
193
The milestone due date.
174
194
175
195
. PARAMETER AccessToken
@@ -185,7 +205,7 @@ function New-GitHubMilestone
185
205
. EXAMPLE
186
206
New-GitHubMilestone -OwnerName Powershell -RepositoryName PowerShellForGitHub -Title "Testing this API"
187
207
188
- Creates a new Github milestone in an issue for the PowerShell\PowerShellForGitHub project.
208
+ Creates a new Github milestone for the PowerShell\PowerShellForGitHub project.
189
209
#>
190
210
[CmdletBinding (
191
211
SupportsShouldProcess ,
@@ -205,18 +225,12 @@ function New-GitHubMilestone
205
225
[Parameter (Mandatory , ParameterSetName = ' Elements' )]
206
226
[string ] $Title ,
207
227
208
- [Parameter (ParameterSetName = ' Uri' )]
209
- [Parameter (ParameterSetName = ' Elements' )]
210
- [ValidateSet (' open' , ' closed' )]
228
+ [ValidateSet (' Open' , ' Closed' )]
211
229
[string ] $State ,
212
230
213
- [Parameter (ParameterSetName = ' Uri' )]
214
- [Parameter (ParameterSetName = ' Elements' )]
215
231
[string ] $Description ,
216
232
217
- [Parameter (ParameterSetName = ' Uri' )]
218
- [Parameter (ParameterSetName = ' Elements' )]
219
- [DateTime ] $Due_On ,
233
+ [DateTime ] $DueOn ,
220
234
221
235
[string ] $AccessToken ,
222
236
@@ -241,6 +255,7 @@ function New-GitHubMilestone
241
255
242
256
if ($PSBoundParameters.ContainsKey (' State' ))
243
257
{
258
+ $State = $State.ToLower ()
244
259
$hashBody.add (' state' , $State )
245
260
}
246
261
@@ -249,9 +264,9 @@ function New-GitHubMilestone
249
264
$hashBody.add (' description' , $Description )
250
265
}
251
266
252
- if ($PSBoundParameters.ContainsKey (' Due_On ' ) -and $null -ne $Due_On )
267
+ if ($PSBoundParameters.ContainsKey (' DueOn ' ) )
253
268
{
254
- $DueOnFormattedTime = $Due_On .ToUniversalTime ().ToString(' o' )
269
+ $DueOnFormattedTime = $DueOn .ToUniversalTime ().ToString(' o' )
255
270
$hashBody.add (' due_on' , $DueOnFormattedTime )
256
271
}
257
272
@@ -290,19 +305,19 @@ function Set-GitHubMilestone
290
305
The OwnerName and RepositoryName will be extracted from here instead of needing to provide
291
306
them individually.
292
307
293
- . PARAMETER MilestoneNumber
308
+ . PARAMETER Milestone
294
309
The number of a specific milestone to get.
295
310
296
311
. PARAMETER Title
297
312
The title of the milestone.
298
313
299
314
. PARAMETER State
300
- Only milestones with this state are returned , either open or closed. Default: open
315
+ The state of the milestone , either Open or Closed.
301
316
302
317
. PARAMETER Description
303
318
A description of the milestone.
304
319
305
- . PARAMETER Due_On
320
+ . PARAMETER DueOn
306
321
The milestone due date.
307
322
308
323
. PARAMETER AccessToken
@@ -316,7 +331,7 @@ function Set-GitHubMilestone
316
331
If not supplied here, the DefaultNoStatus configuration property value will be used.
317
332
318
333
. EXAMPLE
319
- Set-GitHubMilestone -OwnerName Powershell -RepositoryName PowerShellForGitHub -MilestoneNumber 1 -Title "Testing this API"
334
+ Set-GitHubMilestone -OwnerName Powershell -RepositoryName PowerShellForGitHub -Milestone 1 -Title "Testing this API"
320
335
321
336
Update an existing milestone for the PowerShell\PowerShellForGitHub project.
322
337
#>
@@ -336,24 +351,18 @@ function Set-GitHubMilestone
336
351
337
352
[Parameter (Mandatory , ParameterSetName = ' Uri' )]
338
353
[Parameter (Mandatory , ParameterSetName = ' Elements' )]
339
- [string ] $MilestoneNumber ,
354
+ [int ] $Milestone ,
340
355
341
356
[Parameter (Mandatory , ParameterSetName = ' Uri' )]
342
357
[Parameter (Mandatory , ParameterSetName = ' Elements' )]
343
358
[string ] $Title ,
344
359
345
- [Parameter (ParameterSetName = ' Uri' )]
346
- [Parameter (ParameterSetName = ' Elements' )]
347
- [ValidateSet (' open' , ' closed' )]
360
+ [ValidateSet (' Open' , ' Closed' )]
348
361
[string ] $State ,
349
362
350
- [Parameter (ParameterSetName = ' Uri' )]
351
- [Parameter (ParameterSetName = ' Elements' )]
352
363
[string ] $Description ,
353
364
354
- [Parameter (ParameterSetName = ' Uri' )]
355
- [Parameter (ParameterSetName = ' Elements' )]
356
- [DateTime ] $Due_On ,
365
+ [DateTime ] $DueOn ,
357
366
358
367
[string ] $AccessToken ,
359
368
@@ -370,7 +379,7 @@ function Set-GitHubMilestone
370
379
' OwnerName' = (Get-PiiSafeString - PlainText $OwnerName )
371
380
' RepositoryName' = (Get-PiiSafeString - PlainText $RepositoryName )
372
381
' Title' = (Get-PiiSafeString - PlainText $Title )
373
- ' MilestoneNumber ' = (Get-PiiSafeString - PlainText $MilestoneNumber )
382
+ ' Milestone ' = (Get-PiiSafeString - PlainText $Milestone )
374
383
}
375
384
376
385
$hashBody = @ {
@@ -379,6 +388,7 @@ function Set-GitHubMilestone
379
388
380
389
if ($PSBoundParameters.ContainsKey (' State' ))
381
390
{
391
+ $State = $State.ToLower ()
382
392
$hashBody.add (' state' , $State )
383
393
}
384
394
@@ -387,17 +397,17 @@ function Set-GitHubMilestone
387
397
$hashBody.add (' description' , $Description )
388
398
}
389
399
390
- if ($PSBoundParameters.ContainsKey (' Due_On ' ) -and $null -ne $Due_On )
400
+ if ($PSBoundParameters.ContainsKey (' DueOn ' ) )
391
401
{
392
- $DueOnFormattedTime = $Due_On .ToUniversalTime ().ToString(' o' )
402
+ $DueOnFormattedTime = $DueOn .ToUniversalTime ().ToString(' o' )
393
403
$hashBody.add (' due_on' , $DueOnFormattedTime )
394
404
}
395
405
396
406
$params = @ {
397
- ' UriFragment' = " repos/$OwnerName /$RepositoryName /milestones/$MilestoneNumber "
407
+ ' UriFragment' = " repos/$OwnerName /$RepositoryName /milestones/$Milestone "
398
408
' Body' = (ConvertTo-Json - InputObject $hashBody )
399
409
' Method' = ' Patch'
400
- ' Description' = " Setting milestone $MilestoneNumber for $RepositoryName "
410
+ ' Description' = " Setting milestone $Milestone for $RepositoryName "
401
411
' AccessToken' = $AccessToken
402
412
' TelemetryEventName' = $MyInvocation.MyCommand.Name
403
413
' TelemetryProperties' = $telemetryProperties
@@ -428,8 +438,8 @@ function Remove-GitHubMilestone
428
438
The OwnerName and RepositoryName will be extracted from here instead of needing to provide
429
439
them individually.
430
440
431
- . PARAMETER MilestoneNumber
432
- The number of a specific milestone to get .
441
+ . PARAMETER Milestone
442
+ The number of a specific milestone to delete .
433
443
434
444
. PARAMETER AccessToken
435
445
If provided, this will be used as the AccessToken for authentication with the
@@ -442,7 +452,7 @@ function Remove-GitHubMilestone
442
452
If not supplied here, the DefaultNoStatus configuration property value will be used.
443
453
444
454
. EXAMPLE
445
- Remove-GitHubMilestone -OwnerName Powershell -RepositoryName PowerShellForGitHub -MilestoneNumber 1
455
+ Remove-GitHubMilestone -OwnerName Powershell -RepositoryName PowerShellForGitHub -Milestone 1
446
456
447
457
Deletes a Github milestone from the PowerShell\PowerShellForGitHub project.
448
458
#>
@@ -463,7 +473,7 @@ function Remove-GitHubMilestone
463
473
464
474
[Parameter (Mandatory , ParameterSetName = ' Uri' )]
465
475
[Parameter (Mandatory , ParameterSetName = ' Elements' )]
466
- [string ] $MilestoneNumber ,
476
+ [string ] $Milestone ,
467
477
468
478
[string ] $AccessToken ,
469
479
@@ -479,13 +489,13 @@ function Remove-GitHubMilestone
479
489
$telemetryProperties = @ {
480
490
' OwnerName' = (Get-PiiSafeString - PlainText $OwnerName )
481
491
' RepositoryName' = (Get-PiiSafeString - PlainText $RepositoryName )
482
- ' MilestoneNumber ' = (Get-PiiSafeString - PlainText $MilestoneNumber )
492
+ ' Milestone ' = (Get-PiiSafeString - PlainText $Milestone )
483
493
}
484
494
485
495
$params = @ {
486
- ' UriFragment' = " repos/$OwnerName /$RepositoryName /milestones/$MilestoneNumber "
496
+ ' UriFragment' = " repos/$OwnerName /$RepositoryName /milestones/$Milestone "
487
497
' Method' = ' Delete'
488
- ' Description' = " Removing milestone $MilestoneNumber for $RepositoryName "
498
+ ' Description' = " Removing milestone $Milestone for $RepositoryName "
489
499
' AccessToken' = $AccessToken
490
500
' TelemetryEventName' = $MyInvocation.MyCommand.Name
491
501
' TelemetryProperties' = $telemetryProperties
0 commit comments