Add contributor attribution to canvas extension cards (#2111)

Show "by @handle" on each canvas extension card and in the details
modal, linking to the contributor's GitHub profile. Author metadata
lives in each extension's canvas.json (and external.json for external
extensions), where the rest of the canvas metadata is stored.

- Store author {name, url} in canvas.json / external.json
- Read author from canvas.json in the website data generator and emit
  it to extensions.json
- Render the GitHub @handle, derived from the profile URL, as the link
  text, with the contributor's name as the link title
- Escape the sanitized author URL before interpolating it into href

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Ashley Wolf
2026-06-24 21:52:58 -07:00
committed by GitHub
parent f72401434f
commit e9c8e37041
15 changed files with 139 additions and 1 deletions
@@ -3,6 +3,10 @@
"name": "Accessibility Kanban",
"description": "Kanban board to manage accessibility issues, allow you to plan, track, and complete remediation work.",
"version": "1.0.0",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
},
"keywords": [
"accessibility",
"github-issues",
+4
View File
@@ -3,6 +3,10 @@
"name": "Agent Arcade",
"description": "Play five retro Phaser mini-games in a Copilot canvas while agents work.",
"version": "1.0.0",
"author": {
"name": "Dan Wahlin",
"url": "https://github.com/DanWahlin"
},
"keywords": [
"arcade-games",
"copilot-canvas",
@@ -3,6 +3,10 @@
"name": "Backlog Swipe Triage",
"description": "Quickly swipe through backlog issues to triage decisions like assign, needs-info, defer, close, or ignore.",
"version": "1.0.0",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"
},
"keywords": [
"agent-assignment",
"backlog-triage",
@@ -3,6 +3,10 @@
"name": "Chromium Control Canvas",
"description": "Opens a real Chromium window you can navigate and interact with from a Copilot canvas control panel and agent actions.",
"version": "1.0.0",
"author": {
"name": "Andrea Griffiths",
"url": "https://github.com/AndreaGriffiths11"
},
"keywords": [
"browser-control",
"chromium-browser",
+4
View File
@@ -3,6 +3,10 @@
"name": "Color Orb",
"description": "A visual orb that users can ask the agent to recolor while showing a live activity log in the canvas.",
"version": "1.0.0",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
},
"keywords": [
"agent-actions",
"color-picker",
+4
View File
@@ -3,6 +3,10 @@
"name": "Diagram Explorer",
"description": "Render diagrams, click nodes to drill down, and view agent-generated explanations directly in the canvas.",
"version": "1.0.0",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
},
"keywords": [
"architecture-mapping",
"canvas-navigation",
+1
View File
@@ -3,6 +3,7 @@
"id": "coffilot",
"name": "Coffilot",
"description": "Java-focused Copilot canvas extension from jdubois.",
"author": { "name": "Julien Dubois", "url": "https://github.com/jdubois" },
"keywords": [
"java",
"canvas",
+4
View File
@@ -3,6 +3,10 @@
"name": "Feedback Themes",
"description": "Explore grouped customer feedback signals by impact and drill into a theme to guide product next steps.",
"version": "1.0.0",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
},
"keywords": [
"customer-feedback",
"impact-prioritization",
+4
View File
@@ -3,6 +3,10 @@
"name": "Gesture PR Review",
"description": "Review pull requests with a live camera feed and approve or reject using thumbs-up/thumbs-down gestures.",
"version": "1.0.0",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
},
"keywords": [
"camera-input",
"gesture-control",
@@ -3,6 +3,10 @@
"name": "Release Notes Showcase",
"description": "Compose and refine launch-ready release notes with contributor callouts and export-friendly output.",
"version": "1.0.0",
"author": {
"name": "James Montemagno",
"url": "https://github.com/jamesmontemagno"
},
"keywords": [
"changelog",
"contributor-callouts",
+4
View File
@@ -3,6 +3,10 @@
"name": "Where Was I?",
"description": "Reconstruct your dev context (branch, commits, uncommitted work, PR clues) and trigger a resume prompt to continue quickly.",
"version": "1.0.0",
"author": {
"name": "Aaron Powell",
"url": "https://github.com/aaronpowell"
},
"keywords": [
"branch-state",
"developer-context",