Skip to content

Workflows tab: marketplace and GitHub workflows - #364

Merged
mattshax merged 1 commit into
mainfrom
workflow-sources
Oct 2, 2026
Merged

mattshax merged 1 commit into
mainfrom
workflow-sources

Conversation

@mattshax

@mattshax mattshax commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Workflows tab: marketplace and GitHub workflows (#364)

A Studio's workflow collection was limited to workflows saved on its account. An entry can now be any of three kinds, the same forms pw workflows run accepts:

Entry Runs
name a workflow saved on the account, as before
marketplace/<slug> the marketplace workflow by slug, with no copy in anyone's account
github.com/<owner>/<repo>[/path][@ref] the workflow.yaml in that repository, directory, or named file, with no copy in anyone's account

Settings, Workflows lists the account's workflows as before, the marketplace's workflow items below them (both filtered by the same box), and a From GitHub field. Adding a GitHub entry first reads its workflow.yaml and refuses it with the reason if it cannot. The settings write validates every entry against the three forms (server/src/workflowEntries.ts, shared with the routes) and drops anything else, including .. segments and other hosts.

Definitions. Account workflows come from pw workflows get, marketplace ones from pw marketplace get <slug> --yaml with their name, description, and icon from pw marketplace ls (cached five minutes), and GitHub ones from the repository's raw file (workflow.yaml, then workflow.yml). The CLI cannot print a repository's YAML, so the form for a private repository cannot be shown; the run still goes through pw workflows run, which reads private repositories through the platform's connected account. A GitHub tile's icon is the repository's thumbnail.png by the platform's convention, and a tile whose icon is missing or fails shows its initial.

Routes move from /api/workflows/:name/... to /api/workflows/item/{form,icon,run,install}?w=<entry>, since entries contain slashes. Install answers 409 for marketplace and GitHub entries, and the tab offers it only for account workflows.

Verified against a live platform with one entry of each kind: tiles with icons; forms for all three; a GitHub dry run validated by the platform; the catalog listing 76 account and 99 marketplace workflows. New tests: entry parsing and refusal, raw URLs, tiles, forms (including a missing repository), runs passing the entry to the CLI as written, install refused for non-account entries, and the settings write. 213 server and 53 web tests pass.

@mattshax
mattshax merged commit d20b50f into main Oct 2, 2026
2 checks passed
@mattshax
mattshax deleted the workflow-sources branch October 2, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant