virtual-code-owners 9.0.0 → 9.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/dist/utensils.js +21 -0
- package/dist/version.js +1 -1
- package/dist/virtual-code-owners/parse.js +5 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -210,9 +210,8 @@ user/team names but doesn't verify their existence in the project.
|
|
|
210
210
|
(unless they're in a _section_ that has default owners `[sales related] @ch/sales`
|
|
211
211
|
in which case the rule inherits the default owners of that section)
|
|
212
212
|
- valid sections headings comply with the syntax described over at [GitLab](https://docs.gitlab.com/ee/user/project/codeowners/reference.html#sections)
|
|
213
|
-
>
|
|
214
|
-
> as a rule,
|
|
215
|
-
> to be the same as GitLab's in future releases without a major version bump.
|
|
213
|
+
> same as GitLab's syntax the line `[bla @group` is interpreted
|
|
214
|
+
> as a rule, and not as an erroneous section heading.
|
|
216
215
|
|
|
217
216
|
### Does virtual-code-owners support GitLab style sections?
|
|
218
217
|
|
package/dist/utensils.js
CHANGED
|
@@ -5,3 +5,24 @@ export function isEmailIshUsername(pUsername) {
|
|
|
5
5
|
pUsername.includes("@")
|
|
6
6
|
);
|
|
7
7
|
}
|
|
8
|
+
export function bracketsMatch(pString) {
|
|
9
|
+
const lStringWithoutComment = stripComment(pString);
|
|
10
|
+
let lBalanceCounter = 0;
|
|
11
|
+
for (const lChar of lStringWithoutComment) {
|
|
12
|
+
if (lChar === "[") {
|
|
13
|
+
lBalanceCounter++;
|
|
14
|
+
} else if (lChar === "]") {
|
|
15
|
+
lBalanceCounter--;
|
|
16
|
+
}
|
|
17
|
+
if (lBalanceCounter < 0) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return lBalanceCounter === 0;
|
|
22
|
+
}
|
|
23
|
+
function stripComment(pString) {
|
|
24
|
+
const lCommentStartPosition = pString.indexOf("#");
|
|
25
|
+
return lCommentStartPosition === -1
|
|
26
|
+
? pString
|
|
27
|
+
: pString.slice(0, lCommentStartPosition);
|
|
28
|
+
}
|
package/dist/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = "9.
|
|
1
|
+
export const VERSION = "9.1.1";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isEmailIshUsername } from "../utensils.js";
|
|
1
|
+
import { bracketsMatch, isEmailIshUsername } from "../utensils.js";
|
|
2
2
|
let STATE = {
|
|
3
3
|
currentSection: "",
|
|
4
4
|
inheritedUsers: [],
|
|
@@ -25,7 +25,10 @@ function parseLine(pUntreatedLine, pTeamMap, pLineNo) {
|
|
|
25
25
|
if (lTrimmedLine === "") {
|
|
26
26
|
return { type: "empty", line: pLineNo, raw: pUntreatedLine };
|
|
27
27
|
}
|
|
28
|
-
if (
|
|
28
|
+
if (
|
|
29
|
+
(lTrimmedLine.startsWith("[") || lTrimmedLine.startsWith("^[")) &&
|
|
30
|
+
bracketsMatch(lTrimmedLine)
|
|
31
|
+
) {
|
|
29
32
|
return parseSection(pUntreatedLine, pLineNo, pTeamMap);
|
|
30
33
|
}
|
|
31
34
|
return parseRule(pUntreatedLine, pLineNo, pTeamMap);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "virtual-code-owners",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.1.1",
|
|
4
4
|
"description": "CODEOWNERS with teams for teams that can't use GitHub teams",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"url": "https://github.com/sverweij/virtual-code-owners/issues"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"yaml": "
|
|
29
|
+
"yaml": "2.8.1"
|
|
30
30
|
},
|
|
31
31
|
"engines": {
|
|
32
32
|
"node": "^20.12||^22||>=24"
|