Skip to content

Commit afb2ed5

Browse files
Merge branch 'github:main' into contrib/adversarial-pr-reviewer
2 parents d03cee9 + e9c8e37 commit afb2ed5

16 files changed

Lines changed: 139 additions & 81 deletions

File tree

.github/workflows/check-pr-target.yml

Lines changed: 0 additions & 80 deletions
This file was deleted.

eng/generate-website-data.mjs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,25 @@ function normalizeText(value, fallback = "") {
101101
return typeof value === "string" ? value.trim() : fallback;
102102
}
103103

104+
/**
105+
* Normalize an author value (npm string form or { name, url } object) to
106+
* { name, url? } | null. Returns null when no usable name is present.
107+
*/
108+
function normalizeAuthor(value) {
109+
if (!value) return null;
110+
if (typeof value === "string") {
111+
const name = value.trim();
112+
return name ? { name } : null;
113+
}
114+
if (typeof value === "object") {
115+
const name = normalizeText(value.name);
116+
if (!name) return null;
117+
const url = normalizeText(value.url);
118+
return url ? { name, url } : { name };
119+
}
120+
return null;
121+
}
122+
104123
/**
105124
* Find the latest git-modified date for any file under a directory.
106125
*/
@@ -1002,6 +1021,10 @@ function generateCanvasManifest(gitDates, commitSha) {
10021021
const packageJson = fs.existsSync(packageJsonPath)
10031022
? JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"))
10041023
: {};
1024+
const canvasJsonPath = path.join(extensionDir, "canvas.json");
1025+
const canvasJson = fs.existsSync(canvasJsonPath)
1026+
? JSON.parse(fs.readFileSync(canvasJsonPath, "utf-8"))
1027+
: {};
10051028
const keywords = Array.isArray(packageJson.keywords)
10061029
? [...new Set(packageJson.keywords.filter((keyword) => typeof keyword === "string").map((keyword) => keyword.trim()).filter(Boolean))].sort((a, b) => a.localeCompare(b))
10071030
: [];
@@ -1044,6 +1067,7 @@ function generateCanvasManifest(gitDates, commitSha) {
10441067
installUrl,
10451068
sourceUrl: null,
10461069
external: false,
1070+
author: normalizeAuthor(canvasJson.author),
10471071
keywords,
10481072
});
10491073
}
@@ -1116,6 +1140,7 @@ function generateCanvasManifest(gitDates, commitSha) {
11161140
installUrl,
11171141
sourceUrl: sourceUrl || null,
11181142
external: true,
1143+
author: normalizeAuthor(ext?.author),
11191144
keywords,
11201145
});
11211146
}
@@ -1199,6 +1224,7 @@ function writePerExtensionCanvasManifests(canvasManifestData) {
11991224
name: item.name,
12001225
description: item.description || "Canvas extension",
12011226
version: item.version || "1.0.0",
1227+
...(item.author ? { author: item.author } : {}),
12021228
keywords: Array.isArray(item.keywords)
12031229
? [...new Set(item.keywords)].sort((a, b) => a.localeCompare(b))
12041230
: [],

extensions/accessibility-kanban/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Accessibility Kanban",
44
"description": "Kanban board to manage accessibility issues, allow you to plan, track, and complete remediation work.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "Aaron Powell",
8+
"url": "https://github.com/aaronpowell"
9+
},
610
"keywords": [
711
"accessibility",
812
"github-issues",

extensions/arcade-canvas/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Agent Arcade",
44
"description": "Play five retro Phaser mini-games in a Copilot canvas while agents work.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "Dan Wahlin",
8+
"url": "https://github.com/DanWahlin"
9+
},
610
"keywords": [
711
"arcade-games",
812
"copilot-canvas",

extensions/backlog-swipe-triage/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Backlog Swipe Triage",
44
"description": "Quickly swipe through backlog issues to triage decisions like assign, needs-info, defer, close, or ignore.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "James Montemagno",
8+
"url": "https://github.com/jamesmontemagno"
9+
},
610
"keywords": [
711
"agent-assignment",
812
"backlog-triage",

extensions/chromium-control-canvas/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Chromium Control Canvas",
44
"description": "Opens a real Chromium window you can navigate and interact with from a Copilot canvas control panel and agent actions.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "Andrea Griffiths",
8+
"url": "https://github.com/AndreaGriffiths11"
9+
},
610
"keywords": [
711
"browser-control",
812
"chromium-browser",

extensions/color-orb/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Color Orb",
44
"description": "A visual orb that users can ask the agent to recolor while showing a live activity log in the canvas.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "Aaron Powell",
8+
"url": "https://github.com/aaronpowell"
9+
},
610
"keywords": [
711
"agent-actions",
812
"color-picker",

extensions/diagram-viewer/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Diagram Explorer",
44
"description": "Render diagrams, click nodes to drill down, and view agent-generated explanations directly in the canvas.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "Aaron Powell",
8+
"url": "https://github.com/aaronpowell"
9+
},
610
"keywords": [
711
"architecture-mapping",
812
"canvas-navigation",

extensions/external.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"id": "coffilot",
44
"name": "Coffilot",
55
"description": "Java-focused Copilot canvas extension from jdubois.",
6+
"author": { "name": "Julien Dubois", "url": "https://github.com/jdubois" },
67
"keywords": [
78
"java",
89
"canvas",

extensions/feedback-themes/canvas.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"name": "Feedback Themes",
44
"description": "Explore grouped customer feedback signals by impact and drill into a theme to guide product next steps.",
55
"version": "1.0.0",
6+
"author": {
7+
"name": "Aaron Powell",
8+
"url": "https://github.com/aaronpowell"
9+
},
610
"keywords": [
711
"customer-feedback",
812
"impact-prioritization",

0 commit comments

Comments
 (0)