@secustor/backstage-plugin-renovate-backend
Version:
46 lines (42 loc) • 1.56 kB
JavaScript
;
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