+<#
+.SYNPOSIS
+
+Fetch GitHub issues I am working on.
+
+#>
+function Get-GHMine() {
+ $repos = @('SecOps-Tools', 'secdev-job-aids', 'awscli-login')
+ $issueSearchParams = @{ Assignee = 'edthedev'; State = 'open'; OwnerName = 'techservicesillinois' }
+ $issues = @()
+ $repos | ForEach-Object {
+ $issues += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
+ }
+
+ # Ignore issues that have been updated in the last day.
+ $issues = $issues | Where-Object { $_.updated_at -lt (Get-Date).AddDays(-1) }
+
+ return $issues
+}
+
+<#
+.SYNOPSIS
+
+Show GitHub issues I am working on.
+
+#>
+function Show-GHMine() {
+ Get-GHMine | ForEach-Object {
+ # Markdown output
+ " + [" + $_.Title + " (" + $_.Number + ")](" + $_.html_url + ")"
+ }
+}
+
+<#
+.SYNOPSIS
+
+Get GitHub issues that need sized.
+
+.DESCRIPTION
+
+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')
+ $issueSearchParams = @{ State = 'open'; OwnerName = 'techservicesillinois' }
+ $issues = @()
+ $repos | ForEach-Object {
+ $issues += Get-GitHubIssue -RepositoryName $_ @issueSearchParams
+ }
+
+ # Ignore issues that have been updated in the last day.
+ $issues = $issues | Where-Object { -Not $_.labels -Contains 'XS' }
+ $issues = $issues | Where-Object { -Not $_.labels -Contains 'S' }
+ $issues = $issues | Where-Object { -Not $_.labels -Contains 'M' }
+ $issues = $issues | Where-Object { -Not $_.labels -Contains 'L' }
+ # Leave XL issues, as they need split.
+
+ return $issues
+}
+
+function Get-GHNoMilestone() {
+ $repos = @('SecOps-Tools', 'secdev-job-aids', 'awscli-login')
+ $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(){
+ Get-GHNoMilestone| Show-GHIssuesAsMarkdown
+}
+
+function Show-GHUnsized() {
+ Get-GHUnsized | ForEach-Object {
+ # Markdown output
+ " + [" + $_.Title + " (" + $_.Number + ")](" + $_.html_url + ")" + $_.labels
+ }
+}
+
+function Show-GHByAssignee() {
+ $repos = @('SecOps-Tools', 'secdev-job-aids', 'awscli-login')
+ $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 + ")"
+ }
+}
+
+