summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
6 hoursBump codecov/codecov-action from 7.0.0 to 7.1.0dependabot/github_actions/codecov/codecov-action-7.1.0dependabot[bot]
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 7.0.0 to 7.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Commits](https://github.com/codecov/codecov-action/compare/v7...v7.1.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 7.1.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
16 hoursT6828: PR190 revive, vyos_conf match "enforced" (#415)HEADmainomnom62
* T6828: PR190 revive, vyos_conf match "enforced"
36 hoursT6837: vyos_config replace (#493)omnom62
* T6837: vyos_config replace core
7 daysT9251: accept OpenSSH sk-* key types in vyos_user (#500)Mason Elmore
* T9251: accept OpenSSH sk-* key types in vyos_user VyOS has accepted sk-ecdsa-sha2-nistp256@openssh.com and sk-ssh-ed25519@openssh.com since T4750, but the module's choices list was never updated, so a playbook using a security key fails argspec validation while the equivalent CLI commands succeed. --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: omnom62 <omnom62@outlook.com>
2026-09-01T8323: vyos_nat module (#451)omnom62
Add NAT module
2026-08-27T9249: Multi-line asserts for integration testing in vyos_firewall_rules (#499)omnom62
Fix multi-line asserts for integration testing in vyos_firewall_rules
2026-08-26T9053: fixes to vyos_config test cases (#487)omnom62
* T9053: fixes to vyos_module --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Viacheslav Hletenko <v.gletenko@vyos.io>
2026-08-26T8220: Firewall Zone Policy support (#447)omnom62
Add zone base policy firewall module
2026-08-21T8321: vpn_ipsec modules (#489)omnom62
Add VPN IPsec module
2026-08-21T8349: VRF config for interfaces (#449)omnom62
* VRF config for interfaces
2026-08-21T8511: apply black formatting across entire codebase (#456)Yuriy Andamasov
* T8511: apply black formatting across entire codebase * T8511: add changelog fragment * T8511:: correct exclude scope Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-21T8516: add vyos_l3_interfaces unit tests; delete only L3 attributes in ↵Yuriy Andamasov
deleted/overridden (#458) * T8516: add unit tests for vyos_l3_interfaces module * T8516: fix copyright header to use VyOS Networks attribution Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Changelog * Misc fixes * Misc changes * T8516: bugfixes * T8516: changelog - bugfixes added * T8516: Update changelog Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T8516: Docstring fix Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T8516: docstring fix Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T8516: restore _state_deleted docstring, align test docstring and fixture - restore the _state_deleted docstring lost in the L2-safeguard change, now documenting the address-only delete semantics - overridden test docstring said "delete interface stanzas" but the module now emits address-only deletes; align wording - quote loopback interface name in fixture for consistency with vyos_interfaces_config.cfg * T8516: drop out-of-scope config and generated-docs changes Reviewer request (gaige): top-level instruction files (.coderabbit.yaml, AGENTS.md) belong in separate PRs. Also revert unrelated generated-docs drift in vyos_config / vyos_bgp_global rst files. All four files are now identical to main. --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: omnom62 <omnom62@outlook.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-21T8517: add unit tests for vyos_lldp_interfaces module (#459)Yuriy Andamasov
* T8517: add unit tests for vyos_lldp_interfaces module * T8517: add rendered state test for vyos_lldp_interfaces Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * T8517: fix copyright header to use VyOS Networks attribution Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Changelog * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T8517: revert unrelated .coderabbit.yaml and AGENTS.md drift These two files were modified by automated review tooling on this branch (quote-style normalization in .coderabbit.yaml; blank-line insertions in AGENTS.md). They are out of scope for the LLDP unit-tests PR — restore both to match origin/main. 🤖 Generated by [robots](https://vyos.io) * T8517: corrected unit test --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: omnom62 <omnom62@outlook.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-21T2295: vyos_user: set explicit no_log on update_password (#479)Stavros Kroustouris
* vyos_user: set no_log=False on update_password parameter Prevents Ansible from redacting update_password in module args when configured_password is present with no_log=True. Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: document why update_password needs explicit no_log=False Ansible PASSWORD_MATCH hides parameters named *password* when no_log is unset (not the same as defaulting to False). Add comment, changelog wording, and a unit test; align with ansible.core user module. Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: add comment for update_password no_log=False Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: drop source-inspection test for update_password no_log Remove test_vyos_user_update_password_explicit_no_log_false; existing execute_module tests already cover update_password behavior. Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: fix CI failures (changelog line length, devel/py3.12 matrix) Shorten the changelog fragment to satisfy ansible-lint line-length (160). Skip py3.12-devel tox environments and exclude devel+Python 3.12 from unit-source now that ansible-core devel requires Python >=3.13. Co-authored-by: Cursor <cursoragent@cursor.com> * Add docstrings to vyos_user functions and workflow permissions Adds docstrings to all undocumented module-level functions in vyos_user.py to bring docstring coverage above the 80% threshold. Adds explicit `permissions: contents: read` to codecoverage.yml as recommended by CodeRabbit for least-privilege CI security. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Revert "Add docstrings to vyos_user functions and workflow permissions" This reverts commit 616b27bc339a7607eae15e91a605c70dae15248b. * T2295: drop unrelated CI/tox changes; reword changelog Revert the matrix_exclude block in tests.yml and the py3.12-devel skip in tox-ansible.ini; those were CI workarounds unrelated to this fix and are no longer needed against current main. Reword the changelog fragment to describe the observable behavior instead of the internal PASSWORD_MATCH constant. --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-21T8983: vyos logging global module 1.5.0 support (#486)omnom62
* T8983: logging_global facts, rm_templates, config updates * T8983: new v150 template and changelog * T8983 UAT for 1.5.0 * T8983: logging_global SIT * T8983: SIT logging_global and doc * T8983: doc updates
2026-08-21T9180: added return and continue to the firewall rules default action (#494)catalyys
* T9180: added return to the firewall rules default action * T9180: added changelog fragment * T9180: added missing docs Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T9180: added unit and integration tests * T9180: added YAML document marker --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Yuriy Andamasov <yuriy@vyos.io>
2026-08-19T6820: HA/VRRP module (#438)omnom62
* Init VRRP * RM Templates * rm_templates for global_parameters * virtual servers rm_templates * update * sync-group rm_tempalte * VRRP GP GARP template rework * RM template and new facts logic * vrrp argspec * Suppressing backup versions of files * Facts for vrrp * VRRP facts updates * Facts almost done * Argspec vrrp * Argspec completed * Argspec and facts for VRRP finished * Documentation for VRRP module * Sanity tests fixes and documentation * VRRP config started * Doc fixes * Doc fixes * Doc fixes * Configuration for VRRP * wip * Updates to facts, config, templates in VRRP * VRRP groups templates, facts and config * VRRP works - templates for groups and virtual_servers * Mid-result * VRRP VS prototype * Groups processor update * Reworked vrrp.group and vrrp.group.garp processors * VRRP grp recursive * VRRP groups and vserver contd * Update to VRRP want processing * Updates to VRRP funcs * VRRP VS RS config * Sanity test fixes midway * VRRP Real server fixes * VRRP sync_group * Latest fixes to etire VRRP config parsing * Midway compare function * update to vrrp group processing * Mid results for merge parsers / compare * Working merge for vrrp and virtserv * Final merge / compare * WIP replaced / Delete * Updates to state processing * Mid-result for virtual_servers * Mid result commit * Testing high-availability vrrp processing * Retesting vrrp stanza * Mid results * Real server parsing * SNMP vrrp fixed * Sanity fixes * Purged, rendered, gathered, parsed action states for VRRP * VRRP integration and unit tests; code fixes midway results * Sanity check fixes * Merged integration test case for VRRP * VRRP rendered integration test case * Sanity tests fixes * VRRP unit tests - merged and purged * Mid-way replaced, deleted and overriden work. Description string fix * Updates to integration and unit tests for VRRP * Mid-result for deleted state VRRP * Mid-results for VRRP deleted * Deleted vrrp midway results * Deleted state function for VRRP * Deleted state VRRP, sanity checks fix * Deleted integration tests * Deleted_all unit and integration tests * Deleted_all unit and integration tests * Sanity check fixes * Mid-results overridden VRRP * WIP vrrp overridden sit and uat * VRRP overridden sanity test * UAT overriden vrrp * UAT deleted for vrrp * VRRP replaced UAT and SIT * VRRP RTT SIT * VRRP SIT suite ready * Finals for VRRP module - clean-up and fixed UAT * VRRP module doc examples updated * VRRP sanity tests fixes * VRRP disbale default fix * Misc lint fixes * Misc Lint fixes * remove old files * Rename vyos_vrrp -> vyos_ha * Rename vyos_vrrp to vyos_ha * doc fixes * Changes to HA module * HA module fixes * Sanity test fixes * changelog * ignore for HA/VRRP and 2.22 * AI-generated comments and fixes * Fixes after review * Misc fixes * Misc fixes * Misc fixes * Misc fixes * Sanity fixes * Sanity fixes * Misc changes * T6820: code refactor to address valid AI comments * T6820: Optimising facts, config and rm_templates * T6820: UAT fixes * T6820: docstring for utils/combine() * T6820 Misc fixes to changelog --------- Co-authored-by: Gaige B Paulsen <gaige@cluetrust.com>
2026-08-19T6830: vyos_file module (support for file upload, management and templating) ↵omnom62
(#495) * T6830: vyos_file - support for copy, template, and upload * T6830: vyos_file - support for copy, template, and upload * T6830: vyos_file - support for copy, template, and upload * T6830: Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T6830: vyos_file - AI comments fixed * T6830: vyos_file - AI comments fixed * T6830: vyos_file - AI comments fixed * T6830: Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * T6830: AI comments resolved * T6830: vyos_file - AI comments fixed * T6830: vyos_file - AI comments fixed * T6830: vyos_file - AI comments fixed * T6830: vyos_file - AI comments fixed * T6830: vyos_file - AI comments fixed --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-08-17Bump codecov/codecov-action from 5.5.5 to 7.0.0 (#498)dependabot[bot]
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.5.5 to 7.0.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Commits](https://github.com/codecov/codecov-action/compare/v5.5.5...v7) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: 7.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-17T9220: ci: upload JUnit test results to Codecov Test Analytics (#497)Yuriy Andamasov
* T9220: ci: upload JUnit test results to Codecov Test Analytics (probe) Wire pytest JUnit XML output and a pinned codecov-action@v5.5.5 test-results upload step (tokenless, informational) as the public-class PF-B probe for the Codecov Test Analytics fleet rollout. 🤖 Generated by [robots](https://vyos.io) * T9220: ci: continue-on-error on test-results upload (informational posture) A step timeout would fail the job despite fail_ci_if_error: false; continue-on-error keeps the upload strictly informational. 🤖 Generated by [robots](https://vyos.io) * T9220: ci: fold test-results upload condition (yaml line-length) 🤖 Generated by [robots](https://vyos.io)
2026-08-14T9204: test: pre/post-rollout codecov baseline (no-op) (#496)Yuriy Andamasov
* test: pre-rollout codecov baseline (no-op) * test: post-rollout codecov artifact (no-op)
2026-08-05Merge pull request #492 from vyos/nos-task-idYuriy Andamasov
T9164: accept NOS-/VD- Jira keys in task-id check; pin NOS in coderabbit
2026-08-05T9164: accept NOS-/VD- Jira keys in task-id check; pin NOS in coderabbitnos-task-idYuriy Andamasov
VD tracker project renamed to NOS (2026-07) - PR titles and commit headlines using the new NOS- key must stop being flagged invalid-task-id; legacy VD- keys stay accepted, and CodeRabbit now resolves NOS alongside VD. Fleet replication of canary vyos/vyos-1x#5379, whose adversarial review tightened the regexes to ASCII [0-9] + literal-space separators. 🤖 Generated by [robots](https://vyos.io)
2026-08-04T6890: use boolean in documentation (#491)omnom62
* T6890: use boolean in documentation * T6890: use booleans in documentation
2026-07-31Bump actions/setup-python from 6 to 7 (#490)dependabot[bot]
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-14ci: T9082: onboard CodeQL scanning (#488)Yuriy Andamasov
* ci: T9082: onboard CodeQL scanning via central reusable workflow 🤖 Generated by [robots](https://vyos.io) * ci: T9082: add trivial changelog fragment for the CodeQL workflow 🤖 Generated by [robots](https://vyos.io)
2026-07-01T8513: add .git-blame-ignore-revs to exclude bulk formatting commits (#455)Yuriy Andamasov
* T8513: add .git-blame-ignore-revs to exclude bulk formatting commits * T8513: fix changelog fragment - use trivial section and correct description Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-06-30T8522: fix parse_icmp_attr() split delimiter and UnboundLocalError (#464)Yuriy Andamasov
* Add easy-wins improvement spec for vyos.vyos collection Covers five phases: formatting compliance, runtime.yml redirect fix, deprecated feature cleanup, missing unit tests, and template deduplication. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add implementation plan for easy-wins improvements 15 tasks across 5 phases: formatting compliance, runtime.yml bugfix, deprecated code cleanup, missing unit tests, template deduplication. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Update spec and plan with architect review corrections Key changes: - Defer Phase 5 (template deduplication) to v7.0.0: route_maps are not identical, BGP dedup blocked by Python module-level scoping, OSPF has fundamentally different command paradigms - Add .git-blame-ignore-revs step to Phase 1 - Add missing test cases: overridden/rendered for resource modules, aggregate/purge/with_address for vyos_vlan - Fix incorrect claim that version.py LooseVersion is unused - Add sequential merge requirement to preamble Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: add .worktrees/ and .claude/ to .gitignore * T8522: fix parse_icmp_attr() split delimiter and UnboundLocalError - Use val.split("/") instead of val.split(".") when parsing type/code pairs - In the numeric-only branch, use int(val) instead of the undefined type_no variable - Cast both type and code to int for consistent typing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * T8522: remove unrelated planning docs and gitignore changes These files were included from local main branch commits unrelated to this bugfix. This commit removes them to keep the PR scoped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * T8522: add parsed test for legacy type/code ICMP format Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-06-26T2295: vyos_user: quote plaintext-password in generated set commands (#480)Stavros Kroustouris
* vyos_user: quote plaintext-password in generated set commands VyOS requires quoted values for passwords with special characters. Align with encrypted-password and integration test conventions. Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: escape plaintext-password values in vyos_user set commands Quote passwords for VyOS special-character handling and escape embedded single quotes. Update RETURN sample, add unit tests, refresh changelog. Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: shorten changelog fragment for ansible-lint line-length Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: use shlex.quote() for plaintext-password values Replace custom _quote_config_value() with stdlib shlex.quote() per review feedback; update unit tests and RETURN sample accordingly. Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: add complex plaintext-password quoting unit test Cover spaces, shell metacharacters, embedded quotes, and backslashes in one password; assert command output matches shlex.quote(). Co-authored-by: Cursor <cursoragent@cursor.com> * T2295: assert explicit quoting in complex password unit test Replace shlex.quote()-derived expectation with a fixed command string, matching the other password quoting tests. Co-authored-by: Cursor <cursoragent@cursor.com> * Fix RETURN doc sample, add docstrings and workflow permissions - RETURN sample was missing the username token in the example command - Add docstrings to all undocumented module-level functions to bring docstring coverage above the 80% threshold - Add explicit permissions: contents: read to codecoverage.yml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Revert "Fix RETURN doc sample, add docstrings and workflow permissions" This reverts commit 827809ee49cf472a8bf30ec0b24d347a75fcb083. --------- Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-19rm_templates: T8609: fix slow parse() from group-quantifier patterns (#470)Robert Navarro
* rm_templates: T8609: fix slow parse() from group-quantifier patterns Running an Ansible playbook that manages BGP route-maps on my VyOS 1.4 edge routers, the vyos.vyos.vyos_route_maps task (state=gathered or state=merged) takes ~50 seconds per host, sometimes 100s+, against devices with only a handful of route-maps configured. The persistent connection times out before the module finishes and the failure surfaces as a misleading "socket path does not exist". Three related quantifier shapes in nine rm_templates files cause O(2^n) regex backtracking on inputs that share a parser's prefix but don't match overall. parse() time on a representative 12-line route-map config drops from ~50s to <1ms post-fix. * Trailing form (188 sites): `(?P<X>\S+)\n *$"""` -> `(?P<X>\S+)\s*$"""`. Under re.VERBOSE the literal newline+indent between `\S+` and `*$` is stripped at compile time, so the source compiled to `(\S+)*$` with the `*` quantifying the named group. * Mid-pattern `(group containing \S+)*` (22 sites in snmp_server.py with a couple in bgp_global*.py): e.g. `(?P<protocol>protocol\s\S+)*` -> `(?P<protocol>protocol\s\S+)?`. Different position from the trailing form, but the same shape underneath (a group whose content includes \S+, quantified with `*`), so the same O(2^n) backtracking on prefix-sharing inputs. * Mid-pattern `(literal-only group)*` (14 sites in snmp_server.py, bgp_address_family*.py, bgp_global*.py): e.g. `(?P<as_set>as-set)*` -> `(?P<as_set>as-set)?`. No \S+ inside the quantified group, so the backtracking exposure is much smaller. On the inputs these patterns actually receive (no device line carries duplicate flags) `*` and `?` accept identical input sets, so changing to `?` is behavior-preserving. The first draft of this fix made set_comm_list_delete's `(?P<delete>\S+)` group required. The parser's setval emits `set comm-list delete` with no token after `delete`, so the parser stopped matching its own output (no existing fixture covered this case, which is why the regression initially shipped). CodeRabbit caught it during review. Replaced `delete(?P<delete>\S+)\s*$` with `\s(?P<delete>delete)\s*$` so the named group captures the literal word `delete`; the result template `{{True if delete is defined}}` continues to evaluate True. Affects: route_maps[/_14], bgp_global[/_14], bgp_address_family[/_14], snmp_server, ospf_interfaces[/_14]. Adds tests/unit/modules/network/vyos/test_rm_templates_perf.py with a 1-second budget against fixture inputs that have realistic-length identifiers, plus a round-trip test asserting set_comm_list_delete matches its own setval-generated line, plus a Bgp_address_familyTemplate14 budget test for symmetry with the other "hot" template families. * Fix regex backtracking issues in parse() method Fix slow parse() to prevent regex backtracking on prefix-sharing inputs across multiple files. Add unit test for the bugfixes. * Refactor bug fixes for regex backtracking improvements Updated bug fixes to include details on regex backtracking issues in multiple files. * Fix typo in bugfixes section of changelog * Update bugfixes for regex backtracking issues * rm_templates: T8609: route_maps.py: fix remaining trailing `*$` patterns Five sites in route_maps.py still had the `(?P<name>...)\n *$` shape that collapses to `(?P<name>...)*$` under `re.VERBOSE`, parsers `sequence`, `on_match_next`, `set_atomic_aggregate`, `set_extcommunity_bandwidth_non_transitive`, and `match_community_exact_match`. Collapsed each to `\s*$` on the same line as the named group, matching the rest of the PR. * rm_templates: T8609: route_maps.py: split overlong getval to satisfy E501 Line 517 was 161 chars (`set_extcommunity_bandwidth_non_transitive` parser) and tripped pycodestyle's E501 sanity test in CI. Split the regex source across two lines at the `\d+)` boundary; under `re.VERBOSE` the literal newline and indent between regex tokens are stripped at compile time, so the engine sees the same pattern. `\s*$` stays on the same line as the closing capture group, so the group-quantifier shape this PR fixes elsewhere isn't reintroduced. --------- Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-06-11Merge pull request #484 from ↵Viacheslav Hletenko
vyos/dependabot/github_actions/codecov/codecov-action-7 Bump codecov/codecov-action from 6 to 7
2026-06-08Bump codecov/codecov-action from 6 to 7dependabot/github_actions/codecov/codecov-action-7dependabot[bot]
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 6 to 7. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v6...v7) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
2026-06-08T8966: add legacy-label escape to invalid-task-id rule (commit check exempt) ↵Yuriy Andamasov
(#483) The per-repo T-ID rule flagged every commit's first line, but on repos that squash-merge AND block force-push (vyos.vyos enforces non_fast_forward on ~ALL branches, zero bypass) authors cannot rewrite history to make existing commits conform. The label became unclearable. Keep the title check (always fixable), and exempt the per-commit check when a maintainer applies the new `legacy` label. New PRs are still nudged toward the convention. 🤖 Generated by [robots](https://vyos.io)
2026-06-06ci: T8966: exempt bots from product T-ID (invalid-task-id) gate (#482)Yuriy Andamasov
2026-06-06ci: T8966: add product T-ID title/commit check (opt-in relocation) (#481)Yuriy Andamasov
2026-06-01docs: AGENTS.md: reflect rollout 1c default-branch rename (#478)Yuriy Andamasov
2026-05-30ci: T8943: sweep HIGH-producer pins to renamed branches (rollout 1c) (#477)Yuriy Andamasov
Rewrites uses: pins to the three HIGH-fanout producers (vyos/.github, vyos/vyos-cla-signatures, VyOS-Networks/vyos-reusable-workflows) from their old default branch to the new production compat branch staged in Task 1. No functional change; pin-ref rewrite only. Tracking: T8943
2026-05-28T8615: add Mergify config (extends: mergify central template) (#476)Yuriy Andamasov
* T8615: add Mergify config (extends: mergify central template) Adds the org-local central-config inheritance file per the T8615 sweep (re-scoped 2026-05-28). 4-line minimum: extends: mergify resolves to vyos/mergify which provides commands_restrictions (9 slash commands x 4-sender allowlist), conflict labeler, PR-title T-ID format check, opt-in auto-update, and the backport-conflict merge protection. merge_protections_settings: reporting_method: check-runs declared explicitly per-repo because only defaults and commands_restrictions are documented as merging across extends: -- pin to current behavior pre the 2026-07-31 default flip per data/github.md Mergify gotchas table. Phase 0 CR: 0 finding(s). Known false positive: CR flags extends: mergify as 'not a documented built-in preset' but Mergify documents the org-local form at https://docs.mergify.com/configuration/sharing/. Refs: T8615 (re-scoped 2026-05-28), IS-421 Generated by robots https://vyos.io * T8615: switch yaml-language-server schema URL to JSON-schema Replaces the human-docs file-format URL (which serves HTML and cannot drive editor validation) with the machine-readable JSON-schema URL that yaml-language-server actually resolves for autocomplete and schema validation. Old: https://docs.mergify.com/configuration/file-format/ New: https://docs.mergify.com/mergify-configuration-schema.json Phase 0 CR: 0 0 finding(s). Refs: T8615 (re-scoped 2026-05-28), IS-421 Generated by robots https://vyos.io
2026-05-27T8514: fix typo in meta/runtime.yml snmp_server redirect (#457)Yuriy Andamasov
Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-05-26T8519: add changelog fragment vyos_vlan (#462)Yuriy Andamasov
* T8519: add changelog fragment for new unit tests * Update missing unit tests entry in changelog Removed mention of unit tests for vyos_l3_interfaces and vyos_lldp_interfaces. --------- Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-05-25coderabbit: T8851: add .coderabbit.yaml for central-config inheritance (#475)Yuriy Andamasov
* ci: switch .coderabbit.yaml to centralized inheritance (T8851) * ci: T8851: add changelog fragment for CodeRabbit centralization --------- Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-05-25T6818: Add argument to vyos_config for controlling password filtering (#466)stronkbyte
This commit adds the argument `allow_password_change` in order to control whether any configuration lines which would make changes to user passwords should be filtered out or not. Co-authored-by: Daniil Baturin <daniil@baturin.org> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-05-16T8518: add unit tests for vyos_vlan module (#471)Yuriy Andamasov
Adds 7 unit tests for vyos_vlan covering present, present_no_change, absent, absent_no_change, aggregate, purge, and address scenarios. Fixture data moved to dedicated .cfg files under fixtures/. 🤖 Generated by [robots](https://vyos.io) Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-05-13T8515: remove pre-1.3 deprecated code artifacts from vyos_bgp_global (#461)Yuriy Andamasov
* T8515: remove commented-out pre-1.3 parameter artifacts from vyos_bgp_global docs * T8515: remove stale vrf.old backup file * T8515: add changelog fragment for deprecated code cleanup * T8515: fix grammar in ebgp_multihop description Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-05-08general: T8595: add AGENTS.md (#472)Yuriy Andamasov
* general: T8595: add AGENTS.md * general: T8595: clean leaked internal references * general: T8595: restore eaten spaces in shell command examples * general: T8595: correct CI scope (no integration in CI yet) and version-matrix attribution * general: T8595: add changelog fragment + refine CI scope (unit-galaxy/unit-source) * general: T8595: address Copilot review threads on test command and commit convention - Line 15: add `ansible-test units` alongside the existing pytest command; the two correspond to the unit-galaxy and unit-source CI jobs respectively, so documenting both gives contributors accurate options for each CI path. - Line 30: change "Commit / PR title" to "Commit headline". No workflow in this repo enforces PR title format; the PR template checklist confirms only commit headlines must carry a Phorge task ID. 🤖 Generated by [robots](https://vyos.io)
2026-05-01Bump ansible/team-devtools/.github/workflows/ah_token_refresh.yml (#468)dependabot[bot]
Bumps [ansible/team-devtools/.github/workflows/ah_token_refresh.yml](https://github.com/ansible/team-devtools) from 26.2.0 to 26.4.0. - [Release notes](https://github.com/ansible/team-devtools/releases) - [Commits](https://github.com/ansible/team-devtools/compare/v26.2.0...v26.4.0) --- updated-dependencies: - dependency-name: ansible/team-devtools/.github/workflows/ah_token_refresh.yml dependency-version: 26.4.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com>
2026-05-01T8520: fix vlan purge generating invalid commands for bare interfaces (#463)Yuriy Andamasov
Co-authored-by: Daniil Baturin <daniil@baturin.org>
2026-04-27T8512: fix isort import ordering violations (#454)Yuriy Andamasov
* T8512: fix isort import ordering violations * T8512: add changelog fragment Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26Bump ansible/team-devtools/.github/workflows/ah_token_refresh.yml (#448)dependabot[bot]
Bumps [ansible/team-devtools/.github/workflows/ah_token_refresh.yml](https://github.com/ansible/team-devtools) from 26.1.0 to 26.2.0. - [Release notes](https://github.com/ansible/team-devtools/releases) - [Commits](https://github.com/ansible/team-devtools/compare/v26.1.0...v26.2.0) --- updated-dependencies: - dependency-name: ansible/team-devtools/.github/workflows/ah_token_refresh.yml dependency-version: 26.2.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Daniil Baturin <daniil@baturin.org> Co-authored-by: omnom62 <75066712+omnom62@users.noreply.github.com> Co-authored-by: Yuriy Andamasov <yuriy@vyos.io>
2026-04-26T8584: add CodeRabbit review configuration (#467)Yuriy Andamasov
* T8584: add CodeRabbit review configuration Add .coderabbit.yaml with path-specific guidelines for automated code review, docstring generation, and unit test generation covering all module types (resource and legacy), plugin layers, and test infrastructure. 🤖 Generated by [robots](https://vyos.io) * T8584: fix changelog glob, valid keys, and vyos_vrf classification - Expand changelog fragment glob to *.{yaml,yml} (18 of 19 fragments use .yml) - Add known_issues and release_summary to valid changelog keys per changelogs/config.yaml - Remove vyos_vrf from legacy module list — it has resource module infrastructure (argspec, config, facts) 🤖 Generated by [robots](https://vyos.io) * T8584: add ansible/ansible and ansible.netcommon as linked repositories CodeRabbit will reference core Ansible framework and netcommon base classes when reviewing this collection modules, plugins, and test patterns. 🤖 Generated by [robots](https://vyos.io)