Skip to main content

Parse and report package changes in uv.lock.

Project description

uv Lock Report

codecov

Description

Digests complex uv.lock diffs in Pull Requests and provides a simple summary of dependency changes as a PR comment.

Pull Requests with lockfile changes can be difficult to evaluate at a quick glance and diffs are usually hidden by default.

This GitHub Action transforms complex uv.lock diffs into a clean, easy-to-read report. It analyzes the changes between your base and head lockfiles, then posts a formatted comment showing exactly which packages were added, updated, or removed—including version changes and their severity (major, minor, or patch).

No more parsing through hundreds of lines of TOML diffs to understand what changed.

Example GitHub Actions Usage

name: uv Lockfile Report

on:
  pull_request:

permissions:
  contents: read
  pull-requests: write

jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - name: Report
        uses: mw-root/uv-lock-report@v0.13.0
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}

Inputs

INPUT TYPE REQUIRED DEFAULT DESCRIPTION
github-token string true GitHub Token
output-format string false "simple" The output format of the report.
One of: simple, table
show-learn-more-link string false "true" Whether to show a "Learn More"
link in the report comment.

Output Format Examples

The formatting can be chosen with the output-format input.

Simple Format ( Default )

Example Comment

Table Format

Example Comment

CLI Usage

You can also use uv-lock-report as a standalone CLI tool for local development or in custom CI/CD pipelines.

Installation

Install the package using uv:

uv build
pip install ./dist/uv_lock_report-0.1.0-py3-none-any.whl

Usage

uv-lock-report --base-sha <git-sha> --base-path <path-to-base-lockfile> --output-path <output-file>

Arguments

  • --base-sha: Git SHA of the base commit to compare against
  • --base-path: Path to the base lockfile (usually uv.lock)
  • --output-path: Path where the JSON report will be written
  • --output-format: Output format (table or simple, default: table)
  • --show-learn-more-link: Whether to show "Learn More" link (true or false, default: true)

Example

# Compare current uv.lock with the one from main branch
uv-lock-report \
  --base-sha main \
  --base-path uv.lock \
  --output-path report.json \
  --output-format table

Testing the installation

You can test that the CLI is properly installed:

# Test with a built wheel
uv run --with ./dist/uv_lock_report-0.1.0-py3-none-any.whl uv-lock-report --help

# Or run the included test script
uv run python test_cli_install.py

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uv_lock_report-0.13.2.tar.gz (110.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uv_lock_report-0.13.2-py3-none-any.whl (16.9 kB view details)

Uploaded Python 3

File details

Details for the file uv_lock_report-0.13.2.tar.gz.

File metadata

  • Download URL: uv_lock_report-0.13.2.tar.gz
  • Upload date:
  • Size: 110.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uv_lock_report-0.13.2.tar.gz
Algorithm Hash digest
SHA256 e82607dd5f1e2980e9f3e0af9350705e53e70fed9738744f57e25d9001ecd496
MD5 9a1225061eff92ae2ed3e3c3454b4dca
BLAKE2b-256 1253293bf32f3a7c5c6d576029c9b465abf5a364a1d98c7a394c34cb8540227e

See more details on using hashes here.

File details

Details for the file uv_lock_report-0.13.2-py3-none-any.whl.

File metadata

  • Download URL: uv_lock_report-0.13.2-py3-none-any.whl
  • Upload date:
  • Size: 16.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for uv_lock_report-0.13.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b806d2f8c7ccae28fbfe9ae066a6c2c6dfba4843d1317d09c3a238137141edbc
MD5 b4b9496b56c37d270cb8f1232fcb76dc
BLAKE2b-256 c6c8582bff3df80e38d9906a06a5dfd63bbf37e231a47099b3a6b681b56a3569

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page