index.js
1 import log from 'loglevel' 2 import Logger from 'koa-logger' 3 import { Octokit } from '@octokit/rest' 4 5 import App from './app.js' 6 import DB from './db.js' 7 import Comments from './comments.js' 8 import schema from './schema.js' 9 10 /* DEFAULTS */ 11 const LOG_LEVEL = process.env.LOG_LEVEL || 'INFO' 12 const LISTEN_PORT = process.env.LISTEN_PORT || 8000 13 const GH_TOKEN = process.env.GH_TOKEN || null 14 const GH_WHITELIST = process.env.GH_WHITELIST || '' 15 const DB_PATH = process.env.DB_PATH || '/tmp/builds.db' 16 17 /* set the logging level (TRACE, DEBUG, INFO, WARN, ERROR, SILENT) */ 18 log.setDefaultLevel(log.levels[LOG_LEVEL]) 19 20 /* LevelDB for builds and comments. */ 21 const db = new DB(DB_PATH) 22 23 /* necessary to post and update comments */ 24 const gh = new Octokit({auth: `token ${GH_TOKEN}`}) 25 26 /* check if GitHub connection works */ 27 const { data } = await gh.request("/user") 28 console.log(`GitHub Login: ${data.login}`) 29 30 const ghc = new Comments({ 31 client: gh, db: db, whitelist: GH_WHITELIST.split(','), 32 }) 33 const app = App({ghc, schema}) 34 35 app.use(Logger()) 36 37 app.listen(LISTEN_PORT) 38 39 console.log(`Started at: http://localhost:${LISTEN_PORT}/`)