@@ -23,7 +23,7 @@ use uv_python::{PythonDownloads, PythonEnvironment, PythonPreference, PythonRequ
2323use uv_resolver:: { FlatIndex , Lock } ;
2424use uv_types:: { BuildIsolation , HashStrategy } ;
2525use uv_warnings:: warn_user;
26- use uv_workspace:: pyproject:: { Source , Sources , ToolUvSources } ;
26+ use uv_workspace:: pyproject:: { DependencyGroupSpecifier , Source , Sources , ToolUvSources } ;
2727use uv_workspace:: { DiscoveryOptions , InstallTarget , MemberDiscovery , VirtualProject , Workspace } ;
2828
2929use crate :: commands:: pip:: loggers:: { DefaultInstallLogger , DefaultResolveLogger , InstallLogger } ;
@@ -480,6 +480,21 @@ fn store_credentials_from_workspace(workspace: &Workspace) {
480480 . into_iter ( )
481481 . flat_map ( |optional| optional. values ( ) )
482482 . flatten ( ) ;
483+ let dependency_groups = member
484+ . pyproject_toml ( )
485+ . dependency_groups
486+ . as_ref ( )
487+ . into_iter ( )
488+ . flatten ( )
489+ . flat_map ( |( _, dependencies) | {
490+ dependencies. iter ( ) . filter_map ( |specifier| {
491+ if let DependencyGroupSpecifier :: Requirement ( requirement) = specifier {
492+ Some ( requirement)
493+ } else {
494+ None
495+ }
496+ } )
497+ } ) ;
483498 let dev_dependencies = member
484499 . pyproject_toml ( )
485500 . tool
@@ -491,6 +506,7 @@ fn store_credentials_from_workspace(workspace: &Workspace) {
491506
492507 for requirement in dependencies
493508 . chain ( optional_dependencies)
509+ . chain ( dependency_groups)
494510 . filter_map ( |requires_dist| {
495511 LenientRequirement :: < VerbatimParsedUrl > :: from_str ( requires_dist)
496512 . map ( Requirement :: from)
0 commit comments