Skip to content

feat: add uv monitor support for workspace projects#6634

Merged
snyk-tim merged 1 commit intomainfrom
feat/uv-workspace-projects
Mar 17, 2026
Merged

feat: add uv monitor support for workspace projects#6634
snyk-tim merged 1 commit intomainfrom
feat/uv-workspace-projects

Conversation

@snyk-tim
Copy link
Contributor

@snyk-tim snyk-tim commented Mar 11, 2026

Pull Request Submission Checklist

  • Follows CONTRIBUTING guidelines
  • Commit messages
    are release-note ready, emphasizing
    what was changed, not how.
  • Includes detailed description of changes
  • Contains risk assessment (Low | Medium | High)
  • Highlights breaking API changes (if applicable)
  • Links to automated tests covering new functionality
  • Includes manual testing instructions (if necessary)
  • Updates relevant GitBook documentation (PR link: ___)
  • Includes product update to be announced in the next stable release notes

What does this PR do?

Adds support for monitoring all projects in a uv workspace.

When a uv workspace is monitored with --all-packages, each project will be correctly named with the project name and the relative path of its corresponding pyproject.toml file.

For example, for the subproject foo, the name of the project in Registry would be foo:foo/pyproject.toml.

Where should the reviewer start?

The main change is when --all-projects is used, it will now pass the flag --internal-uv-workspace-packages to the depgraph command. The depgraph command will return a JSONL stream of JSON objects with the fields depGraph and targetFile allowing them to be populated for each project.

How should this be manually tested?

In a uv workspace project folder, which can be created with the following:

uv init uv-test-project-workspace
cd uv-test-project-workspace
uv init project-a
uv init project-b
uv init project-c
uv add --project project-a 'requests==2.28.0'
uv add --project project-b 'urllib3==1.26.15'
uv add --project project-c 'cryptography==40.0.0'
uv add project-a --editable
uv add project-b --editable
uv add project-c --editable
uv sync

Run snyk monitor --all-projects and it will create 4 projects, one for the main project uv-test-project-workspace, then one each for the subprojects project-a, project-b, project-c.

What's the product update that needs to be communicated to CLI users?

@snyk-io
Copy link

snyk-io bot commented Mar 11, 2026

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues
Code Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

@github-actions
Copy link
Contributor

github-actions bot commented Mar 11, 2026

Warnings
⚠️

You've modified files in src/ directory, but haven't updated anything in test folder. Is there something that could be tested?

Generated by 🚫 dangerJS against 32365ad

@snyk-tim snyk-tim force-pushed the feat/uv-workspace-projects branch 4 times, most recently from 85a7c83 to 5cf4566 Compare March 13, 2026 17:30
@snyk-tim snyk-tim marked this pull request as ready for review March 13, 2026 17:54
@snyk-tim snyk-tim requested review from a team as code owners March 13, 2026 17:54
@snyk-pr-review-bot

This comment has been minimized.

@snyk-tim snyk-tim force-pushed the feat/uv-workspace-projects branch from 5cf4566 to 2458615 Compare March 16, 2026 09:26
@snyk-pr-review-bot

This comment has been minimized.

@snyk-tim snyk-tim force-pushed the feat/uv-workspace-projects branch from 2458615 to 8ab4bf6 Compare March 16, 2026 12:19
@snyk-pr-review-bot

This comment has been minimized.

@snyk-tim snyk-tim force-pushed the feat/uv-workspace-projects branch from 8ab4bf6 to 486f5b9 Compare March 16, 2026 12:48
@snyk-pr-review-bot

This comment has been minimized.

@snyk-tim snyk-tim force-pushed the feat/uv-workspace-projects branch from 486f5b9 to 32365ad Compare March 16, 2026 19:30
@snyk-tim snyk-tim enabled auto-merge March 16, 2026 19:30
@snyk-pr-review-bot
Copy link

PR Reviewer Guide 🔍

🧪 PR contains tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Missing property 🟠 [major]

The inspect function returns a MultiProjectResult object where the top-level plugin object (lines 109-112) is missing the packageManager property. While this property is correctly included in the plugin objects within each item of scannedProjects (lines 76 and 89), its absence at the top level causes a regression compared to previous behavior and will lead to test failures, specifically in src/lib/plugins/uv/uv.spec.ts at line 87 where it is explicitly expected.

return {
  plugin: {
    name: 'snyk-uv-plugin',
    targetFile: resolvedTargetFile,
    packageManager: 'uv',
📚 Repository Context Analyzed

This review considered 11 relevant code sections from 6 files (average relevance: 1.02)

@snyk-tim snyk-tim merged commit cc67fa0 into main Mar 17, 2026
9 checks passed
@snyk-tim snyk-tim deleted the feat/uv-workspace-projects branch March 17, 2026 10:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants