Appearance
Webhooks
Webhooks are how your Git provider notifies Nebion when repository events happen. Without a webhook, Nebion has no way to know when you create, update, or close a pull request — or when code is pushed to a branch.
How It Works
When you set up a webhook, your Git provider sends an HTTP request to Nebion every time a relevant event occurs. Nebion validates the request using a shared secret, then triggers the appropriate action:
| Event | Action |
|---|---|
| PR created or opened | Deploy a new environment |
| PR updated (new commits) | Redeploy the existing environment |
| PR merged or closed | Remove the environment |
| Push to branch | Redeploy manual environments with auto-deploy enabled |
Environments marked Protected are never deployed by these events — they deploy only via the Deploy button.
Each webhook uses a unique URL and secret generated when you create a project. You add these to your Git provider's settings along with a deploy key so Nebion can clone your code.
Supported Providers
Follow the setup guide for your provider:
- Bitbucket — Bitbucket Cloud
- GitHub — GitHub.com or GitHub Enterprise
- Gitea — Gitea or Forgejo (self-hosted)
All providers follow the same pattern: add a deploy key, create a webhook, and test with a pull request.
Rotating the Webhook Secret
If the secret may have leaked, or you rotate secrets on a schedule, generate a new one:
- Open the project and expand Setup on the Overview tab
- Next to Webhook Secret, click Regenerate and confirm with Regenerate secret
- Copy the new secret into your Git provider's webhook settings right away
The previous secret stops working the moment you confirm. Until your Git provider has the new value, Nebion rejects its push and pull request events (HTTP 400). The Regenerate button is shown only to the project's owner — the user who created the project.
Projects created before v1.12.2
If Webhook Secret shows Not generated yet, the project still relies on the legacy secret from before v1.12.2 through a transitional fallback. Click Generate, confirm with Generate secret, and update your Git provider — this closes the fallback for the project.