@@ -19,6 +19,12 @@ pub fn parse(input: &str) -> CodeOwners {
1919 let path = tokens. next ( ) ?. to_string ( ) ;
2020 let owners: Vec < String > = tokens. map ( String :: from) . collect ( ) ;
2121
22+ let path = if path. ends_with ( '/' ) {
23+ format ! ( "{path}**" )
24+ } else {
25+ path
26+ } ;
27+
2228 Some ( OwnedPath { path, owners } )
2329 } )
2430 . collect ( )
@@ -43,11 +49,11 @@ mod tests {
4349 " ;
4450
4551 let expected: CodeOwners = vec ! [
46- ( "/src/" , vec![ "codeowner1" , "codeowner2" ] ) ,
47- ( "/docs/" , vec![ "codeowner3" ] ) ,
48- ( "/tests/" , vec![ "codeowner4" ] ) ,
49- ( "/src/utils/" , vec![ "codeowner5" ] ) ,
50- ( "/src/utils/helpers/" , vec![ "codeowner6" ] ) ,
52+ ( "/src/** " , vec![ "codeowner1" , "codeowner2" ] ) ,
53+ ( "/docs/** " , vec![ "codeowner3" ] ) ,
54+ ( "/tests/** " , vec![ "codeowner4" ] ) ,
55+ ( "/src/utils/** " , vec![ "codeowner5" ] ) ,
56+ ( "/src/utils/helpers/** " , vec![ "codeowner6" ] ) ,
5157 ]
5258 . into_iter ( )
5359 . map ( |( path, owners) | OwnedPath {
@@ -76,15 +82,15 @@ mod tests {
7682 ( "*.js" , vec![ "@js-owner" ] ) ,
7783 ( "*.go" , vec![ "docs@example.com" ] ) ,
7884 ( "*.txt" , vec![ "@octo-org/octocats" ] ) ,
79- ( "/build/logs/" , vec![ "@doctocat" ] ) ,
85+ ( "/build/logs/** " , vec![ "@doctocat" ] ) ,
8086 ( "docs/*" , vec![ "docs@example.com" ] ) ,
81- ( "apps/" , vec![ "@octocat" ] ) ,
82- ( "/docs/" , vec![ "@doctocat" ] ) ,
83- ( "/scripts/" , vec![ "@doctocat" , "@octocat" ] ) ,
87+ ( "apps/** " , vec![ "@octocat" ] ) ,
88+ ( "/docs/** " , vec![ "@doctocat" ] ) ,
89+ ( "/scripts/** " , vec![ "@doctocat" , "@octocat" ] ) ,
8490 ( "**/logs" , vec![ "@octocat" ] ) ,
85- ( "/apps/" , vec![ "@octocat" ] ) ,
91+ ( "/apps/** " , vec![ "@octocat" ] ) ,
8692 ( "/apps/github" , vec![ ] ) ,
87- ( "/apps/" , vec![ "@octocat" ] ) ,
93+ ( "/apps/** " , vec![ "@octocat" ] ) ,
8894 ( "/apps/github" , vec![ "@doctocat" ] ) ,
8995 ]
9096 . into_iter ( )
0 commit comments