UNPKG

@ammar-ahmed/automation-app-bot

Version:
71 lines (63 loc) 2.09 kB
const Topics = require('./options_processor/topics') const Visibility = require('./options_processor/visibility') const Name = require('./options_processor/name') const { Filter } = require('./filter') const consolidateResult = require('./options_processor/options/lib/consolidateResults') const constructOutput = require('./options_processor/options/lib/constructOutput') class Repository extends Filter { constructor () { super('repository') this.supportedEvents = [ 'pull_request.*', 'pull_request_review.*' ] this.supportedSettings = { visibility: 'string', topics: { must_include: { regex: 'string', regex_flag: 'string', message: 'string' }, must_exclude: { regex: 'string', regex_flag: 'string', message: 'string' } }, name: { must_include: { regex: 'string', regex_flag: 'string', message: 'string' }, must_exclude: { regex: 'string', regex_flag: 'string', message: 'string' } } } } async filter (context, settings) { const output = [] const filter = { name: settings.do, supportedOptions: this.supportedOptions } if (settings.topics) { const processor = await Topics.process(context, filter, settings) output.push(constructOutput(filter, processor.input, { topics: settings.topics }, processor.result)) } if (settings.visibility) { const processor = Visibility.process(context, filter, settings) output.push(constructOutput(filter, processor.input, { visibility: settings.visibility }, processor.result)) } if (settings.name) { const processor = await Name.process(context, filter, settings) output.push(constructOutput(filter, processor.input, { name: settings.name }, processor.result)) } return consolidateResult(output, filter) } } module.exports = Repository