SECOPS

Gate GitLab MR merge until the assigned security reviewer acknowledges

Blocks a security-labeled merge request from being mergeable until the assigned reviewer clicks an acknowledgment in Slack, then flips the GitLab approval so merge can proceed.

CategorySecOps
Enginesim
Difficultyintermediate
Triggerwebhook
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab security-labeled MR opened or updatedGitLabGitLab
  • ActionApply blocking approval rule in GitLabGitLabGitLab
  • ActionSend Slack acknowledgment request to reviewerSlack
  • LogicBranch on Acknowledge vs Request-changes
  • ActionRecord approval and clear gate in GitLabGitLabGitLab
  • OutputPost sign-off confirmation to SlackSlack

What it does

A security label should mean a human actually looked, not just that a label exists. This workflow holds an MR in a non-mergeable state (via a blocking GitLab approval rule) until the assigned reviewer explicitly acknowledges in Slack, then releases the gate.

When to use it

Use it when compliance requires provable security sign-off before merge, and you want the acknowledgment captured as an auditable event rather than a casual thumbs-up.

How it works

  1. 1A GitLab webhook fires when an MR carrying a `security::*` label is opened or updated.
  2. 2An action applies a blocking approval rule and sets the MR to draft-blocked status in GitLab.
  3. 3A Slack interactive message goes to the assigned reviewer with Acknowledge and Request-changes buttons.
  4. 4A logic step waits for the button response and branches on the choice.
  5. 5On acknowledge, an action records the approval in GitLab and clears the blocking rule.
  6. 6A Slack confirmation posts to the channel with the reviewer name and timestamp.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect SlackChannels, DMs, threads, mentions.
  3. 3
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  4. 4
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  5. 5
    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.