feat: static registry with GitHub Pages + version tracking#11
Merged
Conversation
- build-index.sh: reads all plugins/*/manifest.json, generates v1/index.json (sorted by name with summary fields) and copies manifests to v1/plugins/ - build-versions.sh: queries GitHub Releases API via gh CLI for each plugin with a repository field, generates v1/plugins/<name>/versions.json and latest.json with download URLs and sha256 checksums from checksums.txt Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- build-pages.yml: builds and deploys v1/ static JSON API to GitHub Pages on push to main, repository_dispatch (plugin-release), daily schedule, and manual workflow_dispatch - .gitignore: excludes generated v1/ directory from source control Registry served at: https://gocodealone.github.io/workflow-registry/v1/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Provides a copy-paste GitHub Actions job snippet that plugin repos can add to their release workflow to trigger a registry rebuild via repository_dispatch when a new version is published. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add Build & Deploy badge alongside existing Validate badge - Add registry API URL (https://gocodealone.github.io/workflow-registry/v1/) - Add Usage via wfctl section with search/install/list/update commands - Expand Submitting a Plugin into step-by-step PR process with manifest requirements summary - Add Automatic Version Tracking section pointing to templates/notify-registry.yml - Add Registry Structure overview showing v1/ generated directory and static API endpoint table - Add Plugin Tiers table (core/community/premium) - Add link to Plugin Authoring Guide Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
build-index.sh: - Use directory name as canonical plugin name in index entries (overrides manifest .name field) so that v1/index.json names align exactly with v1/plugins/<dir>/ API paths; fixes 11 mismatches (e.g. "datadog" vs "workflow-plugin-datadog", "pipelinesteps" vs "pipeline-steps") build-versions.sh: - Replace `gh release list --json assets` (assets not a valid list field) with `gh release view <tag> --json assets` per-tag; was crashing silently and producing empty release lists for all plugins with releases - Use `digest` field from gh release view assets (contains sha256 natively) instead of downloading checksums.txt, simplifying the approach significantly - Remove dead-code first `versions=` computation block that was immediately superseded by the `versions_with_checksums` block - Fix jq named capture groups: `(?P<name>...)` → `(?<name>...)` (Oniguruma syntax); `(?P<>...)` caused "Regex failure: undefined group option" errors - Fix asset name regex escaping: use `[.]` instead of `\\.` for literal dots build-pages.yml: - Remove redundant "Setup GitHub CLI" step (`gh auth login --with-token`); GH_TOKEN env var is sufficient for gh CLI authentication in Actions README.md: - Fix dead link to non-existent docs/plugin-authoring.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Adds a GitHub Pages–hosted, static JSON registry API for workflow plugins, generated from plugin manifests and GitHub Releases, and documents how plugin repos can notify the registry to rebuild on new releases.
Changes:
- Add
scripts/build-index.shandscripts/build-versions.shto generatev1/registry artifacts (index + per-plugin version metadata). - Add a
build-pages.ymlGitHub Actions workflow to build and deployv1/to GitHub Pages on push/dispatch/cron/manual triggers. - Update README with registry URL, submission flow, and the release-notification snippet.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 7 comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/build-pages.yml |
Builds and publishes the generated v1/ directory to GitHub Pages. |
scripts/build-index.sh |
Generates v1/index.json and copies per-plugin manifests into v1/plugins/<name>/manifest.json. |
scripts/build-versions.sh |
Queries GitHub Releases to generate versions.json + latest.json per plugin. |
templates/notify-registry.yml |
Provides a reusable repository_dispatch snippet for plugin repos to trigger rebuilds. |
README.md |
Documents the static registry API, submission process, and automatic version tracking setup. |
.gitignore |
Excludes generated v1/ artifacts from git. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+257
to
+262
| | Endpoint | Description | | ||
| |----------|-------------| | ||
| | `GET /v1/index.json` | All plugin summaries (name, description, version, capabilities, ...) | | ||
| | `GET /v1/plugins/<name>/manifest.json` | Full manifest for a specific plugin | | ||
| | `GET /v1/plugins/<name>/versions.json` | All release versions with download URLs | | ||
| | `GET /v1/plugins/<name>/latest.json` | Latest release version only | |
- build-versions.sh: log warnings instead of silently swallowing gh CLI errors - build-versions.sh: normalize repo URL (strip .git, trailing slash, extra paths) - build-pages.yml: add apt-get update before installing jq - build-index.sh: include workflowHandlers and wiringHooks in capabilities - templates/notify-registry.yml: recommend fine-grained PAT over full repo scope Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Author
|
All 7 Copilot review comments addressed in fe81ecd:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
scripts/build-index.shandscripts/build-versions.shto generate static JSON from plugin manifests + GitHub Releasesbuild-pages.ymlGitHub Action — triggered on push,repository_dispatch(plugin-release), daily cron, and manual dispatchtemplates/notify-registry.yml— reusable Action snippet for plugin reposRegistry URL
https://gocodealone.github.io/workflow-registry/v1/Endpoints:
/v1/index.json— full plugin catalog/v1/plugins/<name>/manifest.json— plugin manifest/v1/plugins/<name>/versions.json— all versions with downloads + checksums/v1/plugins/<name>/latest.json— latest versionTest plan
build-index.shgenerates validv1/index.jsonbuild-versions.shqueries GitHub Releases correctlyrepository_dispatchtriggers rebuild🤖 Generated with Claude Code