You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.9 KiB

const express = require('express')
const bodyParser = require('body-parser')
const axios = require('axios')
const app = express()
const Gitea = require('./gitea.js')
const gitea = new Gitea("https://yourgiteainstall.com/api/v1", 'apikey')
const ncUser = ""
const ncPass = ""
const ncApi = "https://yournextcloudinstall.com/index.php/apps/deck/api/v1.0"
const ncBoard = 2
app.use(bodyParser.json())
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*")
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept")
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS, HEAD')
next()
})
// gitea only POSTs and only to a single URL. We'll need to parse json for more info on what's happening
app.post("/", (req, res) => {
let repo = req.body.repository.full_name
let issue = req.body.issue.number
let action = req.body.action
gitea.createLabel('Deck',"#0082C9", repo) // Double check existace of issue label, if not; create.
console.log(`${req.body.action} | [${req.body.repository.full_name}] #${req.body.issue.number}:${req.body.issue.title}`)
// console.log(`(${req.body.issue.url})`)
if(action == "label_updated" || action == "reopened" || action == "opened" || action == "label_cleared") {
gitea.labelStatus('Deck', repo, issue).then((set) => {
if(set) {
console.log("Label Deck detected")
gitea.comment(`Issue added to deck :-)`, repo, issue)
} else {
console.log("Label Deck not detected")
}
})
}
else if(action == 'closed'){
console.log('Issue closed')
}
else {
console.log(`Received unsupported action "${action}"`)
// console.log(JSON.stringify(req.headers, null,2))
// console.log(JSON.stringify(req.body, null,2))
}
res.send("okay") // generate some feedback for gitea
})
app.listen(80, () => console.log(`Aapie running on 80`))