SECOPS

Block GitLab merge requests that introduce live secrets

Scans the diff of each GitLab merge request, verifies any detected secret is active.

CategorySecOps
Enginesim
Difficultyadvanced
Triggerevent
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab merge request eventGitLabGitLab
  • ActionFetch MR added lines from GitLab APIGitLabGitLab
  • LogicDetect candidate secrets in additions
  • LogicVerify liveness and decide pass or fail
  • ActionComment inline and set pipeline status failedGitLabGitLab
  • OutputBlock merge until recheck passesGitLabGitLab

What it does

This workflow runs as a gate on GitLab merge requests. It scans only the MR's changed lines for credentials, verifies whether each detection is a live secret, and if so fails the merge check and posts an inline comment pinpointing the file and line. Clean MRs pass untouched.

When to use it

Use it as a hard preventive control: stop leaked secrets at the merge boundary instead of cleaning them up after they land. Best for teams that enforce required status checks and want a blocking gate rather than an after-the-fact alert.

How it works

  1. 1A GitLab merge request event triggers the workflow.
  2. 2An action fetches the MR changes (added lines only) from the GitLab API.
  3. 3A scan step detects candidate secrets in the additions.
  4. 4A logic branch verifies liveness and decides pass or fail.
  5. 5On a verified leak, an action posts an inline MR comment at the offending line and sets the pipeline status to failed.
  6. 6The output blocks merge until the secret is removed and the recheck passes.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  3. 3
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  4. 4
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.