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`))