ENGINEERING

Detect Orphaned Flags When a Flag-Removal MR Merges

Listens for merged GitLab MRs, and when one removes a feature flag from code, checks whether the flag still exists in the runtime registry.

CategoryEngineering
Enginesim
Difficultyintermediate
Triggerevent
Steps5
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerGitLab MR merged to default branchGitLabGitLab
  • LogicParse diff for deleted flag-key references
  • LogicExit if no flag keys were removed
  • ActionQuery Postgres for still-active flag definitionsPostgreSQLPostgres
  • OutputPost Slack orphan-flag archive reminderSlack

What it does

Reacts to merged GitLab merge requests. When a merge deletes references to a flag key from the codebase but the flag still exists as an active definition in the registry, it flags the mismatch: the code is gone but the config lingers, leaving an orphan that can confuse the next engineer.

When to use it

Use this when your flag cleanup involves two systems that drift apart: the code (in GitLab) and the live flag definitions (in Postgres or your flag service). Removing the conditional in code does not automatically retire the flag record. This catches that exact gap right at merge time, when context is freshest.

How it works

  1. 1A GitLab merge webhook fires when an MR lands on the default branch.
  2. 2Parse the diff to extract any flag keys whose references were deleted.
  3. 3Branch: if no flag keys were removed, exit quietly.
  4. 4For each removed key, query Postgres to check whether the flag is still defined and active.
  5. 5If the flag still exists, post a Slack message tagging the merger with a one-click link to archive it.
  6. 6Log the orphan resolution outcome for audit.

Set it up

What you configure once, before turning it on.

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