Skip to content

Commit 44a72cd

Browse files
authored
feat: Support GitHub Copilot (#65)
Preparation to support GitHub Copilot via [Awesome GitHub Copilot](https://awesome-copilot.github.com/). See: - #38 - github/awesome-copilot#1889 - github/awesome-copilot#1890 JIRA: CPOUI5FOUNDATION-1240 * refactor: Remove duplicate plugin.json Claude Code also supports the root `plugin.json` file. * refactor(ui5-typescript-conversion): Move skill to sub-dir Although this seems to have worked with Claude Code, it is generally required to place each skill in a separate sub-directory with the same name as the skill. * refactor(ui5): Do not list skills individually * ci: Verify plugin.json copies stay in sync with root Add CI step that fails when any registered copy of plugins/<name>/plugin.json differs from the root file. Currently checks .github/plugin/plugin.json, required by github/awesome-copilot external-plugin smoke test. * ci: Add plugin.json copies for awesome-copilot smoke test Copy each plugins/<name>/plugin.json to <name>/.github/plugin/plugin.json, required by github/awesome-copilot external-plugin install verification. Sync with root enforced by CI step added in previous commit. * fix(ui5): Normalize keywords to lowercase-hyphenated form The github/awesome-copilot marketplace's external-plugin validator rejects keywords containing spaces or uppercase characters; only lowercase letters, digits, and hyphens are allowed (max 30 chars, max 10 entries per plugin). Replace 'api documentation', 'development guidelines', and 'best practices' with their hyphenated equivalents so the plugin passes intake validation when listed in plugins/external.json. Reference: - awesome-copilot/eng/external-plugin-validation.mjs (regex /^[a-z0-9-]+$/) - awesome-copilot/CONTRIBUTING.md - 'Adding External Plugins' ('keywords as lowercase hyphenated tags') * fix(ui5): Wrap MCP server config in mcpServers key Align with the plugin spec, which requires a top-level "mcpServers" wrapper around server entries. Both Claude Code and Copilot CLI tolerated the flat shape, but the spec-compliant form is safer for strict validators down the line.
1 parent 0450fe9 commit 44a72cd

7 files changed

Lines changed: 40 additions & 17 deletions

File tree

.github/workflows/ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,27 @@ jobs:
4242

4343
- name: Perform dependency check
4444
run: npm run knip
45+
46+
- name: Verify plugin.json copies are in sync
47+
run: |
48+
set -eu
49+
COPIES=(
50+
".github/plugin/plugin.json"
51+
)
52+
failed=0
53+
for root in plugins/*/plugin.json; do
54+
dir=$(dirname "$root")
55+
for rel in "${COPIES[@]}"; do
56+
copy="$dir/$rel"
57+
if [ ! -f "$copy" ]; then
58+
echo "::error file=$copy::missing copy of $root"
59+
failed=1
60+
continue
61+
fi
62+
if ! diff -u "$root" "$copy"; then
63+
echo "::error file=$copy::differs from $root"
64+
failed=1
65+
fi
66+
done
67+
done
68+
exit $failed

plugins/ui5-typescript-conversion/.claude-plugin/plugin.json renamed to plugins/ui5-typescript-conversion/.github/plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
"ui5",
1414
"sapui5",
1515
"openui5",
16-
"claude",
1716
"plugin",
1817
"typescript",
1918
"conversion"
20-
]
19+
],
20+
"skills": ["./skills/"]
2121
}

plugins/ui5-typescript-conversion/skills/SKILL.md renamed to plugins/ui5-typescript-conversion/skills/ui5-typescript-conversion/SKILL.md

File renamed without changes.

plugins/ui5-typescript-conversion/skills/references/test_conversion.md renamed to plugins/ui5-typescript-conversion/skills/ui5-typescript-conversion/references/test_conversion.md

File renamed without changes.
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@
1313
"ui5",
1414
"sapui5",
1515
"openui5",
16-
"claude",
1716
"plugin",
1817
"linter",
19-
"api documentation",
20-
"development guidelines",
21-
"best practices"
22-
]
18+
"api-documentation",
19+
"development-guidelines",
20+
"best-practices"
21+
],
22+
"skills": ["./skills/"]
2323
}

plugins/ui5/.mcp.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
{
2-
"ui5-mcp-server": {
3-
"command": "npx",
4-
"args": ["-y", "@ui5/mcp-server"]
2+
"mcpServers": {
3+
"ui5-mcp-server": {
4+
"command": "npx",
5+
"args": ["-y", "@ui5/mcp-server"]
6+
}
57
}
68
}

plugins/ui5/plugin.json

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,9 @@
1515
"openui5",
1616
"plugin",
1717
"linter",
18-
"api documentation",
19-
"development guidelines",
20-
"best practices"
18+
"api-documentation",
19+
"development-guidelines",
20+
"best-practices"
2121
],
22-
"skills": [
23-
"./skills/ui5-best-practices",
24-
"./skills/ui5-best-practices-integration-cards"
25-
]
22+
"skills": ["./skills/"]
2623
}

0 commit comments

Comments
 (0)