blob: 546482c91415e7e712a427958d4067fcff7bc289 [file]
const collection = require('./src/collector')
const enrichment = require('./src/enricher')
module.exports = {
configuration: {
collection: null
},
configure (configuration) {
module.exports.configuration = configuration
collection.configure(configuration.collection)
},
collector: {
name: 'gitlabCollector',
exec: async function (rawDb, options) {
console.info('INFO >>> gitlab collecting', options)
await collection.collect(rawDb, options)
console.info('INFO >>> gitlab collecting done!')
return {
...options,
enricher: 'gitlabEnricher'
}
}
},
enricher: {
name: 'gitlabEnricher',
exec: async function (rawDb, enrichedDb, options) {
console.info('INFO >>> gitlab enriching', options)
await enrichment.enrich(rawDb, enrichedDb, options)
console.info('INFO >>> gitlab enriching done!')
return []
}
}
}
// for debugging only, skip if module being required
if (require.main === module) {
async function main () {
require('module-alias/register')
const dbConnector = require('@mongo/connection')
const enrichedDb = require('@db/postgres')
const configuration = require('@config/plugins.js').find(p => p.name === 'gitlab').configuration
const projectId = process.argv[2] || 24547305
const { db, client } = await dbConnector.connect()
await module.exports.configure(configuration)
try {
await module.exports.collector.exec(db, { projectId })
await module.exports.enricher.exec(db, enrichedDb, { projectId })
} finally {
dbConnector.disconnect(client)
}
}
main()
}