Repository navigation
v2.7.0
v2.7.0 (2026-09-30)
This release is published under the Apache-2.0 License.
Bug Fixes
-
branching: Accept a 1.2 pre-release and drop the dead resolver-hook path (
d5c3244) -
branching: Answer the plugin's own JSON requests with a JSON refusal (
e3bd307) -
branching: Keep netbox-branching's queued messages off the anonymous refusal (
d3261f3) -
branching: Pass a view with no module name through the refusal middleware (
4f7c053) -
branching: Quote the branch name in the refusal message (
1883c97) -
branching: Read the branch header on API requests only, as upstream (
23d0b6c) -
branching: Refuse an anonymous caller without naming the branch (
da1b870) -
branching: Refuse in every policy entry helper before its first plugin read (
45e86b5) -
branching: Show the Device card notice without reading plugin data (
5cc9fb3) -
changelog: Snapshot NetBox objects before the plugin updates them (
20f7cc0) -
compat: Require NetBox 4.6.9 (
3e36997) -
graphql: Refuse a stale branch selector like the REST and UI views (
a18e452) -
jobs: Record import job changes in the NetBox change log (
fd3fd1a) -
migrations: Drop orphan tag assignments when the tags move is rolled back (
f71d52b) -
migrations: Move, not copy, the tag rows in the data migration (
8f7408d) -
plan: Keep Python error text out of the unreadable-plan message (
f255b0c) -
proposals: Fail a proposal whose job is refused inside a branch (
cd91369) -
release: Keep a released version's range in the compatibility matrix (
9a2ed8c) -
tags: Filter profiles and backends by tag and show their tags (
1aada6a) -
views: Lock the Device the field sync writes, and snapshot it there (
63b73da) -
views: Send no events for writes a sync view rolls back (
e373804)
Chores
-
deps: Bump the github-actions group with 3 updates (
a630ed1) -
deps-dev: Bump jsdom from 30.0.1 to 30.1.1 (
e528e19) -
deps-dev: Bump python-semantic-release from 10.6.2 to 10.7.0 (
3869b71) -
deps-dev: Bump ruff from 0.16.7 to 0.16.8 (
f182c25)
Code Style
- branching: Give the anonymous refusal card the in-layout card styles (
1787730)
Continuous Integration
-
Require full coverage of branching.py in the branching job (
e91d2af) -
Run the branching tests beside netbox-branching 1.2.1 (
4225ddc) -
branching: Run the full suite with netbox-branching installed (
29840f0)
Documentation
-
configuration: Limit the job change log note to NetBox objects (
3e77263) -
design: Ratify netbox-branching compatibility (
c3b824e) -
design: Record the snapshot fix in the netbox-branching design (
d71f718) -
design: State the netbox-branching versions the contract covers (
27b7b20) -
readme: State the NetBox 4.6.9 floor in the trace sentence (
28a5ff6)
Features
-
branching: Fake the data migrations on a branch migrate (
2285945) -
branching: Keep a core delete in a branch out of main's plugin rows (
c726dcf) -
branching: Refuse every plugin entry point inside a branch (
eb78475) -
branching: Refuse reverts that cannot restore plugin data (
5a263e6) -
branching: Refuse to start beside netbox-branching older than 1.2 (
d777a45) -
tags: Store profile and backend tags as NetBox tag assignments (
ea0e517) -
ui: Add a Filters tab to the profile and AI backend lists (
1ea35ce)
Performance Improvements
- import: Snapshot a saved Device only when a save follows (
72dbaf0)
Refactoring
-
branching: Choose the refusal format with NetBox's is_api_request (
98c5f4c) -
migrations: Split the tags move into a data and a schema migration (
ebee623)
Testing
-
Keep the other plugins' settings in a PLUGINS_CONFIG override (
47c6891) -
Refuse a PLUGINS_CONFIG override that can drop a plugin entry (
3f1301f) -
branching: Keep the base netbox-branching settings in the test settings (
a22cc1a) -
branching: Make the base-settings check fail when it has nothing to compare (
e2b2050) -
branching: Refuse a plugin foreign key to a branchable plugin model (
7c9b2b8) -
branching: Skip the branching modules on one installed-app fact (
6215d59) -
changelog: Check many-to-many changes in the snapshot guard (
6f857f9) -
changelog: Share the webhook event rule fixture (
be76a56) -
filters: Search import profiles by name through the inherited q filter (
325fbab) -
migrations: Refuse a faked migration that holds schema operations (
289c2bf) -
migrations: Restore the leaf through the shared helper (
f8bbf2f) -
release: Pass the bumped version to the generator instead of patching its reader (
2679b9f) -
tags: Check only the model checks for a tags clash (
d89ef2b)
Detailed Changes: v2.6.0...v2.7.0