-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
40 lines (35 loc) · 965 Bytes
/
index.js
File metadata and controls
40 lines (35 loc) · 965 Bytes
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
const Ajv = require("ajv")
const ajv = new Ajv()
const addFormats = require("ajv-formats")
addFormats(ajv)
const core = require('@actions/core');
const github = require('@actions/github');
try {
const schema = {
type: "object",
properties: {
name: {type: "string"},
age: {type: "integer"},
email: {
type: "string",
format: "email"
},
},
required: ["name", "age", "email"],
additionalProperties: false
}
const validate = ajv.compile(schema)
const user = {
name: core.getInput('user-name'),
age: parseInt(core.getInput('user-age')),
email: core.getInput('user-email'),
}
const valid = validate(user)
if(valid){
core.setOutput("is-valid", `${JSON.stringify(user)} is a valid object`);
}else{
core.setFailed(validate.errors)
}
} catch (error) {
core.setFailed(error.message);
}