Deployer
User guide

Configure a workspace

The five configuration sections, from the workspace name to the variables of each environment, and what each changes.

Checked in the application on September 5, 2026

Who can Administrator

The configuration is the only place where a workspace’s settings are written once it is in service. The wizard does the same work once, in order; the configuration does it again cold, section by section, in no imposed order. It is reserved to the workspace administrator: other roles are sent back to the workspace home. Until GitLab is connected, the tab leads to the wizard.

The configuration. The sidebar already says, under each section, what needs attention.
The configuration. The sidebar already says, under each section, what needs attention.
The Configuration screen: the sidebar with the five sections on the left, the General section open on the right

Drag to pan the screenshot

The sidebar carries five sections. Under each name, a line sums up the state: “Connected” or “Token expires in 12 days”, “6 projects”, “4 branches · 3 env.”. Only the GitLab connection section carries a warning, when the token expires in less than thirty days or when there is no connection: it is the only failure that stops the whole workspace. On a small screen, the sidebar becomes a row of tabs above the panel.

Two sections, General and Branches and environments, have a “Save” button and an “Unsaved changes” badge. Leaving the section or the page with pending changes asks for confirmation. In the other three, every action is sent immediately.

General

Identity, naming conventions, integration key. On the right, two read-only cards: “Workspace state” (connection, mode, main branch, projects, environments, members, token expiry) and “History” (created on, last modified).

Identity

  • Workspace name and Description (500 characters): what members see on the home page and in the header.
  • Identifier: immutable, read-only, but selectable and copyable. It is the one that appears in URLs and API calls.
  • Deployment mode: read-only, set at creation.
  • Main branch: read-only, with a “Change” button that sends you to the Branches and environments section, where the choice is made among the tracked branches that do not deploy.
  • Enable the Features screen: the module’s switch. Off, the tab disappears and the product owner can no longer validate; on again, the screen comes back intact.

Naming conventions

Three cards, one per screen they govern. Each pattern shows a resolved example under the field.

The convention cards. Each pattern shows its resolved example.
The convention cards. Each pattern shows its resolved example.
The Hotfixes and Features cards of the General section: the maintenance branch pattern, the hotfix branch pattern, the name without an issue, the Features screen switch

Drag to pan the screenshot

CardFieldWhat it does
DeploymentTag name patternThe name of the tags Deployer creates. The {version} token is required, without it every release would carry the same name. In branch mode, {branch} is available too.
HotfixesMaintenance branch patternTag mode only. The branch created from the tag on the first hotfix of a running version. {version} token required.
HotfixesHotfix branch patternThe name suggested for a hotfix branch. The {issue} token is optional: replaced by the issue number, removed when there is none.
HotfixesBranch name without an issueWhat replaces {issue} when no issue is resolved: three random words, or the title of the first selected commit.
FeaturesFeature branch prefixThe beginning of the branch names the Features screen examines, feature/ by default. The issue reference is read from what follows.

The integration key

A secret to authenticate incoming calls to the workspace, distinct from the identifier, which is public. “Generate a key” shows it once; afterwards it stays hidden, and “Show key” reveals it on demand. “Regenerate” replaces the old one, which stops working immediately; “Revoke” removes it without creating another. Each action goes through a confirmation.

GitLab connection

The instance and the token Deployer uses to act on your repositories. The form on the left, the state card and the “Which token should I create?” help on the right.

The GitLab connection section. The token is never shown again: only its prefix is visible.
The GitLab connection section. The token is never shown again: only its prefix is visible.
The GitLab connection section: the locked token with its prefix, the optional OAuth application below, the connection state on the right

Drag to pan the screenshot

  1. Read the state

    The card on the right says whether the connection is operational, the bot account, the scopes read from GitLab and the date of the last check. A token expiring in less than thirty days is announced above the fields, with the date: on expiry, the whole workspace stops working.

    The connection state card
  2. Test

    “Test” replays the connection and updates the state card. The verdict is in the card, not only in the notification.

    The Test button
  3. Replace the token

    “Replace” opens editing: the instance URL becomes editable again too, because GitLab requires both together. “Verify and replace” tests the new token before saving it; the old one stays active until the new one is validated. Changing the instance unlinks the projects and removes the issue sources: a GitLab id only makes sense on its instance.

    The Replace button and the new token field
  4. Delete the connection

    In the danger zone at the bottom. Deleting the connection unlinks every project of the workspace; tracked branches are kept.

    The Delete connection button

