Add GitHub plugin release imports and update discovery

This commit is contained in:
2026-09-18 01:29:38 -04:00
parent a718efc9e7
commit 3c49437bf9
16 changed files with 847 additions and 2 deletions
+21 -1
View File
@@ -82,7 +82,7 @@
let poll: ReturnType<typeof setInterval> | null = null;
onMount(() => {
load();
void load().then(seedImportedPlugin).catch(error => { flash = (error as Error).message; });
poll = setInterval(refreshBetas, 5000);
});
onDestroy(() => {
@@ -102,6 +102,26 @@
return eligibleScripts.filter((s) => !takenIds.has(s.id));
}
async function seedImportedPlugin(): Promise<void> {
const query = new URLSearchParams(window.location.search);
if (!query.has('pluginId')) return;
const pluginId = Number(query.get('pluginId'));
const versionId = Number(query.get('versionId'));
if (!eligibleScripts.some(s => s.id === pluginId && s.kind === 'plugin')) {
flash = 'This plugin is already promoted or has a running beta. Open its detail page to review its status.';
return;
}
picks = [{ key: nextKey++, scriptId: pluginId, versionId: null }];
await onPickScript(0);
if (!versionsForRow(picks[0]).some(v => v.id === versionId)) {
picks[0].versionId = null;
flash = 'The imported version is no longer available for testing. Choose a version to continue.';
return;
}
picks[0].versionId = versionId;
picks = [...picks];
}
async function onPickScript(rowIdx: number): Promise<void> {
flash = null;
const pick = picks[rowIdx];