feat: publish plugin repository manifest #5

Merged
ryan.mcgee merged 2 commits from feat/plugin-repo-manifest into main 2026-10-16 22:36:34 +00:00
Owner

Summary

  • Make the plugin installable from Jellyfin's plugin catalog by publishing a repository manifest.

Changes

  • manifest.json: repository manifest with 1.0.0, generated from the published release zip (MD5 matches the asset).
  • scripts/manifest.sh <tag> <zip>: upserts one version from build.yaml and the exact release zip; rejects v-prefixed tags, version or guid mismatches, missing zips and non-https URLs.
  • CI: structural check of manifest.json.
  • README: install from the plugin repository; release step to update the manifest.

Verification

  • Workflow steps run in a fresh SDK container: build 0 warnings, format clean, 43 tests, shellcheck, package, manifest check, all exit 0. The manifest check rejects a bad checksum, wrong guid, v-prefixed URL, http URL and empty manifest.
  • manifest.sh rejects 5 bad inputs in a temp copy without writing a manifest; re-running is idempotent.
  • End to end on Jellyfin 10.11.11: added the branch manifest URL, installed from the catalog, restarted, plugin Active. A manifest with a tampered checksum is refused (HTTP 500, checksum mismatch in the log, no plugin folder).
  • README's main URL works only once this merges; the test used the branch URL.
## Summary - Make the plugin installable from Jellyfin's plugin catalog by publishing a repository manifest. ## Changes - `manifest.json`: repository manifest with 1.0.0, generated from the published release zip (MD5 matches the asset). - `scripts/manifest.sh <tag> <zip>`: upserts one version from `build.yaml` and the exact release zip; rejects v-prefixed tags, version or guid mismatches, missing zips and non-https URLs. - CI: structural check of `manifest.json`. - README: install from the plugin repository; release step to update the manifest. ## Verification - Workflow steps run in a fresh SDK container: build 0 warnings, format clean, 43 tests, shellcheck, package, manifest check, all exit 0. The manifest check rejects a bad checksum, wrong guid, v-prefixed URL, http URL and empty manifest. - `manifest.sh` rejects 5 bad inputs in a temp copy without writing a manifest; re-running is idempotent. - End to end on Jellyfin 10.11.11: added the branch manifest URL, installed from the catalog, restarted, plugin Active. A manifest with a tampered checksum is refused (HTTP 500, checksum mismatch in the log, no plugin folder). - README's `main` URL works only once this merges; the test used the branch URL.
- scripts/manifest.sh upserts one version into manifest.json from
  build.yaml and the exact release zip (MD5, as Jellyfin verifies)
- reject v-prefixed tags, version or guid mismatches, missing zips
  and non-https repository URLs
- CI validates manifest.json structure
feat: publish plugin repository manifest for 1.0.0
All checks were successful
CI / verify (pull_request) Successful in 54s
661c73fb77
- manifest.json generated from the published 1.0.0 release zip
- document installing from the plugin repository and updating the
  manifest when cutting a release
ryan.mcgee deleted branch feat/plugin-repo-manifest 2026-10-16 22:36:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Enclave-Information-Systems/jellyfin-sso-plugin!5
No description provided.