Personal GitLab accounts (optional)

The Personal GitLab accounts block, and the danger zone below it.
The Personal GitLab accounts block, and the danger zone below it.
The bottom of the Personal GitLab accounts block: the application ID and secret, the bot fallback switch, and the danger zone with Delete connection

Drag to pan the screenshot

Under the form, a block marked “Optional”. Without a declared application, everything Deployer writes to GitLab is written by the token’s account. With one, each member can link their own GitLab account from “My GitLab account”, and their hotfixes then carry their name and their rights.

  1. Create the application in GitLab

    Copy the Redirect URI shown, then create an application in your GitLab group (Group, Settings, Applications) with that URI and the api scope, nothing else: write_repository does not cover the API, and hotfixes would fail.

    The redirect URI, with its copy button
  2. Fill in the application

    Application ID and Application secret as GitLab provided them. A saved secret is no longer shown: leaving the field empty keeps it, typing a new one replaces it.

    The Application ID and Application secret fields
  3. Choose the fallback

    “Act as the bot when no account is linked”: on, a member without a linked account goes through the token; off, they cannot create a hotfix until they have linked their account.

    The Act as the bot when no account is linked switch

Linked projects

Two columns: on the left the repositories attached to the workspace, on the right those the token can see on GitLab.

The Linked projects section. You see what you have while you choose.
The Linked projects section. You see what you have while you choose.
The Linked projects section: the attached projects on the left, the GitLab catalogue on the right

Drag to pan the screenshot

  • Link: tick in the right column, then “Link N projects” in the header. All or nothing: if GitLab refuses one project, none is linked and the offender is highlighted. An already linked project cannot be selected.
  • Order: drag the projects on the left. The order is only a display order, nothing depends on it.
  • Synchronise: rereads the metadata of every linked project. A failing project is listed, but stays linked; it is up to you to unlink it.
  • Unlink: on a row, behind a confirmation. The project becomes available again on the right. Nothing is touched on GitLab.

Pipeline variables

On recent projects, GitLab refuses by default the pipeline variables sent through an API, and a tag-mode release then fails on a rights error nothing explains. The section sees it before the failure: a “Variables refused” badge on the repositories concerned, and an alert above the list with an “Open on N projects” button that lifts the setting, behind a confirmation, wherever the bot is a Maintainer. Repositories where it is not are counted separately: no button will save them, the bot’s rights must be widened first. A repository marked “Unreadable” could not be diagnosed; it is not a failure of the screen.

Branches and environments

The densest section, and the only one that changes shape with the mode: “Branches & environments” in branch mode, “Environments” in tag mode. A list on the left, the detail of the selected row on the right.

The Branches and environments section. The foot of the list draws the allowed flows, source to target.
The Branches and environments section. The foot of the list draws the allowed flows, source to target.
The Branches and environments section: the list of tracked branches on the left with the flows, the detail panel of an environment on the right

Drag to pan the screenshot

The list

  1. Add a row

    The field at the bottom of the list creates a tracked branch in branch mode, an environment in tag mode, and opens the created row at once: an added branch is nothing yet until it is configured.

    The add field and its Add button
  2. Order

    Drag the rows: the order of the list is the promotion order.

    The drag handle of a row
  3. Configure, then save

    The right panel is edited on several fields at once, then “Save” sends everything. The bar at the top of the detail stays visible while scrolling, with the “unsaved” badge. Switching rows with pending changes asks for confirmation.

    The detail bar with the unsaved badge and the Delete, Cancel, Save buttons

The detail panel

What it shows depends on the row and on the mode.

