SECOPS

Auto-triage and label sensitive GitLab MRs with a security agent

An agent reads each newly opened merge request, judges its security sensitivity from the diff and description, applies the right security labels.

CategorySecOps
Enginepaperclip
Difficultyadvanced
Triggerwebhook
Steps6
Setup~25 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab merge request openedGitLabGitLab
  • ActionFetch MR diff, title, and descriptionGitLabGitLab
  • LogicAgent classifies sensitivity tierOpenAI
  • LogicBranch sensitive vs low-risk
  • ActionApply labels and assign reviewer poolGitLabGitLab
  • OutputComment classification rationale on MRGitLabGitLab

What it does

Replaces manual security triage with an agent that reads the full context of every new merge request, the diff, title, and description, and decides its sensitivity. It applies the appropriate `security::*` labels (crypto, authn, pii, infra, or none), writes a short rationale comment, and assigns the matching reviewer group when the change is sensitive.

When to use it

Use it when MRs arrive unlabeled and humans inconsistently flag what actually needs security review, so risky changes slip through as ordinary work. The agent gives every MR a consistent, explained classification on arrival.

How it works

  1. 1A GitLab webhook fires when a merge request is opened.
  2. 2The agent fetches the diff, title, and description for the MR.
  3. 3It reasons about which sensitive surfaces the change touches and assigns a sensitivity tier with a rationale.
  4. 4A branch separates sensitive MRs from low-risk ones.
  5. 5For sensitive MRs it applies labels, comments its reasoning, and assigns the right reviewer pool in GitLab; low-risk MRs get a `security::reviewed-auto` label and a closing note.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect OpenAIModels, embeddings, files.
  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.