Skip to content

Home

Policy-driven change control and mandatory review for NetBox branches

change requests • policies • checks • comments

This plugin builds on netbox-branching. A branch stages your changes; this plugin decides who must approve them and refuses the merge until they have.

A change request, showing the approval status, the pre-merge checks and the conflict banner

How it works

  1. Someone creates a branch and makes their changes inside it, as normal for netbox-branching.
  2. They open a change request against that branch.
  3. The plugin reads which object types the branch touches and attaches every policy whose scope matches. A policy can narrow further on the values of the objects themselves. The author cannot remove them.
  4. Each policy contains rules. A rule says how many approvals it needs and who may give them.
  5. Reviewers approve, request changes, or comment. They can also comment on one specific changed object.
  6. Independently, the pre-merge checks named by those policies run. A required check that is not passing blocks the merge on its own.
  7. Once every rule is satisfied and every required check passes, the merge button appears.
  8. After the merge, the request is marked completed.

Important

Two gates guard the merge and they are independent: the people gate (policies and reviews) and the machine gate (checks). A change can be approved by every reviewer and still be refused by a check.

Where to go next

New here? Read Installation and configuration, then Policies and rules. Everything else can wait until you need it.

Setting up Day to day Gating a merge Reference
Installation and configuration Policies and rules Pre-merge checks Automatic behaviours
Administration guide Policy conditions Writing your own checks REST API
Permissions Change requests Event rules Extending this plugin
Reviews Merging, windows and auto-merge Design
Compatibility matrix Conflicts with main Protecting main Changelog

Requirements

Component Version
NetBox >= 4.7.0, < 4.8
netbox-branching >= 1.2, < 1.3
Python >= 3.12

This is the NetBox 4.7 line. For NetBox 4.6, stay on the 0.4.x line; the two do not overlap, because netbox-branching 1.1.x and 1.2 do not either. The compatibility matrix has every release, and Installation covers moving between the two lines.

Note

Independent community plugin. Free, MIT licensed, not official, not certified and not endorsed by NetBox Labs. It bundles no netbox-branching code. You install that package yourself, and its own licence governs how you may use it.

There is no commercial support. If you need a supported product, use the NetBox Labs change management plugin.

Warning

Not stable yet. The version is below 1.0. Models, settings and the REST API can still change between releases. Read the changelog before you upgrade.