UNPKG

@secustor/backstage-plugin-renovate-backend

Version:
46 lines (42 loc) 1.56 kB
'use strict'; var catalogClient = require('@backstage/catalog-client'); var catalogModel = require('@backstage/catalog-model'); var index = require('../config/index.cjs.js'); async function scheduleJobSync(renovateRunner, routerOptions) { const { scheduler, auth, rootConfig, discovery } = routerOptions; const client = new catalogClient.CatalogClient({ discoveryApi: discovery }); const pluginConfig = index.getPluginConfig(rootConfig); const schedule = index.getScheduleDefinition(pluginConfig, "renovation"); if (!schedule.enabled) { return Promise.resolve(); } return scheduler.scheduleTask({ id: `renovate_scheduled_runs`, ...schedule, fn: async () => { const { token } = await auth.getPluginRequestToken({ onBehalfOf: await auth.getOwnServiceCredentials(), targetPluginId: "catalog" }); const { items: entities } = await client.getEntities( { filter: { [`metadata.annotations.${index.RENOVATE_ANNOTATION_KEEP_UPDATED}`]: catalogClient.CATALOG_FILTER_EXISTS, [`metadata.annotations.${catalogModel.ANNOTATION_SOURCE_LOCATION}`]: catalogClient.CATALOG_FILTER_EXISTS }, fields: [ "kind", "metadata.annotations", "metadata.name", "metadata.namespace", "metadata.title" ] }, { token } ); await renovateRunner.addToQueue(...entities); } }); } exports.scheduleJobSync = scheduleJobSync; //# sourceMappingURL=jobSync.cjs.js.map