Skip to content

feat: deploy and monitoring providers, with Sentry and Vercel - #7

Open
ricardogobbosouza wants to merge 7 commits into
v2from
feat/providers
Open

ricardogobbosouza wants to merge 7 commits into
v2from
feat/providers

Conversation

@ricardogobbosouza

Copy link
Copy Markdown
Member

Summary

  • Providers: the deploy action loads providers/<id>.sh (provider_settle_seconds, provider_check, provider_trigger, optionally provider_wait) and monitoring/<id>.sh for the deploy markers; the CLI describes each target in cli/providers/deploy/<id>.js and each monitoring service in cli/providers/monitoring/<id>.js. No behavior change for Forge, Laravel Cloud or Nightwatch.
  • Sentry: the relay accepts Sentry issue alerts (internal integration with Alert Rule Action, Sentry-Hook-Signature). project.yml takes monitoring (nightwatch, sentry or none); setup asks for it, registers the secret under the right relay provider and lists sentry/sentry-laravel.
  • Vercel: deploy: vercel creates a deployment of the exact commit through the API (VERCEL_TOKEN, VERCEL_PROJECT, optional VERCEL_TEAM_ID and VERCEL_TARGET), so rollbacks work as on Forge, and follows the build until it is ready instead of a fixed wait. Setup does not offer it yet (it comes with the js stack, feat: js stack for Next and Nuxt apps and JavaScript libraries, with the core plugin #8 on top of this one).

Stacked on #6: merge that first, then this one targets main. Non-breaking: released as a minor (v2.1.0).

Known limitations

  • Sentry's issue webhooks (resolved, archived) carry neither the environment nor a signed sending time, so the relay ignores them: issues opened from Sentry are closed in GitHub. No performance problems and no deploy markers from Sentry.

Test plan

  • npm test, npm run lint, relay tests, shellcheck, actionlint with the local workflow references
  • A Laravel project on Forge pointed at deploy.yml of this branch: deploy, health watch and a rollback still behave as today (Nightwatch markers included)
  • A real Sentry alert through the relay: signature accepted, environment read from the event, issue opened with the right env: label
  • A project with deploy: vercel (environments set by hand): deployment of the exact commit, wait until ready, health watch and a rollback

🤖 Generated with Claude Code

ricardogobbosouza and others added 3 commits October 29, 2026 10:34
- The deploy action loads providers/<id>.sh (provider_settle_seconds, provider_check, provider_trigger) for Forge and
  Laravel Cloud, and monitoring/<id>.sh for the deploy markers (Nightwatch); the release history, health checks,
  rollbacks and issues stay shared. A provider name that is not a script there stops the deploy.
- The CLI describes each deploy target in cli/providers/deploy/<id>.js, with the steps left to do by hand, and
  Nightwatch in cli/providers/monitoring/nightwatch.js; a stack lists the ones it offers.
- shellcheck also covers the provider scripts.

No behavior change for Forge, Laravel Cloud or Nightwatch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The relay accepts Sentry issue alerts (internal integration with Alert Rule Action): HMAC-SHA256 in
  Sentry-Hook-Signature, the event's environment and timestamp, the innermost frame of the app. Sentry's issue
  webhooks carry neither the environment nor a signed sending time, so they are ignored: issues are closed in GitHub.
- project.yml takes monitoring (nightwatch, sentry or none) and passes it to deploy, which names it in the issue of a
  failed deploy and marks deploys only in that service (Nightwatch on Forge).
- Setup asks for the app's monitoring service, registers the signing secret under its relay provider, skips the
  performance question for Sentry and lists sentry/sentry-laravel; check looks the relay up and the package for it.

Written from Sentry's documentation: the first real delivery still has to be checked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The deploy action creates a Vercel deployment of the exact commit through the API (VERCEL_TOKEN secret,
VERCEL_PROJECT and optional VERCEL_TEAM_ID and VERCEL_TARGET variables of the environment; the target is the
environment's name), so rollbacks work as on Forge, and follows the build until it is ready instead of a fixed wait.
A provider can now define provider_wait; the test curl can answer with a body.

Setup does not offer Vercel yet: the environments are set by hand until the JavaScript stack.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ricardogobbosouza and others added 4 commits October 29, 2026 14:47
# Conflicts:
#	cli/kinds/project/index.js
#	cli/test/check.test.js
#	cli/test/setup.test.js
#	docs/reference.md
…app guide

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Inspector's error notifications open the GitHub issues through the relay.
They carry no signature nor environment, so the relay stores one
application key per environment and the key in X-Inspector-Key names it.
Setup asks for each key and check reports the ones missing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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