MVP.PSGitHub.psm1
function New-MVPPSBugReportContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $IssueNumber, [String] $Owner = 'PowerShell', [string] $Repository = 'PowerShell', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/issues/$IssueNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository#$IssueNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'Bug Report - {0} #{1}' -f $GitHubResult.title, $IssueNumber Description = 'Report a bug on a PowerShell Open Source project.' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSDocumentationContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $PRNumber, [String] $Owner = 'PowerShell', [String] $Repository = 'PowerShell-Docs', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/pulls/$PRNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository#$PRNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell Documentation - {0} #{1}' -f $GitHubResult.title, $PRNumber Description = 'Provide documentation for PowerShell.' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSFeatureRequestContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $IssueNumber, [String] $Owner = 'PowerShell', [string] $Repository = 'PowerShell', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$GitHubResult/repos/$Owner/$Repository/issues/$IssueNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository#$IssueNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'Feature Request - {0} #{1}' -f $GitHubResult.title, $IssueNumber Description = 'Request a feature on a PowerShell Open Source project.' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSGistContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [String] $GistID, [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/gists/$GistID" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$GistID not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell Gist - {0} ({1})' -f $GitHubResult.description, $GistID Description = 'Create a PowerShell Related Gist.' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSIssueCommentContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $IssueNumber, [String] $Owner = 'PowerShell', [String] $Repository = 'PowerShell', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/issues/$IssueNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository#$IssueNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell Issue Comment - {0} #{1}' -f $GitHubResult.title, $IssueNumber Description = 'Provide feedback on PowerShell Issue.' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSPullRequestContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $PRNumber, [String] $Owner = 'PowerShell', [String] $Repository = 'PowerShell', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/pulls/$PRNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository/#$PRNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell Pull Request - {0} #{1}' -f $GitHubResult.title, $PRNumber Description = 'Submit a PowerShell Pull request' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSPullRequestReviewContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $PRNumber, [String] $Owner = 'PowerShell', [String] $Repository = 'PowerShell', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/pulls/$PRNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository/#$PRNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell Pull Request Review - {0} #{1}' -f $GitHubResult.title, $PRNumber Description = 'Submit a Code Review of a PowerShell Pull request' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSRfcCommentContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $PRNumber, [String] $Owner = 'PowerShell', [String] $Repository = 'PowerShell-RFC', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/pulls/$PRNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository/#$PRNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell RFC Comment - {0} #{1}' -f $GitHubResult.title, $PRNumber Description = 'Provide feedback on PowerShell RFC' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function New-MVPPSRfcContribution { [CmdletBinding(SupportsShouldProcess)] param ( [Parameter(Mandatory)] [long] $PRNumber, [String] $Owner = 'PowerShell', [String] $Repository = 'PowerShell-RFC', [datetime] $StartDate = [datetime]::Now, [Parameter(DontShow)] $ApiBaseUri = (Get-ApiBaseUri) ) process { $GitHubResult = Invoke-RestMethod -Uri "$ApiBaseUri/repos/$Owner/$Repository/pulls/$PRNumber" -ErrorAction stop if (-not $GitHubResult) { Write-Error "$Owner/$Repository/#$PRNumber not found." return } $Params = @{ StartDate = $StartDate.ToString('yyy-MM-dd') Title = 'PowerShell RFC - {0} #{1}' -f $GitHubResult.title, $PRNumber Description = 'Create a PowerShell Open Source RFC.' ReferenceUrl = $GitHubResult.html_url AnnualQuantity = 1 SecondAnnualQuantity = 0 AnnualReach = 0 Visibility = 'Everyone' ContributionTechnology = 'PowerShell' ContributionType = 'Open Source Project(s)' } if ($PSCmdlet.ShouldProcess($($Params | ConvertTo-Json -Compress))) { New-MVPContribution @Params } } } function Get-ApiBaseUri { [CmdletBinding()] param () end { $Config = Import-Configuration $Config.GitHubApiBaseUri } } Enable-Tls -Tls12 |