/
index.js
37 lines (30 loc) · 1.01 KB
/
index.js
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
const {getInput, warning, setFailed} = require('@actions/core')
const {getProjectsAndBoards, getTaskDetails, moveTask} = require('./knz')
const {extractRef, checkApproved} = require('./utils')
const moveTo = getInput('MOVE_TO', {required: true})
const main = async () => {
const branch = await extractRef()
const [type, prefixedTask] = branch.split('/')
if (!prefixedTask.startsWith('KB-')) {
warning(`not kanbanize branch.(${branch}) ignore.`)
return
}
const taskid = prefixedTask.replace('KB-', '')
const {projects: [{id}]} = await getProjectsAndBoards()
const task = await getTaskDetails(id, taskid)
if (!task) {
setFailed(`cannot find task (${taskid}) on kanbanize.`)
return
}
const {boardid, columnname} = task
if (moveTo === columnname) {
warning(`task already on ${columnname}. ignore.`)
return
}
if (moveTo === 'approved' && !checkApproved()) {
warning('approve condition should be satisfied. ignore')
return
}
await moveTask(boardid, taskid, moveTo)
}
main()