Skip to content

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:

EventAction
PR created or openedDeploy a new environment
PR updated (new commits)Redeploy the existing environment
PR merged or closedRemove the environment
Push to branchRedeploy 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:

  1. Open the project and expand Setup on the Overview tab
  2. Next to Webhook Secret, click Regenerate and confirm with Regenerate secret
  3. 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.