Releases: microsoft/PowerShellForGitHub
v0.15.0 Release of PowerShellForGitHub
v0.15.0 - (2020/08/16)
Overview:
This is a significant update that has a number of breaking changes amongst its payload that
existing users need to be made aware of.
Highlights:
-
Complete pipeline support has been added to the module. You can now pipe the output of almost
any command as input to almost any command. Every command output now has a specificGitHub.*
type that is queryable as well. -
Major performance increase. It turns out that showing animated status would make an operation
take 3 seconds that would otherwise take 1/4 second due to performance issues with ProgressBar.
We no longer show status except for commands that 10+ pages of results which we must query for,
and that minimum can be changed with a new configuration property:multiRequestProgressThreshold
(set it to0
to never see any progress). -
Lots of new functionality added:
-
Full support for gists:
Get-GitHubGist
,Remove-GitHubGist
,
Copy-GitHubGist
(akaFork-GitHubGist
),Add-GitHubGistStar
,Remove-GitHubGistStar
,
Set-GitHubGistStar
,Test-GitHubGistStar
,New-GitHubGist
,Set-GitHubGist
,
Rename-GitHubGistFile
,Remove-GitHubGistFile
,Set-GitHubGistFile
(akaAdd-GitHubGistFile
),
Get-GitHubGistComment
,Set-GitHubGistComment
,New-GitHubGistComment
,
Remove-GitHubGistComment
-
Full support for Releases:
New-GitHubRelease
,Set-GitHubRelease
,Remove-GitHubRelease
,Get-GitHubReleaseAsset
,
New-GitHubReleaseAsset
,Set-GitHubReleaseAsset
,Remove-GitHubReleaseAsset
-
Improved support for Teams:
New-GitHubTeam
,Set-GitHubTeam
,Remove-GitHubTeam
,Rename-GitHubTeam
-
Dependabot support:
Test-GitHubRepositoryVulnerabilityAlert
,
Enable-GitHubRepositoryVulnerabilityAlert
,Disable-GitHubRepositoryVulnerabilityAlert
,
Enable-GitHubRepositorySecurityFix
,Disable-GitHubRepositorySecurityFix
-
New Repository-related commands:
New-GitHubRepositoryFromTemplate
,Set-GitHubContent
,New-GitHubRepositoryBranch
,
Remove-GitHubRepositoryBranch
,Get-GitHubRepositoryBranchProtectionRule
,
New-GitHubRepositoryBranchProtectionRule
,Remove-GitHubRepositoryBranchProtectionRule
-
New Reaction support added for issues and pull requests:
Get-GitHubReaction
,Set-GitHubReaction
,Remove-GitHubReaction
-
-
Default formatters have been added for many (but not yet all) of the types introduced by this
module. Formatter support will be increased over the coming releases. -
No longer has any external dependencies. Previously had to download .NET
assemblies in order to send telemetry, which made the initial commands
take up much more time than needed. With no eternal dependencies involved
anymore, telemetry is lightning-fast with negligible impact to normal
command execution.
Breaking Changes
Standardized naming (and verb usage) throughout the module
-
A number of commands have been renamed to follow the pattern that we're standardizing on:
Get
/Set
/New
/Remove
(but we will continue to aliasRemove-*
asDelete-*
).- That resulted in the following command renames:
Get-GitHubComment
->Get-GitHubIssueComment
[Alias('Get-GitHubComment)]
New-GitHubAssignee
->Add-GitHubAssignee
[Alias('New-GitHubAssignee')]
New-GitHubComment
->New-GitHubIssueComment
[Alias('New-GitHubComment)]
Remove-GitHubComment
->Remove-GitHubIssueComment
[Alias('Remove-GitHubComment)]
Set-GitHubLabel
->Initialize-GitHubLabel
[breaking behavior due to theUpdate-GitHubLabel
change below]`Update-GitHubCurrentUser
->Set-GitHubProfile
[Alias('Update-GitHubCurrentUser')]
Update-GitHubIssue
->Set-GitHubIssue
[Alias('Update-GitHubIssue')]
Update-GitHubLabel
->Set-GitHubLabel
[Alias('Update-GitHubLabel')]
[breaking behavior sinceSet-GitHubLabel
used to do something else]Update-GitHubRepository
->Set-GitHubRepository
[Alias('Update-GitHubRepository')]
- That resulted in the following command renames:
-
The following parameter renames occurred as well:
Add-GitHubIssueLabel
:Name
->Label
Get-GitHubCodeOfConduct
:Name
->Key
Get-GitHubProjectCard
:ArchivedState
->State
(although we kept an alias forArchivedState
)Get-GitHubLabel
:Name
->Label
,Milestone
->MilestoneNumber
Get-GitHubLicense
:Name
->Key
Get-GitHubRelease
:ReleaseId
->Release
(although we kept an alias forReleaseId
)Get-GitHubRepositoryBranch
:Name
->BranchName
Get-GitHubUser
:User
->UserName
(although we kept an alias forUser
)Get-GitHubUserContextualInformation
: There is no longerSubjectId
andSubject
.
Instead you either specifyOrganizationId
,RepositoryId
,IssueId
orPullRequestId
.Move-GitHubProjectCard
:ColumnId
->Column
(although we kept an alias forColumnId
)New-GitHubLabel
:Name
->Label
New-GitHubProject
:Name
->ProjectName
(although we kept an alias forName
)New-GitHubProjectCard
: There is no longerContentId
andContentType
.
Instead you either specifyIssueId
orPullRequestId
.New-GitHubProjectColumn
:Name
->ColumnName
(although we kept an alias forName
)Remove-GitHubIssueLabel
:Name
->Label
Remove-GitHubLabel
:Name
->Label
Rename-GitHubRepository
:html_url
alias forUri
has been removedSet-GitHubIssueLabel
:Name
->Label
Set-GitHubLabel
(formerlyUpdate-GitHubLabel
):Name
->Label
Set-GitHubProjectColumn
:Name
->ColumnName
(although we kept an alias forName
)Set-GitHubRepositoryTopic
:Name
->Topic
(although we kept an alias forName
)
Other breaking changes
-
All
Remove-*
functions (and someRename-*
/Set-*
functions) now prompt for confirmation before
performing the requested action. This can be silently bypassed by passing-in-Confirm:$false
or-Force
.- Affected commands that existed in previous releases:
Remove-GitHubAssignee
Remove-GitHubIssueComment
(formerly namedRemove-GitHubComment
)Remove-GitHubIssueLabel
Remove-GitHubLabel
Remove-GitHubMilestone
Remove-GitHubProject
Remove-GitHubProjectCard
Remove-GitHubProjectColumn
Remove-GitHubRepository
Rename-GitHubRepository
Set-GitHubLabel
(formerly namedUpdate-GitHubLabel
)Set-GitHubRepository
(only affected when being used to rename the repository)
- Affected commands that existed in previous releases:
-
Some parameters have had their type updated:
Comment
:[string]
->[int64]
Issue
/IssueNumber
:[string]
/[int]
->[int64]
Milestone
/MilestoneNumber
:[string]
->[int64]
PullRequest
/PullRequestNumber
:[string]
/[int]
->[int64]
Release
/ReleaseId
:[string]
->[int64]
-
WhatIf
support changes:- Only GitHub state-changing commands now support
-WhatIf
(which meansGet-GitHub*
and
Test-GitHub*
no longer support-WhatIf
). - All other
-WhatIf
-supporting commands will only have a single-WhatIf
output.
- Only GitHub state-changing commands now support
-
The
NoStatus
parameter has been removed from all functions due to the change in status behavior
as descried above. TheDefaultNoStatus
configuration value has also been removed for the same
reason. -
All state-changing functions are now silent by default (no resulting output). If you want them
to return the result, you can pass in-PassThru
, which is a PowerShell standard design pattern.
To truly get back to previous module behavior, you can set the new configuration property:
DefaultPassThru
. -
Get-GitHubTeam
andGet-GitHubTeamMember
no longer support theTeamId
parameter, as that
functionality has been deprecated by GitHub. You can useTeamSlug
instead.
Features:
-
Complete pipeline support has been added to the module. You can now pipe the output of almost
any command as input to almost any command. Every command output now has a specificGitHub.*
type that is queryable as well.
[pr] | [cl] -
All removal functions (and some rename functions) now prompt for confirmation. This can be silently
disabled with-Confirm:$false
. A later change will add support for using-Force
as well.
[pr] | [cl] -
All commands that require confirmation now accept
-Force
in addition to-Confirm:$false
.
[pr] | [cl] -
Telemetry no longer has any external dependencies. We used to have to download .NET assemblies
in order to send telemetry, and the downloading of those binaries took up time. Telemetry
reporting has now been completely implemented within PowerShell, removing all external dependencies.
[pr] | [cl] -
Added additional options to
Update-GitHubRepository
(later renamed toSet-GitHubRepository
):
DeleteBranchOnMerge
andIsTemplate
[pr] | [[cl]](https://github.com/microsoft/PowerShellForGitHub/comm...