GitLab AST Orchestrator
The Conviso Platform GitLab AST Orchestrator runs Conviso AST from one GitLab project (the orchestrator). Application projects do not need a Conviso CI file.
When an eligible merge request is merged, Conviso triggers a pipeline on the orchestrator and passes the target repository and branch. The job obtains a short-lived clone credential from the Platform (using your API key), clones the target repository, runs conviso ast run, and sends findings to the mapped asset.
You do not store a GITLAB_TOKEN or other clone PAT on the orchestrator β only CONVISO_API_KEY.
How it worksβ
What Conviso checks before dispatching:
- The event is a merge request that was merged.
- AST scans on merge is enabled on the GitLab integration.
- The repository is an imported asset that is enabled.
- The MR target branch matches the configured merge target (see Merge target branch below).
The pipeline always appears on the orchestrator project (not on the application project).
Execution costs: Pipelines run on your GitLab runners and consume your CI minutes.
Before you beginβ
Work in this order: GitLab setup first, then Conviso Platform.
You need:
- GitLab ALM integration connected (OAuth).
- At least one application project imported as an asset and enabled.
- A dedicated orchestrator project (or an empty project you will use only for this). Example / template: convisoappsec/pipeline-orchestrator.
- Permission to set CI/CD variables and create pipelines on the orchestrator (see Pipeline variables policy).
- A Conviso API key for the same environment you will scan against (production or staging). Its profile needs Integrations β Manage and Write results to the platform; an Admin has both. See Required permissions.
| Term | Exact meaning |
|---|---|
| Orchestrator project | GitLab project that contains .gitlab-ci.yml. Conviso triggers this project only. |
| Target repository | Application project imported as an asset. It must not rely on a local Conviso CI file for this flow. |
| Ref | Branch or tag of the orchestrator where GitLab loads .gitlab-ci.yml when Conviso creates the pipeline. |
| Merge target branch | The MR target branch on the target project that is allowed to trigger a scan (for example main). See below. |
| Asset | Imported repository in Conviso (group/project path) where findings are stored. |
Merge target branchβ
Conviso compares the merged MRβs target branch to:
- The assetβs configured AST / branch mapping, if set; otherwise
- The integration Ref (
orchestrator_ref/ pipeline ref).
| Configuration | What triggers a scan |
|---|---|
Asset branch = master, Ref = main | Only merges into master on that asset |
Asset branch empty, Ref = main | Only merges into main on that asset |
| Asset branch empty and Ref empty | No branch filter (any target branch can trigger). Prefer setting Ref explicitly. |
Ref is still the orchestrator branch that holds .gitlab-ci.yml. It is reused as the default merge-target filter when the asset has no branch of its own. Those are two roles of the same field β do not confuse βwhere the CI file livesβ with βany branch on the targetβ.