chore: publish from staged

This commit is contained in:
github-actions[bot]
2026-06-09 06:57:59 +00:00
parent 4a5a7897ad
commit d012a24e98
2 changed files with 12 additions and 4 deletions
+10 -3
View File
@@ -161,6 +161,7 @@ function downloadSkillValidator(workDir) {
// both the Copilot CLI and many external repos use nested conventions. We read the // both the Copilot CLI and many external repos use nested conventions. We read the
// manifest ourselves so skill/agent paths can be resolved from the plugin root // manifest ourselves so skill/agent paths can be resolved from the plugin root
// consistently, regardless of where the manifest lives. // consistently, regardless of where the manifest lives.
// NOTE: Keep in sync with EXTERNAL_PLUGIN_ROOT_MANIFEST_PATHS in external-plugin-validation.mjs
const PLUGIN_JSON_CANDIDATES = [ const PLUGIN_JSON_CANDIDATES = [
[".github", "plugin", "plugin.json"], [".github", "plugin", "plugin.json"],
[".plugins", "plugin.json"], [".plugins", "plugin.json"],
@@ -307,11 +308,17 @@ function runInstallSmokeGate(workDir, plugin) {
} }
const installedPluginPath = path.join(homeDir, ".copilot", "installed-plugins", "external-plugin-intake", plugin.name); const installedPluginPath = path.join(homeDir, ".copilot", "installed-plugins", "external-plugin-intake", plugin.name);
const pluginManifestPath = path.join(installedPluginPath, ".github", "plugin", "plugin.json"); if (!fs.existsSync(installedPluginPath)) {
if (!fs.existsSync(installedPluginPath) || !fs.existsSync(pluginManifestPath)) {
return { return {
status: "fail", status: "fail",
output: `Plugin installed but expected files were missing at ${installedPluginPath}`, output: `Plugin installed but install directory was not found at ${installedPluginPath}`,
};
}
const pluginManifestPath = findPluginJson(installedPluginPath);
if (!pluginManifestPath) {
return {
status: "fail",
output: `Plugin installed but no plugin.json was found in any recognized location under ${installedPluginPath}`,
}; };
} }
+2 -1
View File
@@ -23,10 +23,11 @@ export const EXTERNAL_PLUGIN_POLICIES = Object.freeze({
}), }),
}); });
// NOTE: Keep in sync with PLUGIN_JSON_CANDIDATES in external-plugin-quality-gates.mjs
const EXTERNAL_PLUGIN_ROOT_MANIFEST_PATHS = Object.freeze([ const EXTERNAL_PLUGIN_ROOT_MANIFEST_PATHS = Object.freeze([
"plugin.json", "plugin.json",
".github/plugin/plugin.json", ".github/plugin/plugin.json",
".plugin/plugin.json", ".plugins/plugin.json",
]); ]);
function resolvePolicy(policy) { function resolvePolicy(policy) {