Skip to content
Stackship documentation Svenska

Stackship platformAdministrators

Deployment source settings

The installation settings deployment sources depend on — callback addresses, webhook delivery, and provider defaults — and what to check when pushes do not deploy.

Boundary owners connect deployment sources themselves — see Deployment sources. A few settings of the platform API decide whether those connections and their webhooks can work. They are environment variables of the platform API; the installer sets the first four.

Settings

Setting Installer sets it to Used for
Deployments__GitHub__ApiBaseUrl https://api.example.com The GitHub App's callback and webhook addresses
Deployments__GitLab__ApiBaseUrl https://api.example.com The GitLab OAuth redirect URI and project webhooks
Deployments__AzureDevOps__ApiBaseUrl https://api.example.com The Azure DevOps OAuth redirect URI and service hooks
Deployments__FrontendUrl https://portal.example.com Where users return to after connecting a source
Deployments__GitLab__BaseUrl — The GitLab used when a user leaves Base URL empty. The platform image's default is not gitlab.com; set it to the GitLab your users connect to
Deployments__AzureDevOps__TenantId — The Entra ID tenant used when a user leaves Tenant ID empty. Unset, an Azure DevOps OAuth connection without a tenant ID is refused

The platform image's built-in values for the ApiBaseUrl settings point at localhost, so an installation that does not set them gets callback and webhook addresses no Git host can reach. When one is set to an empty value, connecting GitHub, or GitLab or Azure DevOps with an OAuth application, fails, and builds go ahead without registering webhooks — the platform API logs a warning that it skipped them.

Fixed addresses

Address What calls it
https://api.example.com/sources/gitlab/validate GitLab, returning a user who approved an OAuth application
https://api.example.com/sources/azure-devops/validate Microsoft Entra ID, returning a user who approved an app registration
https://api.example.com/boundaries/<boundary-id>/sources/<provider>/webhooks The Git provider, delivering push and pull request events

Users register the two callback addresses in their OAuth applications. The webhook address is registered by the platform itself. It takes no sign-in: each delivery is authenticated with the source's own secret — GitHub's signature, GitLab's token header, and for Azure DevOps HTTP Basic authentication with the user name stackship and the secret as the password.

When pushes do not deploy

  • The Git host must reach https://api.example.com over HTTPS, with a certificate it trusts.
  • The credential must be allowed to create webhooks: a GitLab token needs the Maintainer role on the project.
  • For Azure DevOps, the user behind the token or the sign-in needs the Edit subscriptions and View subscriptions permissions for the project's service hooks, which by default only project administrators have.
  • A webhook the platform cannot create does not stop the build or show on the source: the platform API logs a warning and builds anyway. Look for those warnings when a source builds but never deploys on push.
  • A GitHub App keeps the webhook address it was created with. If the API's address changes, existing GitHub sources must be connected again.
  • GitLab and Azure DevOps webhooks are created when the platform builds from the project, so a source that has never been built from has none yet.