Fetch closed GitHub issues that were updated in the last 14 days.
+.NOTES
+
+Thism modules requires the following in your PowerShell profile:
+$env:GITHUB_USERNAME = 'github_username'
+$env:GITHUB_ORG = 'github_organization_name'
+$env:GITHUB_REPOS = @('repository1', 'repository2', 'repository3')
+
#>
function Get-GHClosed {
param(
[int]$days = -14
)
- $repos = @('SecOps-Tools', 'secdev-job-aids', 'awscli-login')
- $issueSearchParams = @{ State = 'closed'; OwnerName = 'techservicesillinois' }
+ $repos = $env:GITHUB_REPOS.split(" ")
+ $issueSearchParams = @{ State = 'closed'; OwnerName = $env:GITHUB_ORG }
$closed = @()
$repos | ForEach-Object {
$closed += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
}
+<#
+.SYNPOSIS
+
+Fetch GitHub issues that are tagged to discuss this morning.
+
+#>
+function Get-GHToDiscuss {
+ param(
+ [int]$days = -14
+ )
+ $repos = $env:GITHUB_REPOS.split(" ")
+ $issueSearchParams = @{ State = 'open'; OwnerName = $env:GITHUB_ORG }
+ $closed = @()
+ $repos | ForEach-Object {
+ $closed += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
+ }
+ $issues = $issues | Where-Object { $_.labels -Contains 'DiscussAtStandUp' }
+
+ return $issues
+}
+
+
<#
.SYNOPSIS
#>
function Get-GHMine() {
- $repos = @('SecOps-Tools', 'secdev-job-aids', 'awscli-login')
- $issueSearchParams = @{ Assignee = 'edthedev'; State = 'open'; OwnerName = 'techservicesillinois' }
+ $repos = $env:GITHUB_REPOS.split(" ")
+ $issueSearchParams = @{ Assignee = $env:GITHUB_USERNAME;
+ State = 'open'; OwnerName = $env:GITHUB_ORG }
$issues = @()
$repos | ForEach-Object {
$issues += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
}
<#
+.SYNOPSIS
+
+Get GitHub issues that need sized.
+
+.DESCRIPTION
-Target GitHub search:
+Runs this GitHub search:
is:open is:issue -label:M -label:L -label:S -label:XL -label:XS
#>
function Get-GHUnsized() {
- $repos = @('SecOps-Tools', 'secdev-job-aids', 'awscli-login')
+ $repos = $env:GITHUB_REPOS.split(" ")
$issueSearchParams = @{ State = 'open'; OwnerName = 'techservicesillinois' }
$issues = @()
$repos | ForEach-Object {
return $issues
}
+function Get-GHNoMilestone() {
+ param(
+ [string]$repository
+ )
+ $repos = $env:GITHUB_REPOS.split(" ")
+ if($repository){
+ $repos = @($repository)
+ }
+ $issueSearchParams = @{ State = 'open'; OwnerName = 'techservicesillinois' }
+ $issues = @()
+ $repos | ForEach-Object {
+ $issues += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
+ }
+
+ # Get open issues with empty milestone
+ $issues = $issues | Where-Object { $null -eq $_.milestone }
+ return $issues
+}
+function Show-GHNoMilestone(){
+ param(
+ [string]$repository
+ )
+ Get-GHNoMilestone -Repository $repository | Show-GHIssuesAsMarkdown
+}
+
function Show-GHUnsized() {
Get-GHUnsized | ForEach-Object {
# Markdown output
}
}
+function Show-GHByAssignee() {
+ $repos = $env:GITHUB_REPOS.split(" ")
+ $issueSearchParams = @{ State = 'open'; OwnerName = 'techservicesillinois' }
+ $issues = @()
+ $repos | ForEach-Object {
+ $issues += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
+ }
+
+ # TODO: Group output by assignee.
+
+ return $issues
+}
+
+
+
+function Show-GHToDiscuss() {
+ Get-GHToDiscuss | Show-GHIssuesAsMarkdown
+}
+
+
+function Show-GHIssuesAsMarkdown() {
+ process
+ {
+ # Markdown output
+ " + [" + $_.Title + " (" + $_.Number + ")](" + $_.html_url + ")"
+ }
+}
+
+
Export-ModuleMember -Function Get-GHClosed
Export-ModuleMember -Function Show-GHClosed
Export-ModuleMember -Function Get-GHMine
Export-ModuleMember -Function Show-GHMine
Export-ModuleMember -Function Get-GHUnsized
-Export-ModuleMember -Function Show-GHUnsized
\ No newline at end of file
+Export-ModuleMember -Function Show-GHUnsized
+Export-ModuleMember -Function Show-GHToDiscuss
+Export-ModuleMember -Function Get-GHNoMilestone
+Export-ModuleMember -Function Show-GHNoMilestone
\ No newline at end of file