@figulus/validator-core 0.5.0-alpha-dev-02 → 0.5.0-alpha-dev-04
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/dist/changed-file.d.ts +1 -1
- package/dist/changed-file.d.ts.map +1 -1
- package/dist/changed-file.js +3 -3
- package/dist/changed-file.js.map +1 -1
- package/dist/lib/check-push-limit.d.ts +1 -1
- package/dist/lib/check-push-limit.d.ts.map +1 -1
- package/dist/lib/check-push-limit.js +5 -7
- package/dist/lib/check-push-limit.js.map +1 -1
- package/dist/lib/git-head.d.ts +2 -2
- package/dist/lib/git-head.d.ts.map +1 -1
- package/dist/lib/git-head.js +3 -3
- package/dist/lib/git-head.js.map +1 -1
- package/dist/lib/validate-file/entity.d.ts +1 -1
- package/dist/lib/validate-file/entity.d.ts.map +1 -1
- package/dist/lib/validate-file/entity.js +5 -5
- package/dist/lib/validate-file/entity.js.map +1 -1
- package/dist/lib/validate-file/namespace-metadata.d.ts +1 -1
- package/dist/lib/validate-file/namespace-metadata.d.ts.map +1 -1
- package/dist/lib/validate-file/namespace-metadata.js +2 -2
- package/dist/lib/validate-file/namespace-metadata.js.map +1 -1
- package/dist/pr.d.ts +1 -1
- package/dist/pr.d.ts.map +1 -1
- package/dist/pr.js +2 -2
- package/dist/pr.js.map +1 -1
- package/dist/registry-validator.d.ts +7 -8
- package/dist/registry-validator.d.ts.map +1 -1
- package/dist/registry-validator.js +2 -2
- package/dist/registry-validator.js.map +1 -1
- package/package.json +1 -1
- package/src/changed-file.ts +3 -3
- package/src/lib/check-push-limit.ts +11 -10
- package/src/lib/git-head.ts +5 -5
- package/src/lib/validate-file/entity.ts +6 -6
- package/src/lib/validate-file/namespace-metadata.ts +2 -2
- package/src/pr.ts +2 -2
- package/src/registry-validator.ts +15 -11
package/dist/changed-file.d.ts
CHANGED
|
@@ -24,7 +24,7 @@ export declare class ChangedFile {
|
|
|
24
24
|
getFileType(): FileType | null;
|
|
25
25
|
getNamespace(type: FileTypeEntity | "namespace"): string;
|
|
26
26
|
parseJson(): any;
|
|
27
|
-
validate(): FileValidationResult
|
|
27
|
+
validate(): Promise<FileValidationResult>;
|
|
28
28
|
}
|
|
29
29
|
export {};
|
|
30
30
|
//# sourceMappingURL=changed-file.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changed-file.d.ts","sourceRoot":"","sources":["../src/changed-file.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAMpB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAQ7B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWhE,QAAA,MAAM,oBAAoB;;;;EAAsC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA0BlE,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,cAAc,GACzB,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,cAAc,GACzB,YAAY,CAEd;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,GAChB,cAAc,GAAG,IAAI,CAKvB;AAMD,QAAA,MAAM,gCAAgC;;;EAAiC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAeF,wBAAgB,uCAAuC,CACrD,iBAAiB,EAAE,0BAA0B,GAC5C,YAAY,CAEd;AAMD,KAAK,QAAQ,GACT,cAAc,GACd,MAAM,GACN,WAAW,GACX,0BAA0B,CAAC;AAM/B,qBAAa,WAAW;IAEb,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,EAAE;gBADN,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,EAAE;IAGR,WAAW,IAAI,QAAQ,GAAG,IAAI;IAa9B,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,GAAG,MAAM;IAMxD,SAAS,IAAI,GAAG;
|
|
1
|
+
{"version":3,"file":"changed-file.d.ts","sourceRoot":"","sources":["../src/changed-file.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAMpB,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAQ7B,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAWhE,QAAA,MAAM,oBAAoB;;;;EAAsC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AA0BlE,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,cAAc,GACzB,MAAM,CAER;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,cAAc,GACzB,YAAY,CAEd;AAED,wBAAgB,8BAA8B,CAC5C,SAAS,EAAE,MAAM,GAChB,cAAc,GAAG,IAAI,CAKvB;AAMD,QAAA,MAAM,gCAAgC;;;EAAiC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,gCAAgC,CACxC,CAAC;AAeF,wBAAgB,uCAAuC,CACrD,iBAAiB,EAAE,0BAA0B,GAC5C,YAAY,CAEd;AAMD,KAAK,QAAQ,GACT,cAAc,GACd,MAAM,GACN,WAAW,GACX,0BAA0B,CAAC;AAM/B,qBAAa,WAAW;IAEb,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,EAAE;gBADN,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,EAAE;IAGR,WAAW,IAAI,QAAQ,GAAG,IAAI;IAa9B,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,WAAW,GAAG,MAAM;IAMxD,SAAS,IAAI,GAAG;IAUV,QAAQ,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAwCvD"}
|
package/dist/changed-file.js
CHANGED
|
@@ -93,7 +93,7 @@ export class ChangedFile {
|
|
|
93
93
|
const content = fs.readFileAsUtf8(fullPath);
|
|
94
94
|
return parseJSON(content);
|
|
95
95
|
}
|
|
96
|
-
validate() {
|
|
96
|
+
async validate() {
|
|
97
97
|
const fileType = this.getFileType();
|
|
98
98
|
if (!fileType) {
|
|
99
99
|
return {
|
|
@@ -112,13 +112,13 @@ export class ChangedFile {
|
|
|
112
112
|
case "spec":
|
|
113
113
|
case "stack":
|
|
114
114
|
case "parser":
|
|
115
|
-
result = validateEntity(this, fileType);
|
|
115
|
+
result = await validateEntity(this, fileType);
|
|
116
116
|
break;
|
|
117
117
|
case "blob":
|
|
118
118
|
result = validateBlob(this);
|
|
119
119
|
break;
|
|
120
120
|
case "namespace":
|
|
121
|
-
result = validateNamespaceMetadata(this);
|
|
121
|
+
result = await validateNamespaceMetadata(this);
|
|
122
122
|
break;
|
|
123
123
|
case "verified":
|
|
124
124
|
case "limits":
|
package/dist/changed-file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"changed-file.js","sourceRoot":"","sources":["../src/changed-file.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"changed-file.js","sourceRoot":"","sources":["../src/changed-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Helpers } from "../registry-validator.js";
|
|
2
2
|
import { ValidationError } from "../validation-result.js";
|
|
3
3
|
import { Settings } from "../settings.js";
|
|
4
|
-
export declare function checkPushLimit(prAuthor: string, namespace: string, helpers: Helpers, settings: Settings): ValidationError | null
|
|
4
|
+
export declare function checkPushLimit(prAuthor: string, namespace: string, helpers: Helpers, settings: Settings): Promise<ValidationError | null>;
|
|
5
5
|
//# sourceMappingURL=check-push-limit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-push-limit.d.ts","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EACL,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,
|
|
1
|
+
{"version":3,"file":"check-push-limit.d.ts","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAMnD,OAAO,EACL,eAAe,EAGhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAyEjC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getNamespaceEditorEntry } from "./namespace.js";
|
|
2
2
|
import { getNamespaceMetadataFromHead, getPushLimitOverridesFromHead, } from "./git-head.js";
|
|
3
3
|
import { ERROR_CODES, createError, } from "../validation-result.js";
|
|
4
|
-
export function checkPushLimit(prAuthor, namespace, helpers, settings) {
|
|
5
|
-
const namespaceMetadata = getNamespaceMetadataFromHead(namespace, helpers);
|
|
4
|
+
export async function checkPushLimit(prAuthor, namespace, helpers, settings) {
|
|
5
|
+
const namespaceMetadata = await getNamespaceMetadataFromHead(namespace, helpers);
|
|
6
6
|
if (!namespaceMetadata)
|
|
7
7
|
return null;
|
|
8
8
|
const editorEntry = getNamespaceEditorEntry(prAuthor, namespaceMetadata);
|
|
@@ -12,7 +12,7 @@ export function checkPushLimit(prAuthor, namespace, helpers, settings) {
|
|
|
12
12
|
unit: settings.pushLimits.default.unit,
|
|
13
13
|
value: settings.pushLimits.default.pushes,
|
|
14
14
|
};
|
|
15
|
-
const overrides = getPushLimitOverridesFromHead(helpers);
|
|
15
|
+
const overrides = await getPushLimitOverridesFromHead(helpers);
|
|
16
16
|
const override = overrides
|
|
17
17
|
? overrides.find((o) => o.namespace === namespace)
|
|
18
18
|
: undefined;
|
|
@@ -40,12 +40,10 @@ export function checkPushLimit(prAuthor, namespace, helpers, settings) {
|
|
|
40
40
|
`parsers/${namespace}/`,
|
|
41
41
|
`blobs/${namespace}/`,
|
|
42
42
|
];
|
|
43
|
-
const prs = helpers.git
|
|
44
|
-
.getAllPRs()
|
|
45
|
-
.filter((pr) => pr.user.id === prAuthor && new Date(pr.createdAt) >= startDate);
|
|
43
|
+
const prs = (await helpers.git.getAllPRs()).filter((pr) => pr.user.id === prAuthor && new Date(pr.created_at) >= startDate);
|
|
46
44
|
let count = 0;
|
|
47
45
|
for (const pr of prs) {
|
|
48
|
-
const files = helpers.git.getPRFiles(pr.url);
|
|
46
|
+
const files = await helpers.git.getPRFiles(pr.url);
|
|
49
47
|
const touchesNamespace = files.some((f) => filePrefixes.some((prefix) => f.filename.startsWith(prefix)));
|
|
50
48
|
if (touchesNamespace)
|
|
51
49
|
count++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-push-limit.js","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,WAAW,EACX,WAAW,GACZ,MAAM,yBAAyB,CAAC;AAGjC,MAAM,UAAU,cAAc,
|
|
1
|
+
{"version":3,"file":"check-push-limit.js","sourceRoot":"","sources":["../../src/lib/check-push-limit.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/git-head.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Helpers } from "../registry-validator.js";
|
|
2
2
|
import { NamespaceMetadata, PushLimitOverrides } from "@figulus/schema/registry";
|
|
3
|
-
export declare function getPushLimitOverridesFromHead(helpers: Helpers): PushLimitOverrides | null
|
|
4
|
-
export declare function getNamespaceMetadataFromHead(namespace: string, helpers: Helpers): NamespaceMetadata | null
|
|
3
|
+
export declare function getPushLimitOverridesFromHead(helpers: Helpers): Promise<PushLimitOverrides | null>;
|
|
4
|
+
export declare function getNamespaceMetadataFromHead(namespace: string, helpers: Helpers): Promise<NamespaceMetadata | null>;
|
|
5
5
|
//# sourceMappingURL=git-head.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-head.d.ts","sourceRoot":"","sources":["../../src/lib/git-head.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAkBlC,
|
|
1
|
+
{"version":3,"file":"git-head.d.ts","sourceRoot":"","sources":["../../src/lib/git-head.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EACL,iBAAiB,EAEjB,kBAAkB,EAEnB,MAAM,0BAA0B,CAAC;AAkBlC,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAMpC;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAMnC"}
|
package/dist/lib/git-head.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { namespaceMetadataSchema, pushLimitOverridesSchema, } from "@figulus/schema/registry";
|
|
2
2
|
import { parseJSON } from "./parse.js";
|
|
3
|
-
function getFileFromHeadAndParse(filePath, schema, helpers) {
|
|
3
|
+
async function getFileFromHeadAndParse(filePath, schema, helpers) {
|
|
4
4
|
try {
|
|
5
|
-
const headContent = helpers.git.showHead(filePath);
|
|
5
|
+
const headContent = await helpers.git.showHead(filePath);
|
|
6
6
|
const data = parseJSON(headContent);
|
|
7
7
|
const result = schema.safeParse(data);
|
|
8
8
|
return result.success ? data : null;
|
|
@@ -11,7 +11,7 @@ function getFileFromHeadAndParse(filePath, schema, helpers) {
|
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
export function getPushLimitOverridesFromHead(helpers) {
|
|
14
|
+
export async function getPushLimitOverridesFromHead(helpers) {
|
|
15
15
|
return getFileFromHeadAndParse("namespaces/push-limit-overrides.json", pushLimitOverridesSchema, helpers);
|
|
16
16
|
}
|
|
17
17
|
export function getNamespaceMetadataFromHead(namespace, helpers) {
|
package/dist/lib/git-head.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git-head.js","sourceRoot":"","sources":["../../src/lib/git-head.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,uBAAuB,EAEvB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,
|
|
1
|
+
{"version":3,"file":"git-head.js","sourceRoot":"","sources":["../../src/lib/git-head.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,uBAAuB,EAEvB,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,KAAK,UAAU,uBAAuB,CACpC,QAAgB,EAChB,MAAoB,EACpB,OAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAgB;IAEhB,OAAO,uBAAuB,CAC5B,sCAAsC,EACtC,wBAAwB,EACxB,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,SAAiB,EACjB,OAAgB;IAEhB,OAAO,uBAAuB,CAC5B,cAAc,SAAS,OAAO,EAC9B,uBAAuB,EACvB,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ChangedFile, FileTypeEntity } from "../../changed-file.js";
|
|
2
2
|
import { ValidationResult } from "../../validation-result.js";
|
|
3
|
-
export declare function validateEntity(file: ChangedFile, type: FileTypeEntity): ValidationResult
|
|
3
|
+
export declare function validateEntity(file: ChangedFile, type: FileTypeEntity): Promise<ValidationResult>;
|
|
4
4
|
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/lib/validate-file/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EACL,gBAAgB,EAIjB,MAAM,4BAA4B,CAAC;AAEpC,
|
|
1
|
+
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../src/lib/validate-file/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EACL,gBAAgB,EAIjB,MAAM,4BAA4B,CAAC;AAEpC,wBAAsB,cAAc,CAClC,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,gBAAgB,CAAC,CA0F3B"}
|
|
@@ -5,12 +5,12 @@ import { checkPushLimit } from "../check-push-limit.js";
|
|
|
5
5
|
import { getNamespaceMetadataFromHead } from "../git-head.js";
|
|
6
6
|
import { validateBlobReferences } from "../validate-blob-references.js";
|
|
7
7
|
import { ERROR_CODES, createError, success, } from "../../validation-result.js";
|
|
8
|
-
export function validateEntity(file, type) {
|
|
8
|
+
export async function validateEntity(file, type) {
|
|
9
9
|
const { registry, prInfo } = file.pr;
|
|
10
10
|
const { settings, helpers } = registry;
|
|
11
11
|
const { fs } = helpers;
|
|
12
12
|
const namespace = file.getNamespace(type);
|
|
13
|
-
const isAllowedToChangeEntityFile = () => {
|
|
13
|
+
const isAllowedToChangeEntityFile = async () => {
|
|
14
14
|
if (registry.isNamespaceRestricted(namespace)) {
|
|
15
15
|
if (!registry.isMaintainer(prInfo.author)) {
|
|
16
16
|
return {
|
|
@@ -22,7 +22,7 @@ export function validateEntity(file, type) {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
else {
|
|
25
|
-
const namespaceMetadata = getNamespaceMetadataFromHead(namespace, registry.helpers);
|
|
25
|
+
const namespaceMetadata = await getNamespaceMetadataFromHead(namespace, registry.helpers);
|
|
26
26
|
if (namespaceMetadata === null) {
|
|
27
27
|
return {
|
|
28
28
|
success: false,
|
|
@@ -39,7 +39,7 @@ export function validateEntity(file, type) {
|
|
|
39
39
|
],
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
|
-
const pushLimitError = checkPushLimit(prInfo.author, namespace, helpers, settings);
|
|
42
|
+
const pushLimitError = await checkPushLimit(prInfo.author, namespace, helpers, settings);
|
|
43
43
|
if (pushLimitError) {
|
|
44
44
|
return {
|
|
45
45
|
success: false,
|
|
@@ -49,7 +49,7 @@ export function validateEntity(file, type) {
|
|
|
49
49
|
}
|
|
50
50
|
return success();
|
|
51
51
|
};
|
|
52
|
-
const permissionResult = isAllowedToChangeEntityFile();
|
|
52
|
+
const permissionResult = await isAllowedToChangeEntityFile();
|
|
53
53
|
if (!permissionResult.success)
|
|
54
54
|
return permissionResult;
|
|
55
55
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/lib/validate-file/entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,2BAA2B,GAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAEL,WAAW,EACX,WAAW,EACX,OAAO,GACR,MAAM,4BAA4B,CAAC;AAEpC,MAAM,UAAU,cAAc,
|
|
1
|
+
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../src/lib/validate-file/entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { ChangedFile } from "../../changed-file.js";
|
|
2
2
|
import { ValidationResult } from "../../validation-result.js";
|
|
3
|
-
export declare function validateNamespaceMetadata(file: ChangedFile): ValidationResult
|
|
3
|
+
export declare function validateNamespaceMetadata(file: ChangedFile): Promise<ValidationResult>;
|
|
4
4
|
//# sourceMappingURL=namespace-metadata.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace-metadata.d.ts","sourceRoot":"","sources":["../../../src/lib/validate-file/namespace-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EACL,gBAAgB,EAKjB,MAAM,4BAA4B,CAAC;AAMpC,
|
|
1
|
+
{"version":3,"file":"namespace-metadata.d.ts","sourceRoot":"","sources":["../../../src/lib/validate-file/namespace-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIpD,OAAO,EACL,gBAAgB,EAKjB,MAAM,4BAA4B,CAAC;AAMpC,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkK5F"}
|
|
@@ -3,7 +3,7 @@ import { parseJSON, parseSchema } from "../parse.js";
|
|
|
3
3
|
import { validateOwnershipTransfer } from "../validate-ownership-transfer.js";
|
|
4
4
|
import { ERROR_CODES, createError, success, } from "../../validation-result.js";
|
|
5
5
|
import { validatePushLimitConstraints, getPushLimitConstraintsForEditor, } from "../validate-push-limit-constraints.js";
|
|
6
|
-
export function validateNamespaceMetadata(file) {
|
|
6
|
+
export async function validateNamespaceMetadata(file) {
|
|
7
7
|
const { registry, prInfo } = file.pr;
|
|
8
8
|
const { git } = registry.helpers;
|
|
9
9
|
const namespace = file.getNamespace("namespace");
|
|
@@ -33,7 +33,7 @@ export function validateNamespaceMetadata(file) {
|
|
|
33
33
|
if (namespace) {
|
|
34
34
|
try {
|
|
35
35
|
try {
|
|
36
|
-
const headContent = git.showHead(file.path);
|
|
36
|
+
const headContent = await git.showHead(file.path);
|
|
37
37
|
const headData = parseJSON(headContent);
|
|
38
38
|
const headEditors = headData.editors || [];
|
|
39
39
|
const isEditorInHead = headEditors.some((e) => e.username === prAuthor);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespace-metadata.js","sourceRoot":"","sources":["../../../src/lib/validate-file/namespace-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAGL,WAAW,EACX,WAAW,EACX,OAAO,GACR,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,uCAAuC,CAAC;AAE/C,MAAM,UAAU,yBAAyB,CAAC,IAAiB;
|
|
1
|
+
{"version":3,"file":"namespace-metadata.js","sourceRoot":"","sources":["../../../src/lib/validate-file/namespace-metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/pr.d.ts
CHANGED
package/dist/pr.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,EAAE;IAEJ,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,iBAAiB;gBAD3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,iBAAiB;IAG7B,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,QAAQ;IAIvB,UAAU,IAAI,OAAO;
|
|
1
|
+
{"version":3,"file":"pr.d.ts","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,eAAe,EACf,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,qBAAa,EAAE;IAEJ,MAAM,EAAE,eAAe;IACvB,QAAQ,EAAE,iBAAiB;gBAD3B,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,iBAAiB;IAG7B,SAAS,IAAI,MAAM;IAInB,WAAW,IAAI,QAAQ;IAIvB,UAAU,IAAI,OAAO;IAIf,QAAQ,IAAI,OAAO,CAAC,iBAAiB,CAAC;CAoEpD"}
|
package/dist/pr.js
CHANGED
|
@@ -15,7 +15,7 @@ export class PR {
|
|
|
15
15
|
getHelpers() {
|
|
16
16
|
return this.registry.helpers;
|
|
17
17
|
}
|
|
18
|
-
validate() {
|
|
18
|
+
async validate() {
|
|
19
19
|
const { prInfo, registry } = this;
|
|
20
20
|
const { helpers } = registry;
|
|
21
21
|
const results = [];
|
|
@@ -32,7 +32,7 @@ export class PR {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
for (const file of prInfo.changedFiles) {
|
|
35
|
-
const result = new ChangedFile(file, this).validate();
|
|
35
|
+
const result = await new ChangedFile(file, this).validate();
|
|
36
36
|
results.push(result);
|
|
37
37
|
if (!result.result.success) {
|
|
38
38
|
filesWithErrors++;
|
package/dist/pr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,MAAM,OAAO,EAAE;IAEJ;IACA;IAFT,YACS,MAAuB,EACvB,QAA2B;QAD3B,WAAM,GAAN,MAAM,CAAiB;QACvB,aAAQ,GAAR,QAAQ,CAAmB;IACjC,CAAC;IAEG,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;IAC5B,CAAC;IAEM,WAAW;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAChC,CAAC;IAEM,UAAU;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAEM,QAAQ;
|
|
1
|
+
{"version":3,"file":"pr.js","sourceRoot":"","sources":["../src/pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { PR } from "./pr.js";
|
|
2
1
|
import { Settings } from "./settings.js";
|
|
3
2
|
import { PullRequestInfo } from "./types.js";
|
|
4
3
|
export interface Helpers {
|
|
@@ -16,24 +15,24 @@ export interface Helpers {
|
|
|
16
15
|
readFileAsUtf8: (path: string) => string;
|
|
17
16
|
};
|
|
18
17
|
git: {
|
|
19
|
-
showHead: (filePath: string) => string
|
|
20
|
-
getAllPRs: () => {
|
|
18
|
+
showHead: (filePath: string, branch?: string) => Promise<string>;
|
|
19
|
+
getAllPRs: () => Promise<{
|
|
21
20
|
url: string;
|
|
22
|
-
|
|
21
|
+
created_at: string;
|
|
23
22
|
user: {
|
|
24
23
|
id: string;
|
|
25
24
|
};
|
|
26
|
-
}[]
|
|
27
|
-
getPRFiles: (
|
|
25
|
+
}[]>;
|
|
26
|
+
getPRFiles: (prUrl: string) => Promise<{
|
|
28
27
|
filename: string;
|
|
29
|
-
}[]
|
|
28
|
+
}[]>;
|
|
30
29
|
};
|
|
31
30
|
}
|
|
32
31
|
export declare class RegistryValidator {
|
|
33
32
|
helpers: Helpers;
|
|
34
33
|
settings: Settings;
|
|
35
34
|
constructor(helpers: Helpers, settings: Settings);
|
|
36
|
-
validatePr(prInfo: PullRequestInfo):
|
|
35
|
+
validatePr(prInfo: PullRequestInfo): Promise<import("./types.js").ValidationSummary>;
|
|
37
36
|
isMaintainer(user: string): boolean;
|
|
38
37
|
isNamespaceRestricted(namespace: string): boolean;
|
|
39
38
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-validator.d.ts","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry-validator.d.ts","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE;QACP,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;QAC9B,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;KACjC,CAAC;IACF,MAAM,EAAE;QACN,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC/C,CAAC;IACF,EAAE,EAAE;QACF,WAAW,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;QAC5C,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;QACtC,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;QAC3C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;KAC1C,CAAC;IACF,GAAG,EAAE;QACH,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,SAAS,EAAE,MAAM,OAAO,CACtB;YACE,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,CAAC;YACnB,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;SACtB,EAAE,CACJ,CAAC;QACF,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CACpC;YACE,QAAQ,EAAE,MAAM,CAAC;SAClB,EAAE,CACJ,CAAC;KACH,CAAC;CACH;AAED,qBAAa,iBAAiB;IAEnB,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;gBADlB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ;IAGd,UAAU,CAAC,MAAM,EAAE,eAAe;IAIxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAInC,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAGzD"}
|
|
@@ -6,8 +6,8 @@ export class RegistryValidator {
|
|
|
6
6
|
this.helpers = helpers;
|
|
7
7
|
this.settings = settings;
|
|
8
8
|
}
|
|
9
|
-
validatePr(prInfo) {
|
|
10
|
-
return new PR(prInfo, this);
|
|
9
|
+
async validatePr(prInfo) {
|
|
10
|
+
return await new PR(prInfo, this).validate();
|
|
11
11
|
}
|
|
12
12
|
isMaintainer(user) {
|
|
13
13
|
return this.settings.registryMaintainers.includes(user);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry-validator.js","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"registry-validator.js","sourceRoot":"","sources":["../src/registry-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAmC7B,MAAM,OAAO,iBAAiB;IAEnB;IACA;IAFT,YACS,OAAgB,EAChB,QAAkB;QADlB,YAAO,GAAP,OAAO,CAAS;QAChB,aAAQ,GAAR,QAAQ,CAAU;IACxB,CAAC;IAEG,KAAK,CAAC,UAAU,CAAC,MAAuB;QAC7C,OAAO,MAAM,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAEM,YAAY,CAAC,IAAY;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAEM,qBAAqB,CAAC,SAAiB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;CACF"}
|
package/package.json
CHANGED
package/src/changed-file.ts
CHANGED
|
@@ -148,7 +148,7 @@ export class ChangedFile {
|
|
|
148
148
|
return parseJSON(content);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
public validate(): FileValidationResult {
|
|
151
|
+
public async validate(): Promise<FileValidationResult> {
|
|
152
152
|
const fileType = this.getFileType();
|
|
153
153
|
|
|
154
154
|
if (!fileType) {
|
|
@@ -172,13 +172,13 @@ export class ChangedFile {
|
|
|
172
172
|
case "spec":
|
|
173
173
|
case "stack":
|
|
174
174
|
case "parser":
|
|
175
|
-
result = validateEntity(this, fileType);
|
|
175
|
+
result = await validateEntity(this, fileType);
|
|
176
176
|
break;
|
|
177
177
|
case "blob":
|
|
178
178
|
result = validateBlob(this);
|
|
179
179
|
break;
|
|
180
180
|
case "namespace":
|
|
181
|
-
result = validateNamespaceMetadata(this);
|
|
181
|
+
result = await validateNamespaceMetadata(this);
|
|
182
182
|
break;
|
|
183
183
|
case "verified":
|
|
184
184
|
case "limits":
|
|
@@ -11,13 +11,16 @@ import {
|
|
|
11
11
|
} from "../validation-result.js";
|
|
12
12
|
import { Settings } from "../settings.js";
|
|
13
13
|
|
|
14
|
-
export function checkPushLimit(
|
|
14
|
+
export async function checkPushLimit(
|
|
15
15
|
prAuthor: string,
|
|
16
16
|
namespace: string,
|
|
17
17
|
helpers: Helpers,
|
|
18
18
|
settings: Settings,
|
|
19
|
-
): ValidationError | null {
|
|
20
|
-
const namespaceMetadata = getNamespaceMetadataFromHead(
|
|
19
|
+
): Promise<ValidationError | null> {
|
|
20
|
+
const namespaceMetadata = await getNamespaceMetadataFromHead(
|
|
21
|
+
namespace,
|
|
22
|
+
helpers,
|
|
23
|
+
);
|
|
21
24
|
if (!namespaceMetadata) return null;
|
|
22
25
|
|
|
23
26
|
const editorEntry = getNamespaceEditorEntry(prAuthor, namespaceMetadata);
|
|
@@ -28,7 +31,7 @@ export function checkPushLimit(
|
|
|
28
31
|
value: settings.pushLimits.default.pushes,
|
|
29
32
|
};
|
|
30
33
|
|
|
31
|
-
const overrides = getPushLimitOverridesFromHead(helpers);
|
|
34
|
+
const overrides = await getPushLimitOverridesFromHead(helpers);
|
|
32
35
|
const override = overrides
|
|
33
36
|
? overrides.find((o) => o.namespace === namespace)
|
|
34
37
|
: undefined;
|
|
@@ -61,15 +64,13 @@ export function checkPushLimit(
|
|
|
61
64
|
`blobs/${namespace}/`,
|
|
62
65
|
];
|
|
63
66
|
|
|
64
|
-
const prs = helpers.git
|
|
65
|
-
.
|
|
66
|
-
|
|
67
|
-
(pr) => pr.user.id === prAuthor && new Date(pr.createdAt) >= startDate,
|
|
68
|
-
);
|
|
67
|
+
const prs = (await helpers.git.getAllPRs()).filter(
|
|
68
|
+
(pr) => pr.user.id === prAuthor && new Date(pr.created_at) >= startDate,
|
|
69
|
+
);
|
|
69
70
|
|
|
70
71
|
let count = 0;
|
|
71
72
|
for (const pr of prs) {
|
|
72
|
-
const files = helpers.git.getPRFiles(pr.url);
|
|
73
|
+
const files = await helpers.git.getPRFiles(pr.url);
|
|
73
74
|
|
|
74
75
|
const touchesNamespace = files.some((f: any) =>
|
|
75
76
|
filePrefixes.some((prefix) => f.filename.startsWith(prefix)),
|
package/src/lib/git-head.ts
CHANGED
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
} from "@figulus/schema/registry";
|
|
9
9
|
import { parseJSON } from "./parse.js";
|
|
10
10
|
|
|
11
|
-
function getFileFromHeadAndParse(
|
|
11
|
+
async function getFileFromHeadAndParse(
|
|
12
12
|
filePath: string,
|
|
13
13
|
schema: SchemaObject,
|
|
14
14
|
helpers: Helpers,
|
|
15
15
|
) {
|
|
16
16
|
try {
|
|
17
|
-
const headContent = helpers.git.showHead(filePath);
|
|
17
|
+
const headContent = await helpers.git.showHead(filePath);
|
|
18
18
|
const data = parseJSON(headContent);
|
|
19
19
|
const result = schema.safeParse(data);
|
|
20
20
|
return result.success ? data : null;
|
|
@@ -23,9 +23,9 @@ function getFileFromHeadAndParse(
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export function getPushLimitOverridesFromHead(
|
|
26
|
+
export async function getPushLimitOverridesFromHead(
|
|
27
27
|
helpers: Helpers,
|
|
28
|
-
): PushLimitOverrides | null {
|
|
28
|
+
): Promise<PushLimitOverrides | null> {
|
|
29
29
|
return getFileFromHeadAndParse(
|
|
30
30
|
"namespaces/push-limit-overrides.json",
|
|
31
31
|
pushLimitOverridesSchema,
|
|
@@ -36,7 +36,7 @@ export function getPushLimitOverridesFromHead(
|
|
|
36
36
|
export function getNamespaceMetadataFromHead(
|
|
37
37
|
namespace: string,
|
|
38
38
|
helpers: Helpers,
|
|
39
|
-
): NamespaceMetadata | null {
|
|
39
|
+
): Promise<NamespaceMetadata | null> {
|
|
40
40
|
return getFileFromHeadAndParse(
|
|
41
41
|
`namespaces/${namespace}.json`,
|
|
42
42
|
namespaceMetadataSchema,
|
|
@@ -15,17 +15,17 @@ import {
|
|
|
15
15
|
success,
|
|
16
16
|
} from "../../validation-result.js";
|
|
17
17
|
|
|
18
|
-
export function validateEntity(
|
|
18
|
+
export async function validateEntity(
|
|
19
19
|
file: ChangedFile,
|
|
20
20
|
type: FileTypeEntity,
|
|
21
|
-
): ValidationResult {
|
|
21
|
+
): Promise<ValidationResult> {
|
|
22
22
|
const { registry, prInfo } = file.pr;
|
|
23
23
|
const { settings, helpers } = registry;
|
|
24
24
|
const { fs } = helpers;
|
|
25
25
|
|
|
26
26
|
const namespace = file.getNamespace(type);
|
|
27
27
|
|
|
28
|
-
const isAllowedToChangeEntityFile = () => {
|
|
28
|
+
const isAllowedToChangeEntityFile = async () => {
|
|
29
29
|
if (registry.isNamespaceRestricted(namespace)) {
|
|
30
30
|
if (!registry.isMaintainer(prInfo.author)) {
|
|
31
31
|
return {
|
|
@@ -39,7 +39,7 @@ export function validateEntity(
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
} else {
|
|
42
|
-
const namespaceMetadata = getNamespaceMetadataFromHead(
|
|
42
|
+
const namespaceMetadata = await getNamespaceMetadataFromHead(
|
|
43
43
|
namespace,
|
|
44
44
|
registry.helpers,
|
|
45
45
|
);
|
|
@@ -67,7 +67,7 @@ export function validateEntity(
|
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
|
|
70
|
-
const pushLimitError = checkPushLimit(
|
|
70
|
+
const pushLimitError = await checkPushLimit(
|
|
71
71
|
prInfo.author,
|
|
72
72
|
namespace,
|
|
73
73
|
helpers,
|
|
@@ -84,7 +84,7 @@ export function validateEntity(
|
|
|
84
84
|
return success();
|
|
85
85
|
};
|
|
86
86
|
|
|
87
|
-
const permissionResult = isAllowedToChangeEntityFile();
|
|
87
|
+
const permissionResult = await isAllowedToChangeEntityFile();
|
|
88
88
|
if (!permissionResult.success) return permissionResult;
|
|
89
89
|
|
|
90
90
|
try {
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getPushLimitConstraintsForEditor,
|
|
15
15
|
} from "../validate-push-limit-constraints.js";
|
|
16
16
|
|
|
17
|
-
export function validateNamespaceMetadata(file: ChangedFile): ValidationResult {
|
|
17
|
+
export async function validateNamespaceMetadata(file: ChangedFile): Promise<ValidationResult> {
|
|
18
18
|
const { registry, prInfo } = file.pr;
|
|
19
19
|
const { git } = registry.helpers;
|
|
20
20
|
|
|
@@ -60,7 +60,7 @@ export function validateNamespaceMetadata(file: ChangedFile): ValidationResult {
|
|
|
60
60
|
if (namespace) {
|
|
61
61
|
try {
|
|
62
62
|
try {
|
|
63
|
-
const headContent = git.showHead(file.path);
|
|
63
|
+
const headContent = await git.showHead(file.path);
|
|
64
64
|
const headData = parseJSON(headContent);
|
|
65
65
|
|
|
66
66
|
const headEditors = headData.editors || [];
|
package/src/pr.ts
CHANGED
|
@@ -25,7 +25,7 @@ export class PR {
|
|
|
25
25
|
return this.registry.helpers;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
public validate(): ValidationSummary {
|
|
28
|
+
public async validate(): Promise<ValidationSummary> {
|
|
29
29
|
const { prInfo, registry } = this;
|
|
30
30
|
const { helpers } = registry;
|
|
31
31
|
|
|
@@ -45,7 +45,7 @@ export class PR {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
for (const file of prInfo.changedFiles) {
|
|
48
|
-
const result = new ChangedFile(file, this).validate();
|
|
48
|
+
const result = await new ChangedFile(file, this).validate();
|
|
49
49
|
results.push(result);
|
|
50
50
|
|
|
51
51
|
if (!result.result.success) {
|
|
@@ -17,15 +17,19 @@ export interface Helpers {
|
|
|
17
17
|
readFileAsUtf8: (path: string) => string;
|
|
18
18
|
};
|
|
19
19
|
git: {
|
|
20
|
-
showHead: (filePath: string) => string
|
|
21
|
-
getAllPRs: () =>
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
20
|
+
showHead: (filePath: string, branch?: string) => Promise<string>;
|
|
21
|
+
getAllPRs: () => Promise<
|
|
22
|
+
{
|
|
23
|
+
url: string;
|
|
24
|
+
created_at: string;
|
|
25
|
+
user: { id: string };
|
|
26
|
+
}[]
|
|
27
|
+
>;
|
|
28
|
+
getPRFiles: (prUrl: string) => Promise<
|
|
29
|
+
{
|
|
30
|
+
filename: string;
|
|
31
|
+
}[]
|
|
32
|
+
>;
|
|
29
33
|
};
|
|
30
34
|
}
|
|
31
35
|
|
|
@@ -35,8 +39,8 @@ export class RegistryValidator {
|
|
|
35
39
|
public settings: Settings,
|
|
36
40
|
) {}
|
|
37
41
|
|
|
38
|
-
public validatePr(prInfo: PullRequestInfo) {
|
|
39
|
-
return new PR(prInfo, this);
|
|
42
|
+
public async validatePr(prInfo: PullRequestInfo) {
|
|
43
|
+
return await new PR(prInfo, this).validate();
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
public isMaintainer(user: string): boolean {
|