When a GitHub event arrives for a repo that’s part of a convoy, slipway reacts in two parallel ways:Documentation Index
Fetch the complete documentation index at: https://docs.slipway.sh/llms.txt
Use this file to discover all available pages before exploring further.
- Standalone deployment — if the repo is
slipway_enabledon its own, a regular deployment happens as usual. Unaffected by convoys. - Convoy reaction — described on this page. Spawns or updates the convoy instances that reference this repo.
Pull request events
When a PR opens, syncs, or closes, slipway routes it based on the action:| Action | What slipway does |
|---|---|
| Opened / reopened / marked ready for review | For every convoy with a component tracking the PR’s base branch in this repo, spawn a new convoy instance. Clone all components, variables, and secrets from the convoy. The matching component’s ref is overridden to the PR’s HEAD branch; the others stay frozen at the convoy’s tracked refs as of spawn time. Deploy. |
| Synchronized (new commits on the PR) | Find the existing instance for this PR. Redeploy just the triggering component at the new HEAD. Siblings are untouched. |
| Closed (merged or not) | Find the instance and tear it down. URLs go away, history stays in the deployments list. |
opened event, slipway notices the instance already exists and doesn’t create a duplicate.
Why “base branch”, not “head branch”?
Convoys track refs likemain (the trunk). A PR is a request to merge into a tracked ref. Matching on the PR’s base branch (where it’s targeted) is what makes “PR against main” trigger the convoy that tracks main.
Two PRs on the same repo
Each PR gets its own convoy instance. PR #42 and PR #99 on the same repo, both targetingmain, produce two separate instances with independent URLs and independent lifecycles. Closing PR #42 doesn’t affect PR #99.