FieldMain branchTracked branch aloneEnvironment (branch mode)Environment (tag mode)
Git branch nameyesyesyesno
“This branch is a deployment environment”noyesyesno
Environment name and descriptionnonoyesyes
Allowed source branchesnonoyesno
Variablesnonoyesyes
Labelsnonoyesyes
Actionsnonoyesyes
“Set as main”noyesnono
Deletenoyesyesyes
  • Git branch name: case matters. Renaming here does not rename the branch in your repositories, do it on the GitLab side first. The environment name, on the other hand, is a label shown instead of the Git name in the history.
  • Allowed source branches (branch mode): the branches a copy can start from towards this target. Without any source, the environment cannot be deployed, and the tile on the Deployments screen says so.
  • Set as main: reserved to a tracked branch that does not deploy, behind a confirmation. Environments keep their source branches.
  • Delete removes the environment, then the branch.

Variables

Key and value pairs, both accepting tokens. In branch mode they are written on the GitLab project before the branch copy; in tag mode they are passed to the release pipeline, and nothing is left on the project. The list of available tokens is shown under the block, and it depends on the mode:

TokenWhat it holdsMode
{version}The version number typed at deploymentboth
{environment}The name of this environment, as typedboth
{environment_slug}The same name, without accents or capitals, for what GitLab refuses as a labelboth
{date}The deployment timestamp, ISO formatboth
{description}The description typed at deploymentbranch
{branch}The target branch, the one overwrittenbranch
{ref}The source branch, the one copiedbranch
{tag}The tag being releasedtag

Labels

The labels and actions of an environment, under its variables.
The labels and actions of an environment, under its variables.
The bottom of an environment panel: the cluster and tenant labels, then the actions with one declared button

Drag to pan the screenshot

Key and value pairs carried by the environment, which give the grid of the Deployments screen its grouping and filtering axes: tenant=acme, region=eu-west-1. They never go into a pipeline; that is what sets them apart from the variables just above, and why the block is separate.

  • The key suggests the axes already used in the workspace, so as not to create tenant, client and customer for a single idea. The value is free.
  • Lowercase letters, digits, dot, dash and underscore only. Capitals are lowercased as you type; spaces, accents, comma and colon are refused, because they would make the filter URL ambiguous.
  • An environment carries at most one value per axis. Removing the last label of an axis makes the axis disappear from the grid’s controls.

Actions

Manual buttons the Deployments screen shows in this environment’s panel: an HTTP call triggered by hand, to rebuild an index, flush a cache, restart a service. “Add an action” asks for a button name, a description (shown in the confirmation before running), the method, the URL, headers and a body sent as is. The URL, the headers and the body are encrypted and visible to administrators only. Each action shows its last run and its outcome: succeeded, failed, no response, blocked. Deleting an action takes its history with it.

Issue sources

The GitLab groups and projects where the Hotfix screen looks for issues when you type in its field. Same shape as Linked projects: declared on the left, available on GitLab on the right, with two tabs, “Groups” and “Projects”.

The Issue sources section. A group covers all its projects in a single call.
The Issue sources section. A group covers all its projects in a single call.
The Issue sources section: the declared sources on the left, the groups available on GitLab on the right

Drag to pan the screenshot

  • Group: covers all its projects in a single call. The economical choice, as soon as a group gathers your boards.
  • Project: itself only. When the boards are scattered under different subgroups with no accessible common parent.
  • Fifteen sources at most: each one is a GitLab call on every search.
  • An already linked project can still be selected here: carrying issues and being deployed are two independent roles.

Two more sections, depending on the modules

The sidebar gains an “Assembly” entry when you want to enable the assembled branch (module, branch name, orchestrator project, token, webhooks: see The assembled branch), and an “Artificial intelligence” entry for the assisted writing of release notes: a provider (Anthropic, or OpenAI and any compatible backend), an API key, a model. “Test” checks the key without consuming anything and lists the reachable models; the key never comes back out, replacing it means typing it again. Without a connection, the written note stays possible by hand.

The Artificial intelligence section. The key never comes back out, only its preview is shown.
The Artificial intelligence section. The key never comes back out, only its preview is shown.
The Artificial intelligence section: the provider, the key preview, the model, and the Valid connection state

Drag to pan the screenshot

Delete the workspace

At the foot of the sidebar, the danger zone carries “Delete workspace”. The confirmation asks you to retype the name. Members, connection, tracked branches and environments go with it; nothing is touched on GitLab.