- Add schema-driven module type property detection and component comparison (#64,
2af54a0) - Update module type scalar properties (e.g. part_number) on --update (#64,
2af54a0) - Module change detection and diff-u report without --update (#64,
2af54a0) - Display none and empty string consistently in diff-u output (#64,
2af54a0) - Resolve all pre-commit issues (#64,
2af54a0) - Upload module-type images before scalar patch in existing-module path (#64,
2af54a0) - Three module change detection bugs (#64,
2af54a0) - Apply component changes for existing module types during --update (#64,
2af54a0) - Remove module_bay_templates from _no_module_type for idempotent caching (#64,
2af54a0) - Retry transient graphql connection errors and fix module type change report ordering (#64,
2af54a0) - Catch graphqlerror and netboxrequesterror with user-friendly messages (#64,
2af54a0) - Detect and skip duplicate (manufacturer, model) yaml definitions (#64,
2af54a0) - Apply --remove-components for module types and reject argparse abbreviations (#64,
2af54a0) - Address pr review findings and add coverage tests (#64,
2af54a0) - Address second-round coderabbit review findings (#64,
2af54a0) - Ruff format/c901 (#64,
2af54a0) - Defer module_type_properties loading; tighten mock shapes (#64,
2af54a0) - Address pr review round 9 findings (#64,
2af54a0) - Round-10 cr fixes: narrow except, preload guard, test hardening (#64,
2af54a0) - Re-raise preload errors instead of swallowing and caching empty records (#64,
2af54a0) - Defer module_updated accounting to post-component-reconciliation (#64,
2af54a0) - Count scalar success when component removals skipped + update docs (#64,
2af54a0) - Treat all-failed component api calls as a failure, not cached (#64,
2af54a0) - Distinguish partial from full component reconciliation via delta/count (#64,
2af54a0) - Exclusive module outcome counters, partial rendering, resolver sentinel + doc (#64,
2af54a0) - schema_reader: Use explicit allowlist for scalar property detection (#64,
2af54a0) - Accurate applied counts in log, module failure outcomes, and test hardening (#64,
2af54a0) - Correct module outcome reason and harden test assertions (#64,
2af54a0)
- Ruff format (#64,
2af54a0) - deps: Bump the python-deps group with 2 updates (#63,
db057ab) - deps: Bump gitpython from 3.1.46 to 3.1.47 (#62,
2341906)
- Round-11 cr fixes — update docstrings for 3-tuple return and per-page callback (#64,
2af54a0)
- Schema-driven property comparison for device/module types (#64,
2af54a0) - Full component comparison for module types with description/color/rf_role coverage (#64,
2af54a0) - Validate graphql component fetch counts against rest api (#64,
2af54a0) - Graphql count mismatch retry logic, 100% docstring coverage (#64,
2af54a0)
- Extract shared diff-u formatter into core/formatting.py (#64,
2af54a0) - Reuse changedetector instance via lazy cached property (#64,
2af54a0) - Remove power-port singular alias entirely (closes #67) (#64,
2af54a0)
- Tighten pending-removal and rack-type summary assertions (#64,
2af54a0)
@dependabot[bot], @marcinpsk
- Centralize _unknown_src sentinel and fix coercion typeerror test (#61,
0d74d42)
- ci: Bump astral-sh/setup-uv in the github-actions group (#59,
5a340e3) - deps: Bump ruff from 0.15.10 to 0.15.11 in the python-deps group (#60,
a761779) - Document --slugs argument (#58,
633c354) - Small fixes (#58,
633c354) - Add info about v1 vs v2 tokens in readme (#57,
126e445) - deps: Bump the python-deps group with 3 updates (#53,
85127a3)
- Improve --verbose diff output for modified device types (#61,
0d74d42) - Improve --verbose diff output for modified device types (#61,
0d74d42)
- Extract shared normalize_values / values_equal helper (#61,
0d74d42)
@dependabot[bot], @Frigyes06, @marcinpsk, Aaron Axvig
- Suppress insecurerequestwarning when ignore_ssl_errors is enabled (#56,
46c4967) - Use --native-tls instead of invalid --system-certs in pre-commit hooks (#56,
46c4967)
- deps: Bump pytest from 9.0.2 to 9.0.3 (#54,
e977c4d) - ci: Bump the github-actions group with 2 updates (#52,
837d293)
@dependabot[bot], @marcinpsk
- Update module image discovery for flat upstream layout (#50,
aaf1b3e)
- deps: Bump ruff from 0.15.8 to 0.15.9 in the python-deps group (#49,
d5874c0) - ci: Bump docker/login-action in the github-actions group (#48,
2327192)
@dependabot[bot], @marcinpsk
- Show actionable error for proxy/connection failures (#47,
887db9c) - Show actionable error message for proxy/connection failures (#47,
887db9c) - Catch graphql 403 and show actionable error message (#47,
887db9c) - Retry transient connection errors during bulk api operations (#47,
887db9c) - Catch graphqlerror from devicetypes initialization (#47,
887db9c)
- Use --native-tls for uv in pre-commit hooks (#47,
887db9c) - Standardize retry count in connection error log messages (#47,
887db9c) - deps: Bump the python-deps group with 2 updates (#45,
79385ee)
@dependabot[bot], @marcinpsk
- deps: Bump pygments from 2.19.2 to 2.20.0 (#44,
67f1780) - ci: Bump astral-sh/setup-uv in the github-actions group (#43,
3c6c7a0) - deps: Bump requests from 2.32.5 to 2.33.0 (#42,
11c1da0) - deps: Bump the python-deps group with 2 updates (#41,
6ff350c) - ci: Bump astral-sh/setup-uv in the github-actions group (#40,
9b53248) - deps: Bump ruff from 0.15.5 to 0.15.6 in the python-deps group (#39,
04f116c) - ci: Bump astral-sh/setup-uv in the github-actions group (#38,
18d2aed) - ci: Bump docker/setup-buildx-action in the github-actions group (#37,
29fba71) - ci: Sha-pin all workflow actions and group dependabot updates (
af0b4b1)
- Resolve module type profile string to name dict for netbox api (#46,
23603b2) - Resolve module type profile string to name dict for netbox api (#46,
23603b2)
- Add edge-case tests for profile already-dict and null (#46,
23603b2)
@dependabot[bot], @marcinpsk, Marcin Zieba
- Handle remote url mismatch and improve branch error message in pull_repo (#35,
f5675bf) - Address pr review comments - graphql 3-tier fallback, legacy mapping update, empty stanza, inline validation, multi-mapping test coverage, extract helper to reduce complexity (#35,
f5675bf) - Guard legacy 2-tuple _mappings unpack, validate rear-ports:[], simplenamespace in tests, assert call ordering (#35,
f5675bf) - Prune fetch, early-return port-mappings key, core.repo.glob patch, type= in no-change test (#35,
f5675bf) - Clear legacy rear_port on empty mappings; add devicetypes test factory (#35,
f5675bf) - Remove dead code in _build_mappings_patch (not m2m inside if m2m block) (#35,
f5675bf) - Thread yaml_data into legacy mapping path; add markdownlintignore for changelog (#35,
f5675bf)
- deps: Bump docker/metadata-action from 5 to 6 (#30,
8447b2b) - deps: Bump actions/upload-artifact from 4 to 7 (#31,
947c5c9) - deps: Bump docker/login-action from 3 to 4 (#28,
3621faa) - deps: Bump docker/build-push-action from 6 to 7 (#29,
daa3cde) - deps: Bump python-dotenv from 1.2.1 to 1.2.2 (#33,
0fef4b0) - deps-dev: Bump ruff from 0.15.4 to 0.15.5 (#34,
6632940) - deps: Bump docker/setup-qemu-action from 3 to 4 (#32,
4ab06a8)
- Add full port-mappings stanza support with multi-mapping and change detection (#35,
f5675bf) - Add full port-mappings stanza support with multi-mapping and change detection (#35,
f5675bf)
- Add regression tests, version-path parametrize, and coverage gaps (#35,
f5675bf) - Assert no fallback retry when has_mappings guard fires in graphql fallback test (#35,
f5675bf)
@dependabot[bot], @marcinpsk
- Address code review findings (src_file in error msg, empty env vars, slug guard, test assertions, docstrings, coverage xml) (#27,
de988fc) - Coerce float strings via float() in _values_equal to avoid false updates (#27,
de988fc) - Strip trailing newlines in _values_equal to handle yaml literal blocks (#27,
de988fc) - Numeric coercion, missing exception key, deterministic glob, docs (#27,
de988fc) - Address code review findings in log_handler and netbox_api (#27,
de988fc)
- deps: Bump python from 3.12-slim to 3.14-slim (#26,
ab23bcf) - deps-dev: Bump ruff from 0.15.2 to 0.15.4 (#25,
4946d44)
- Add contribution attribution to changelog and fix markdownlint (#27,
de988fc)
- Add rack-type, reduce complexity, add option to configure repo_path location (#27,
de988fc) - Add ci coverage check, semantic-release contributor attribution (#27,
de988fc) - Repo_path env var, move default back to project root, add path validation (#27,
de988fc) - Add rack-types import support (netbox >= 4.1) (#27,
de988fc)
- Reduce log_change_report complexity below 15 (#27,
de988fc) - Reduce netbox_api.py complexity below 15 (#27,
de988fc) - Reduce main() complexity below 15 (#27,
de988fc)
- Achieve 100% coverage of nb-dt-import.py (#27,
de988fc)
@dependabot[bot], @marcinpsk
- Show proper image upload progress bar with total count (#24,
a7c8d9b) - Show proper image upload progress bar with total count (#24,
a7c8d9b) - Exclude already-uploaded images from progress bar total (#24,
a7c8d9b)
- Updated dependencies (#24,
a7c8d9b)
@marcinpsk
- Use python directly instead of uv run in dockerfile cmd (
3d8a808)
@Pa0x43
- Netbox 4.5+ compatibility with v2 token auth for ci improvements (#22,
0ba1006) - Weekly ci, core/ restructure, v2 token auth, and release workflow (#22,
0ba1006) - Update semantic-release config to v8+ and fix validate_git_url docstring (#22,
0ba1006) - Validate file:// urls have a non-empty path (#22,
0ba1006) - Correct netbox configuration path and heredoc indentation in ci (#21,
3ff48ec) - Correct netbox configuration path and heredoc indentation in ci (#21,
3ff48ec) - Restore checkov suppression comments and add explicit utf-8 encoding (#21,
3ff48ec)
@marcinpsk
- deps-dev: Bump ruff from 0.15.1 to 0.15.2 (#19,
584011f) - deps: Bump rich from 14.3.2 to 14.3.3 (#20,
e8366ca)
- Migrate read queries from rest to graphql with configurable tuning (#18,
7f63a0f)
@dependabot[bot], @marcinpsk
-
- module-type progress tracking — wrapped files with get_progress_wrapper(progress, files, desc=parsing module types) before (
0fde990)
- module-type progress tracking — wrapped files with get_progress_wrapper(progress, files, desc=parsing module types) before (
@marcinpsk
- Skip absent yaml properties in change detection, remove unused method, fix update cache (
17d3561) - Detect property removals, guard component removal detection, and fix null yaml values (
641ff69) - Updated progress on compare (
1f229f8) - Use _get_cached_or_fetch in _create_generic to fix module component detection (
abb1c87) - Invalidate component cache after successful removal in remove_components (
8a21f19) - Invalidate component cache after successful creation in _create_generic (
50b7ba3) - Use item.name instead of str(item) for component cache keys (
28c3eae) - Use _get_cached_or_fetch in update/remove_components, fix endpoint.delete call (
86a2e30) - Respect empty cache in _get_cached_or_fetch, fix netbox capitalization (
04d1510) - Correct module counter keys, alias-aware component additions, per-item updates, readme typos (
c981780) - Changed black to ruff format (
3883d97) - Added --remove-components to remove components from models when yaml changed - for example conversion from interfaces to module-bays (
69fc19a) - Updated new device creation (
07962a6) - Normalize trailing whitespace in change detection (
498529b) - Handle pynetbox record objects in change detection (
04a1592) - Image handling (
681d4cb) - Image handling (
287bfb1) - Reformatted (
0bf196c) - Defensive checks (
db6dcb0) - Update logging (
4d3cbf0) - Update url handling (
9f80fdf) - Image handling - closing files, simple url verification (
92fea33) - Wording (
965ad5c) - Remove old versions that dont work anymore (
602f9d4) - Create poweroutlet with unambiguous powerport (
16b922b)
- deps-dev: Bump ruff from 0.14.9 to 0.15.1 (
b8bc0fc) - deps: Bump gitpython from 3.1.45 to 3.1.46 (
b075e9d) - deps-dev: Bump black from 25.12.0 to 26.1.0 (
2885114) - deps: Bump pynetbox from 7.5.0 to 7.6.1 (
016a4c2) - deps-dev: Bump pre-commit from 4.5.0 to 4.5.1 (
f926447) - deps: Bump tqdm from 4.67.1 to 4.67.3 (
0654d46) - deps: Bump the uv group across 1 directory with 3 updates (
8aa7283) - deps: Bump actions/setup-python from 5 to 6 (
7ea0b09) - deps: Bump astral-sh/setup-uv from 4 to 7 (
3114e77) - deps: Bump actions/stale from 5 to 10 (
e643eb2) - deps: Bump actions/checkout from 4 to 6 (
2a5618f) - deps: Bump urllib3 from 1.25.8 to 1.26.5 (
3c12cb5) - deps: Bump pyyaml from 5.3 to 5.4 (
4c1a412)
- Added dependabot.yml, updated tests.yml and removed stale.yml (
45fd416) - Added .envrc (
887585c) - Updated python deps (
c6c422d) - Updated python deps (
d54e492) - Updated python deps (
5a48621) - Formatting (
da2859c) - Image lowercase (
ce8dcb7) - Update test (
ce83e66) - Update test (
e24b985) - Update test workflow - debug test hang (
9c72fa4) - Update test workflow - debug test hang (
82a2f17) - Update ci workflow (
176f31f)
- Add change detection and --update flag for device types (
89994b1) - Refactored part of it, added progress and caching to speed up updates (
fafc0ab)
- Scope component preload by vendor, global fetch when no vendors specified (
c6d19d8) - Scope component preload to relevant device types when vendors are filtered (
45ddfe6)
- Consolidate change detection, dry up netbox_api, add markdownlint (
aa21e48)
@dependabot[bot], Marcin Zieba, ndom91