| title | Home | |
|---|---|---|
| description | Policy-driven change control and mandatory review for NetBox branches. | |
| hide |
|
:netbox-change-control-wordmark:{ .ncc-hero__logo }
Policy-driven change control and mandatory review for NetBox branches { .ncc-hero__tagline }
change requests • policies • checks • comments { .ncc-hero__meta }
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.
-
:material-clock-fast:{ .lg .middle } Install it
Two entries in
PLUGINS, one migration, and every setting explained. -
:material-account-check:{ .lg .middle } Decide who approves
A policy matches the objects a branch touches and names the reviewers it needs.
-
:material-shield-check:{ .lg .middle } Gate the merge
Pre-merge checks block a merge on their own, whoever has approved it.
-
:material-puzzle:{ .lg .middle } Extend it
Write your own check, or drive a change request from an external system.
- Someone creates a branch and makes their changes inside it, as normal for netbox-branching.
- They open a change request against that branch.
- 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.
- Each policy contains rules. A rule says how many approvals it needs and who may give them.
- Reviewers approve, request changes, or comment. They can also comment on one specific changed object.
- Independently, the pre-merge checks named by those policies run. A required check that is not passing blocks the merge on its own.
- Once every rule is satisfied and every required check passes, the merge button appears.
- After the merge, the request is marked completed.
!!! info "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.
New here? Read Installation and configuration, then Policies and rules. Everything else can wait until you need it.
| Component | Version |
|---|---|
| NetBox | >= 4.7.0, < 4.8 |
| netbox-branching | >= 1.2.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](https://netboxlabs.com/docs/changes/) 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](changelog.md) before you upgrade.
