Add maintainer triage canvas#505
Open
AndreaGriffiths11 wants to merge 4 commits into
Open
Conversation
Live triage board for github/maintainermonth. Shows open issues and PRs with labels, review status, assignees, and relative ages. Calls the gh CLI at open time to fetch live data; a refresh action (also wired to a Refresh button in the UI) re-fetches and pushes a reload via SSE. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Stats bar: open issues · open PRs · stale count · merged this week - Staleness left-border: transparent (fresh <3d), yellow (aging 3-7d), red (stale >7d) so problem items are visible instantly - Attention flags: 'Unassigned' badge on issues with no assignee, 'No reviewers' badge on PRs with no review requested — both floated to top of their column - Recently merged section: PRs merged in the last 14 days shown below the triage columns so you see what shipped - Staleness legend explaining the color coding Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
GitHub Advanced Security started work on behalf of
AndreaGriffiths11
June 9, 2026 23:17
View session
… through a stack trace' Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
GitHub Advanced Security started work on behalf of
AndreaGriffiths11
June 9, 2026 23:19
View session
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a Copilot Canvas extension that renders a live “Maintainer Triage” board for github/maintainermonth, backed by a local HTTP server that queries GitHub via the gh CLI and pushes refresh events to the UI.
Changes:
- Introduces a new Copilot Canvas (
maintainer-triage) with a local server to render issues/PRs/merged PRs. - Implements staleness color-coding, sorting “needs attention” items to the top, and a stats bar + merged section.
- Adds refresh flows via an iframe button (
/api/refresh) and a canvas action (refresh).
Show a summary per file
| File | Description |
|---|---|
| .github/extensions/maintainer-triage/extension.mjs | New Copilot Canvas extension that serves a triage dashboard using gh data, SSE reloads, and simple HTML rendering. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 1/1 changed files
- Comments generated: 9
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
GitHub Advanced Security started work on behalf of
AndreaGriffiths11
June 9, 2026 23:34
View session
Comment on lines
+1
to
+12
| import { createServer } from "node:http"; | ||
| import { execSync } from "node:child_process"; | ||
| import { joinSession, createCanvas, CanvasError } from "@github/copilot-sdk/extension"; | ||
|
|
||
| const REPO = "github/maintainermonth"; | ||
| const STALE_DAYS = 7; | ||
| const AGING_DAYS = 3; | ||
| const MERGED_WINDOW_DAYS = 14; | ||
|
|
||
| function ghExec(args) { | ||
| return JSON.parse(execSync(`gh ${args} --repo ${REPO}`, { encoding: "utf8", timeout: 15000 })); | ||
| } |
Comment on lines
+602
to
+605
| const response = await fetch(new URL("/api/refresh", entry.url), { method: "POST" }); | ||
| const result = await response.json(); | ||
| if (!response.ok) throw new CanvasError("refresh_failed", result.error || "Refresh failed."); | ||
| return result; |
Comment on lines
+609
to
+616
| open: async (ctx) => { | ||
| let entry = servers.get(ctx.instanceId); | ||
| if (!entry) { | ||
| entry = await startServer(ctx.instanceId); | ||
| servers.set(ctx.instanceId, entry); | ||
| } | ||
| return { title: "Maintainer Triage · github/maintainermonth", url: entry.url }; | ||
| }, |
Comment on lines
+525
to
+531
| const btn = document.getElementById("refresh-btn"); | ||
| btn.addEventListener("click", async () => { | ||
| btn.disabled = true; | ||
| btn.textContent = "…"; | ||
| await fetch("/api/refresh", { method: "POST" }); | ||
| setTimeout(() => { if (btn.disabled) window.location.reload(); }, 3000); | ||
| }); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a live triage board canvas for
github/maintainermonthat.github/extensions/maintainer-triage/extension.mjs.What it shows
Staleness color coding
Cards get a colored left border based on days since last update:
Unassigned issues and reviewer-less PRs are sorted to the top of their column.
Usage
Open from Copilot CLI — ask to open the Maintainer Triage canvas. The
refreshaction re-fetches live data from GitHub.