feat: rebasing

feat: backport open prs
This commit is contained in:
Andrea Lamparelli 2023-01-05 11:36:19 +01:00
commit 886fab70b3
53 changed files with 48467 additions and 0 deletions

View file

@ -0,0 +1,37 @@
import { Args } from "@bp/service/args/args.types";
import { Configs } from "@bp/service/configs/configs.types";
import LoggerService from "../logger/logger-service";
import LoggerServiceFactory from "../logger/logger-service-factory";
/**
* Abstract configuration parser class in charge to parse
* Args and produces a common Configs object
*/
export default abstract class ConfigsParser {
private readonly logger: LoggerService;
constructor() {
this.logger = LoggerServiceFactory.getLogger();
}
abstract parse(args: Args): Promise<Configs>;
async parseAndValidate(args: Args): Promise<Configs> {
const configs: Configs = await this.parse(args);
// apply validation, throw errors if something is wrong
// if pr is opened check if the there exists one single commit
if (configs.originalPullRequest.state == "open") {
this.logger.warn("Trying to backport an open pull request!");
}
// if PR is closed and not merged log a warning
if (configs.originalPullRequest.state == "closed" && !configs.originalPullRequest.merged) {
throw new Error("Provided pull request is closed and not merged!");
}
return Promise.resolve(configs);
}
}