ENGINEERING

Auto-map affected modules on a GitLab merge request

When a merge request opens, it inspects the changed files, groups them into the modules and owning teams they touch, and posts a clear affected-module map as an MR note.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerwebhook
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab MR opened or updated webhookGitLabGitLab
  • ActionFetch changed files for the MRGitLabGitLab
  • ActionClassify files into modules and ownersShell
  • LogicDedupe modules, flag high blast radius
  • OutputPost affected-module map as MR noteGitLabGitLab

What it does

Every time a merge request is opened or updated, this workflow reads the MR diff, maps each changed file to a logical module (using your repo's directory-to-module rules), and posts a tidy note listing which modules and owning teams the change touches. Reviewers see blast radius at a glance instead of scrolling raw file lists.

When to use it

Use it on any monorepo or large service where file paths don't obviously map to ownership, and where reviewers waste time figuring out what a change actually affects. Especially useful when CODEOWNERS alone isn't expressive enough.

How it works

  1. 1A GitLab merge-request webhook fires on open/update.
  2. 2The workflow fetches the list of changed files for that MR via the GitLab API.
  3. 3A shell step runs your path-to-module rules to classify each file into a module and owning team.
  4. 4A logic step deduplicates the modules and flags any change that crosses more than three modules as high blast radius.
  5. 5It posts a formatted affected-module map as a note on the MR, tagging the relevant team handles.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect GitLabRepos, MRs, pipelines, registry.
  2. 2
    Connect ShellRun sandboxed commands inside the workspace.
  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.