SECOPS

Require named security approvers when GitLab MRs touch critical paths

On every GitLab MR change, detect whether protected paths are modified and, if so, assign the designated security reviewers and post a blocking checklist comment so the MR can't…

CategorySecOps
Enginesim
Difficultyintermediate
Triggerwebhook
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab MR opened or updatedGitLabGitLab
  • ActionPull MR changed-file listGitLabGitLab
  • LogicMatch paths to protected categories; exit if none
  • ActionAssign mapped security reviewers + labelGitLabGitLab
  • OutputPost category-specific review checklist commentGitLabGitLab

What it does

This workflow enforces human security review for the paths that matter. When an MR is opened or updated, it inspects the changed files; if any fall under your protected-path list (secrets handling, RBAC config, network policy), it assigns the named security reviewers, applies a `needs-security-approval` label, and leaves a comment with a review checklist tailored to which sensitive area was touched.

When to use it

Use it when GitLab's built-in CODEOWNERS isn't expressive enough and you want path-specific reviewer routing plus an audit trail of what was flagged and why. Good for teams running review SLAs on a fixed roster of security engineers.

How it works

  1. 1A GitLab MR webhook fires on open or update.
  2. 2The flow pulls the changed-file list for the MR.
  3. 3A filter checks paths against the protected-path config and returns the matched categories.
  4. 4If nothing matched, the flow exits quietly.
  5. 5Otherwise it assigns the mapped security reviewers and adds the `needs-security-approval` label.
  6. 6It posts a category-specific review checklist as an MR comment.

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.