/ src / index.js
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}/`)