You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
harper preview: deploy, drop and list PR previews from any CI #3054
The component is named by PR number, not by slug. That keeps socket paths short, and renaming a branch moves the host but not the data branch. If another open PR already holds the slug, append -pr<n>.
Depends on
The payload-deploy (#3043), no-restart and scoped-permission sub-issues of #3042.
Update, 2026-10-07
The recipe in HarperFast/documentation#715 is the behavior this command should absorb, so that a workflow shrinks to one call:
Read the PR's current state, base branch and head SHA from GitHub, not GITHUB_SHA.
Deploy by_ref at that SHA, or deploy a published package.
Proposal
CLI subcommands that wrap the preview lifecycle, so GitHub Actions, GitLab or any other CI can use it.
harper preview deploy app=<component> label=<dns-label> pr=<n> branch=<name><component>-pr-<n>, withisolated,host,branchedDatabasesand preview metadata.harper preview drop pr=<n>andharper preview list.Slug rules. The slug is one lowercase DNS label:
[a-z0-9]becomes-, runs collapse, and leading and trailing-are trimmed.www,dev,stage,api, …) fall back topr-<n>.For example,
david/1778-custom-regionsbecomesdavid-1778-custom-regions.The component is named by PR number, not by slug. That keeps socket paths short, and renaming a branch moves the host but not the data branch. If another open PR already holds the slug, append
-pr<n>.Depends on
The payload-deploy (#3043), no-restart and scoped-permission sub-issues of #3042.
Update, 2026-10-07
The recipe in HarperFast/documentation#715 is the behavior this command should absorb, so that a workflow shrinks to one call:
GITHUB_SHA.by_refat that SHA, or deploy a published package.drop_component, and make dropping an absent component a no-op #3091 lets one call do it.