What is a deploy hook?
When pull requests merge to your default branch, Coderbuds posts a "ready to deploy" message to Slack that lists everything waiting on a production deployment. Add a deploy hook URL to a repository and that message gains a Deploy now button — one click triggers your deployment, no context switch needed.
How it works
- You paste a deploy hook URL into a repository's settings (Team settings → Repositories → Configuration → Deploy hook).
- The next time the ready-to-deploy message updates, it includes a Deploy now button.
- Clicking the button asks for confirmation, then Coderbuds sends a single
POSTrequest to your hook URL. - Your platform builds and deploys. When Coderbuds sees the successful production deployment, the message flips to "deployed".
Where to get a hook URL
Laravel Forge
Open your site in Forge → App tab → copy the Deployment Trigger URL. Requesting it runs your site's deploy script.
Envoyer
Open your project → Settings → Deployment Hooks → copy the deployment trigger URL.
Laravel Cloud
Open your application's production environment → Settings → copy the Deploy Hook URL.
A plain POST deploys the latest commit on the environment's branch.
Deploying via GitHub Actions
If your production deploy runs through a GitHub Actions workflow, choose GitHub Actions as the deploy trigger instead of a hook URL.
Coderbuds lists the repository's manually dispatchable workflows (those with a workflow_dispatch trigger),
and lets you pick one and fill in the input values it should send with every deploy — booleans, choices and defaults come straight from the workflow file.
This route has a bonus over a raw platform hook: when your workflow's deploy job declares a GitHub environment
(e.g. environment: production), GitHub records every run as a deployment.
Coderbuds picks that up automatically, so the Slack message flips to "deployed" the moment the run succeeds.
A raw platform hook (e.g. calling Laravel Cloud directly) deploys just the same, but bypasses GitHub — Coderbuds can't see when it finishes
unless the platform reports back through the inbound deployment webhook below.
Inbound deployment webhook
Deploys that don't go through GitHub — Laravel Cloud's deploy center, Forge quick deploys, Envoyer, or a custom CI script — are invisible to Coderbuds by default. The inbound deployment webhook closes that gap: point your platform's "deployment finished" hook at Coderbuds and every deploy is recorded, feeds your DORA metrics, completes the ready-to-deploy Slack message, and associates the deployed pull requests automatically.
Mint a per-repository token (ask us, or run it yourself if you self-host):
php artisan repositories:inbound-deploy-token owner/name
The command prints a ready-to-use URL of the shape
POST /api/deploy-events/{repository}/{token}.
Pass --rotate to replace a token that may have leaked.
A plain POST with no body records a successful production deploy;
an optional JSON body refines the record:
environment— defaults to the repository's production environment.status—success(default),failureorerror.sha— the deployed commit, used to link the deploy to its pull requests and to de-duplicate webhook retries.description— free-text note shown alongside the deployment.deployer_email— when it matches a team member's Coderbuds account, the deploy is attributed to that person on the deployments-by-person leaderboard.
The token is encrypted at rest and is the only credential the endpoint accepts — a wrong or missing token simply returns 404. Replaying the same deploy (same commit and environment) within five minutes returns the original record instead of counting it twice.
Security
- The hook URL is encrypted at rest and never displayed again after saving.
- Only Slack users linked to a team member can trigger a deploy, and every click shows a confirmation dialog first.
- Repeated triggers within 10 minutes are rejected, so an accidental double-click can't deploy twice.
- The Slack message records who triggered each deploy.