-
Notifications
You must be signed in to change notification settings - Fork 2
/
models.ts
45 lines (42 loc) · 924 Bytes
/
models.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import Joi = require("joi");
export interface ILabelMatch {
missingLabel: string;
regex: string;
}
export interface IConfig {
issues?: ILabelMatch[];
pulls?: ILabelMatch[];
// fallback supoprting backwards compatibility
requiredLabels?: ILabelMatch[];
}
//
// issues:
// - missingLabel: needs-area
// regex: area:.*
// - missingLabel: needs-type
// reqex: type:.*
// pulls:
// - missingLabel: needs-area
// regex: area:.*
// - missingLabel: needs-type
// reqex: type:.*
export const schema = Joi.object().keys({
issues: Joi.array().items(
Joi.object().keys({
missingLabel: Joi.string(),
regex: Joi.string(),
})
),
pulls: Joi.array().items(
Joi.object().keys({
missingLabel: Joi.string(),
regex: Joi.string(),
})
),
requiredLabels: Joi.array().items(
Joi.object().keys({
missingLabel: Joi.string(),
regex: Joi.string(),
})
),
});