| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2020-08-18 | 22.0 kB | |
| v0.15.0 Release of PowerShellForGitHub source code.tar.gz | 2020-08-18 | 202.3 kB | |
| v0.15.0 Release of PowerShellForGitHub source code.zip | 2020-08-18 | 280.8 kB | |
| Totals: 3 Items | 505.0 kB | 0 | |
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 specific
GitHub.*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 to0to 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-GitHubLabelchange 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-GitHubLabelused to do something else]Update-GitHubRepository->Set-GitHubRepository[Alias('Update-GitHubRepository')]
-
The following parameter renames occurred as well:
Add-GitHubIssueLabel:Name->LabelGet-GitHubCodeOfConduct:Name->KeyGet-GitHubProjectCard:ArchivedState->State(although we kept an alias forArchivedState)Get-GitHubLabel:Name->Label,Milestone->MilestoneNumberGet-GitHubLicense:Name->KeyGet-GitHubRelease:ReleaseId->Release(although we kept an alias forReleaseId)Get-GitHubRepositoryBranch:Name->BranchNameGet-GitHubUser:User->UserName(although we kept an alias forUser)Get-GitHubUserContextualInformation: There is no longerSubjectIdandSubject. Instead you either specifyOrganizationId,RepositoryId,IssueIdorPullRequestId.Move-GitHubProjectCard:ColumnId->Column(although we kept an alias forColumnId)New-GitHubLabel:Name->LabelNew-GitHubProject:Name->ProjectName(although we kept an alias forName)New-GitHubProjectCard: There is no longerContentIdandContentType. Instead you either specifyIssueIdorPullRequestId.New-GitHubProjectColumn:Name->ColumnName(although we kept an alias forName)Remove-GitHubIssueLabel:Name->LabelRemove-GitHubLabel:Name->LabelRename-GitHubRepository:html_urlalias forUrihas been removedSet-GitHubIssueLabel:Name->LabelSet-GitHubLabel(formerlyUpdate-GitHubLabel):Name->LabelSet-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:$falseor-Force. -
Affected commands that existed in previous releases:
Remove-GitHubAssigneeRemove-GitHubIssueComment(formerly namedRemove-GitHubComment)Remove-GitHubIssueLabelRemove-GitHubLabelRemove-GitHubMilestoneRemove-GitHubProjectRemove-GitHubProjectCardRemove-GitHubProjectColumnRemove-GitHubRepositoryRename-GitHubRepositorySet-GitHubLabel(formerly namedUpdate-GitHubLabel)Set-GitHubRepository(only affected when being used to rename the repository)
-
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] -
WhatIfsupport changes: - Only GitHub state-changing commands now support
-WhatIf(which meansGet-GitHub*andTest-GitHub*no longer support-WhatIf). -
All other
-WhatIf-supporting commands will only have a single-WhatIfoutput. -
The
NoStatusparameter has been removed from all functions due to the change in status behavior as descried above. TheDefaultNoStatusconfiguration 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-GitHubTeamandGet-GitHubTeamMemberno longer support theTeamIdparameter, as that functionality has been deprecated by GitHub. You can useTeamSluginstead.
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 specific
GitHub.*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-Forceas well. [pr] | [cl] -
All commands that require confirmation now accept
-Forcein 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):DeleteBranchOnMergeandIsTemplate[pr] | [cl] -
Added Dependabot service functions:
Test-GitHubRepositoryVulnerabilityAlert,Enable-GitHubRepositoryVulnerabilityAlert,Disable-GitHubRepositoryVulnerabilityAlert,Enable-GitHubRepositorySecurityFix,Disable-GitHubRepositorySecurityFix[pr] | [cl] -
Added
New-GitHubRepositoryFromTemplatewhich can create a new GitHub repository from a specified template repository. [pr] | [cl] -
Added
Set-GitHubContentand added aBranchNameparameter toGet-GitHubContent. [pr] | [cl] -
Added default "views" for all types exposed in GitHubRepositories.ps1:
GitHub.Repository,GitHub.RepositoryTopic,GitHub.RepositoryContributor,GitHub.RepositoryContributorStatistics,GitHub.RepositoryCollaborator,GitHub.RepositoryTag[pr] | [cl] -
Standardized verb usage and parameter naming throughout the module. This is great for long-term maintainability of the module, but it does introduced breaking changes from 0.14.0. The breaking changes are covered more completely, above. [pr] | [cl]
-
Overhauled how status works for the module. No longer shows an animation while invoking a web request. This has the side effect of simplifying the code and significantly speeding-up the module. This deprecates
NoStatusandDefaultNoStatus. This addsMultiRequestProgressThresholdto control how many pages of results are needed before a command will show status of completion across the full number of pages being retrieved. This defaults to 10. [pr] | [cl] -
Added
New-GitHubRepositoryBranchandRemove-GitHubRepositoryBranch[pr] | [cl] -
Updated
New-GitHubRepositoryBranchto better support pipeline input, and addedShaas an optional parameter to allow for arbitrary commit branch creation. Also addedShaas a top-level property to aGitHub.Branchobject. [pr] | [cl] -
Added GitHub Reactions support for Issues and Pull Requests:
Get-GitHubReaction,Set-GitHubReaction,Remove-GitHubReaction[pr] | [cl] -
Added complete support for the GitHub Releases API surface:
New-GitHubRelease,Set-GitHubRelease,Remove-GitHubRelease,Get-GitHubReleaseAsset,New-GitHubReleaseAsset,Set-GitHubReleaseAsset,Remove-GitHubReleaseAsset[pr] | [cl] -
Added complete support for the GitHub gists API surface:
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[pr] | [cl] -
Added branch protection rule commands:
Get-GitHubRepositoryBranchProtectionRule,New-GitHubRepositoryBranchProtectionRule,Remove-GitHubRepositoryBranchProtectionRule[pr] | [cl] -
Standardized and improved the
WhatIfsupport throughout the entire module. [pr] | [cl] -
Added additional support for Teams:
New-GitHubTeam,Set-GitHubTeam,Remove-GitHubTeam, and addsTeamNameas an additional way to call intoGet-GitHubTeam. [pr] | [cl] -
Minor improvements to the new Teams commands to better support pipeline input and to provide alternative calling patterns (which can specify a team's
slugor parent team'sTeamIdin order to minimize additional queries that would have to be done internally to complete your request). AddedRename-GitHubTeamas well. This also removesTeamIdas a way to callGet-GitHubTeamorGet-GitHubTeamMember, as those API's have been deprecated by GitHub. You can now speficy aTeamSluginstead. [pr] | [cl] -
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. [pr] | [cl]
Fixes:
-
Module update check needs to be able to handle when the module in use is newer than the published version (since publication to PowerShellGallery happens a few hours after the version is updated in GitHub). [pr] | [cl]
-
Simplified
-WhatIfhandling withinInvoke-GHRestMethodto only have a singleShouldProcessstatement. This was the first attempt at simplifying how-WhatIfshould work. There was a successive change that took things further (see below). [pr] | [cl] -
Fixed exception that occurred when calling
Set-GitHubRepositoryTopicwith-Clear. [pr] | [cl] -
Disabled the progress bar for
Invoke-WebRequestwhich greatly improves its performance in PowerShell 5.1. [pr] | [cl] -
Significantly increased the performance of
Get-GitHubContentwith some internal changes. [pr] | [cl] -
Removed positional binding support on
Set-GitHubConfigurationto solve a common misconfiguration problem introduced by accidentally setting the wrong configuration value state. [pr] | [cl] -
The module will now restore the previous state of
[Net.ServicePointManager]::SecurityProtocolafter performing its operation. [pr] | [cl] -
Some commands were not properly validating the
OwnerName/RepositoryNameinput due to a misconfiguration. That has now been fixed. [pr] | [cl] -
Added a
ValidateSetto theAffiiliationparameter inGet-GitHubRepositoryto limit input to the set of permitted options. Comment-based help was updated forGet-GitHubRepositoryCollaboratorandMove-GitHubRepositoryOwnership. Removed an unreachable codepath inGet-GitHubRepository. [pr] | [cl] -
Fixes to module version update checking: Fixed regression introduced by the pipeline work, and suppressed its usage of the progress bar to speed it up further. [pr] | [cl]
-
Fixed pipeline support for the newly added
New-GitHubRepositoryFromTemplate. [pr] | [cl] -
Fixed how numerical configuration values are handled to accommodate behavior differences in PowerShell 5 and PowerShell 7 Core. [pr] | [cl]
-
Fixed pipeline input handling for the newly added Dependabot functions. [pr] | [cl]
-
Removed
NoStatuscompletely from the module to complete the transitional work done for how status is handled in the module. [pr] | [cl]
Authors: * @HowardWolosky * @X-Guardian * @themilfan * @TylerLeonhardt