Skip to content

Dependency update strategy: migrate from Dependabot to Renovate #761

@oboehmer

Description

@oboehmer

Goal

Define a dependency update strategy for nac-test that:

  1. Security updates always bump pyproject.toml lower bound + update uv.lock
  2. Non-security updates only update uv.lock, leaving pyproject.toml alone (to avoid minimum-version conflicts when nac-test is integrated into other environments)
  3. pyats + genie are upgraded in lockstep (single PR, same version)
  4. Core framework dependencies (Track Latest tier) always stay current
  5. GitHub Actions SHA-pinned references are kept up to date

Proposed change: Migrate from Dependabot to Renovate

Requirement Dependabot Renovate
Security updates bump pyproject.toml + uv.lock Bumps pyproject.toml but no native uv.lock support (CI workaround needed) Native uv.lock support, vulnerabilityAlerts.rangeStrategy: "bump"
Non-security updates are lockfile-only Cannot differentiate security vs non-security behavior Global rangeStrategy: "update-lockfile"
pyats + genie lockstep groups puts in one PR but does not enforce version alignment groupName + uv resolver ensures compatible versions
Track Latest tier for core deps No per-package update strategy Per-package rangeStrategy: "bump" via packageRules
GitHub Actions SHA pins Supported (github-actions ecosystem) Supported (github-actions manager) — updates SHA + version comment
uv.lock native support No Yes

With Renovate covering both Python dependencies and GitHub Actions, dependabot.yml can be removed entirely. Dependabot security alerts (repo settings) remain enabled — Renovate reads those via API.

Acceptance criteria

  • Renovate GitHub App installed and configured on netascode/nac-test
  • .github/dependabot.yml removed (Renovate covers both Python deps and GitHub Actions)
  • Dependabot security alerts remain enabled in repo settings
  • uv lock CI workaround removed from test.yml
  • Three-tier update model working as described in the implementation comment below

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions