Commit f35c797
authored
fix: add CODEOWNERS parse cache and tighten email validation (#222)
* feat: add CODEOWNERS module with parsing, matching, and ownership data
Adds src/owners.js implementing CODEOWNERS parsing (3 standard locations),
glob-to-regex pattern matching (**, *, ?, anchored/unanchored), last-match-wins
owner resolution, file-level and symbol-level ownership data, cross-owner
boundary detection, and diff-impact integration helper.
Includes unit tests (parseCodeownersContent, patternToRegex, matchOwners,
parseCodeowners) and integration tests (ownersData, ownersForFiles with
fixture DB and CODEOWNERS file).
Also updates BACKLOG.md to mark branch structural diff as done and
reorganize backlog items.
* fix: add parseCodeowners cache and tighten email validation
Cache CODEOWNERS parse results per rootDir, invalidated by file mtime.
Replace permissive `p.includes('@')` email filter with regex that
requires non-empty local and domain parts.
Impact: 3 functions changed, 4 affected
* fix(test): set mtime after write for Windows NTFS compatibility
NTFS can lazily update mtime on writeFileSync, causing the cache
invalidation test to see a stale timestamp. Set mtime explicitly
after writing to guarantee it differs from the cached value.
* fix: restore BACKLOG.md to main branch version
Remove stale BACKLOG.md changes that leaked from outdated branch base,
reverting completion status of 6 items and the date regression.
* fix: sync BACKLOG.md with latest main (restore 6 completed items)
Previous commit restored from stale local main. This fetches from
origin/main to correctly preserve all DONE markers for IDs 5, 15,
16, 18, 20, 31 and the current date.1 parent 850ef3e commit f35c797
File tree
3 files changed
+63
-5
lines changed- src
- tests
- integration
- unit
3 files changed
+63
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | 4 | | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
9 | 8 | | |
10 | 9 | | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
11 | 13 | | |
12 | 14 | | |
| 15 | + | |
13 | 16 | | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| 20 | + | |
| 21 | + | |
17 | 22 | | |
18 | 23 | | |
19 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
20 | 29 | | |
21 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
22 | 33 | | |
23 | 34 | | |
| 35 | + | |
24 | 36 | | |
25 | 37 | | |
26 | 38 | | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
27 | 44 | | |
28 | 45 | | |
29 | 46 | | |
| |||
37 | 54 | | |
38 | 55 | | |
39 | 56 | | |
40 | | - | |
| 57 | + | |
41 | 58 | | |
42 | 59 | | |
43 | 60 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
7 | 6 | | |
8 | 7 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | 5 | | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
40 | 56 | | |
41 | 57 | | |
42 | 58 | | |
| |||
147 | 163 | | |
148 | 164 | | |
149 | 165 | | |
| 166 | + | |
150 | 167 | | |
151 | 168 | | |
152 | 169 | | |
| |||
190 | 207 | | |
191 | 208 | | |
192 | 209 | | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
193 | 235 | | |
0 commit comments