projen
Version:
CDK for software projects
55 lines • 10.5 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Mergify = void 0;
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const component_1 = require("../component");
const util_1 = require("../util");
const yaml_1 = require("../yaml");
class Mergify extends component_1.Component {
constructor(github, options = {}) {
super(github.project);
this.rules = new Array();
this.queues = new Array();
for (const rule of options.rules ?? []) {
this.addRule(rule);
}
for (const queue of options.queues ?? []) {
this.addQueue(queue);
}
}
createYamlFile() {
if (this.yamlFile == null) {
this.yamlFile = new yaml_1.YamlFile(this.project, ".mergify.yml", {
obj: {
queue_rules: () => this.queues.map((q) => (0, util_1.snakeCaseKeys)(q, false)),
pull_request_rules: this.rules,
merge_queue: {
max_parallel_checks: 1,
},
},
// Mergify needs to read the file from the repository in order to work.
committed: true,
});
}
}
addRule(rule) {
this.rules.push(rule);
this.createYamlFile();
}
addQueue(queue) {
if (queue.conditions && !queue.queueConditions) {
queue = {
...queue,
queueConditions: queue.conditions,
conditions: undefined,
};
}
this.queues.push(queue);
this.createYamlFile();
}
}
exports.Mergify = Mergify;
_a = JSII_RTTI_SYMBOL_1;
Mergify[_a] = { fqn: "projen.github.Mergify", version: "0.99.51" };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2lmeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9naXRodWIvbWVyZ2lmeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDRDQUF5QztBQUN6QyxrQ0FBd0M7QUFDeEMsa0NBQW1DO0FBOEduQyxNQUFhLE9BQVEsU0FBUSxxQkFBUztJQU1wQyxZQUFZLE1BQWMsRUFBRSxVQUEwQixFQUFFO1FBQ3RELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOUCxVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQWUsQ0FBQztRQUNqQyxXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWdCLENBQUM7UUFPbEQsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYztRQUNwQixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRTtnQkFDekQsR0FBRyxFQUFFO29CQUNILFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBQSxvQkFBYSxFQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDbEUsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUs7b0JBQzlCLFdBQVcsRUFBRTt3QkFDWCxtQkFBbUIsRUFBRSxDQUFDO3FCQUN2QjtpQkFDRjtnQkFDRCx1RUFBdUU7Z0JBQ3ZFLFNBQVMsRUFBRSxJQUFJO2FBQ2hCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sT0FBTyxDQUFDLElBQWlCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQW1CO1FBQ2pDLElBQUksS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMvQyxLQUFLLEdBQUc7Z0JBQ04sR0FBRyxLQUFLO2dCQUNSLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVTtnQkFDakMsVUFBVSxFQUFFLFNBQVM7YUFDdEIsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs7QUFqREgsMEJBa0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHaXRIdWIgfSBmcm9tIFwiLi9naXRodWJcIjtcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRcIjtcbmltcG9ydCB7IHNuYWtlQ2FzZUtleXMgfSBmcm9tIFwiLi4vdXRpbFwiO1xuaW1wb3J0IHsgWWFtbEZpbGUgfSBmcm9tIFwiLi4veWFtbFwiO1xuXG4vKipcbiAqIFRoZSBNZXJnaWZ5IGNvbmRpdGlvbmFsIG9wZXJhdG9ycyB0aGF0IGNhbiBiZSB1c2VkIGFyZTogYG9yYCBhbmQgYGFuZGAuXG4gKiBOb3RlOiBUaGUgbnVtYmVyIG9mIG5lc3RlZCBjb25kaXRpb25zIGlzIGxpbWl0ZWQgdG8gMy5cbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLm1lcmdpZnkuaW8vY29uZGl0aW9ucy8jY29tYmluaW5nLWNvbmRpdGlvbnMtd2l0aC1vcGVyYXRvcnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXJnaWZ5Q29uZGl0aW9uYWxPcGVyYXRvciB7XG4gIHJlYWRvbmx5IG9yPzogTWVyZ2lmeUNvbmRpdGlvbltdO1xuICByZWFkb25seSBhbmQ/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG59XG5cbmV4cG9ydCB0eXBlIE1lcmdpZnlDb25kaXRpb24gPSBzdHJpbmcgfCBNZXJnaWZ5Q29uZGl0aW9uYWxPcGVyYXRvcjtcblxuZXhwb3J0IGludGVyZmFjZSBNZXJnaWZ5UnVsZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcnVsZS4gVGhpcyBpcyBub3QgdXNlZCBieSB0aGUgZW5naW5lIGRpcmVjdGx5LFxuICAgKiBidXQgaXMgdXNlZCB3aGVuIHJlcG9ydGluZyBpbmZvcm1hdGlvbiBhYm91dCBhIHJ1bGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgQ29uZGl0aW9ucyBzdHJpbmcgdGhhdCBtdXN0IG1hdGNoIGFnYWluc3QgdGhlXG4gICAqIHB1bGwgcmVxdWVzdCBmb3IgdGhlIHJ1bGUgdG8gYmUgYXBwbGllZC5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5pby9jb25kaXRpb25zLyNjb25kaXRpb25zXG4gICAqL1xuICByZWFkb25seSBjb25kaXRpb25zOiBNZXJnaWZ5Q29uZGl0aW9uW107XG4gIC8qKlxuICAgKiBBIGRpY3Rpb25hcnkgbWFkZSBvZiBBY3Rpb25zIHRoYXQgd2lsbCBiZSBleGVjdXRlZCBvbiB0aGVcbiAgICogbWF0Y2hpbmcgcHVsbCByZXF1ZXN0cy5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5pby9hY3Rpb25zLyNhY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25zOiB7IFthY3Rpb246IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lcmdpZnlRdWV1ZSB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcXVldWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1lcmdlIG1ldGhvZCB0byB1c2UuXG4gICAqXG4gICAqIFBvc3NpYmxlIHZhbHVlcyBhcmUgYG1lcmdlYCwgYHNxdWFzaGAsIGByZWJhc2VgIG9yIGBmYXN0LWZvcndhcmRgLlxuICAgKiBgZmFzdC1mb3J3YXJkYCBpcyBub3Qgc3VwcG9ydGVkIG9uIHF1ZXVlcyB3aXRoIGBzcGVjdWxhdGl2ZV9jaGVja3NgID4gMSwgYGJhdGNoX3NpemVgID4gMSwgb3Igd2l0aCBgYWxsb3dfaW5wbGFjZV9jaGVja3NgIHNldCB0byBmYWxzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJtZXJnZVwiXG4gICAqL1xuICByZWFkb25seSBtZXJnZU1ldGhvZD86IHN0cmluZztcblxuICAvKipcbiAgICogTWV0aG9kIHRvIHVzZSB0byB1cGRhdGUgdGhlIHB1bGwgcmVxdWVzdCB3aXRoIGl0cyBiYXNlIGJyYW5jaCB3aGVuIHRoZSBzcGVjdWxhdGl2ZSBjaGVjayBpcyBkb25lIGluLXBsYWNlLlxuICAgKlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6XG4gICAqICAtIGBtZXJnZWAgdG8gbWVyZ2UgdGhlIGJhc2UgYnJhbmNoIGludG8gdGhlIHB1bGwgcmVxdWVzdC5cbiAgICogIC0gYHJlYmFzZWAgdG8gcmViYXNlIHRoZSBwdWxsIHJlcXVlc3QgYWdhaW5zdCBpdHMgYmFzZSBicmFuY2guXG4gICAqXG4gICAqIE5vdGUgdGhhdCB0aGUgYHJlYmFzZWAgbWV0aG9kIGhhcyBzb21lIGRyYXdiYWNrcywgc2VlIE1lcmdpZnkgZG9jcyBmb3IgZGV0YWlscy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vYWN0aW9ucy9xdWV1ZS8jcXVldWUtcnVsZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBgbWVyZ2VgIGZvciBhbGwgbWVyZ2UgbWV0aG9kcyBleGNlcHQgYGZhc3QtZm9yd2FyZGAgd2hlcmUgYHJlYmFzZWAgaXMgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgdXBkYXRlTWV0aG9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiBjb25kaXRpb25zIHRoYXQgbmVlZHMgdG8gbWF0Y2ggdG8gcXVldWUgdGhlIHB1bGwgcmVxdWVzdC5cbiAgICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vY29uZmlndXJhdGlvbi9maWxlLWZvcm1hdC8jcXVldWUtcnVsZXNcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIGBxdWV1ZUNvbmRpdGlvbnNgIGluc3RlYWRcbiAgICovXG4gIHJlYWRvbmx5IGNvbmRpdGlvbnM/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvbmRpdGlvbnMgdGhhdCBuZWVkcyB0byBtYXRjaCB0byBxdWV1ZSB0aGUgcHVsbCByZXF1ZXN0LlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS9jb25kaXRpb25zLyNjb25kaXRpb25zXG4gICAqL1xuICByZWFkb25seSBxdWV1ZUNvbmRpdGlvbnM/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGNvbmRpdGlvbnMgdG8gbWF0Y2ggdG8gZ2V0IHRoZSBxdWV1ZWQgcHVsbCByZXF1ZXN0IG1lcmdlZC5cbiAgICogVGhpcyBhdXRvbWF0aWNhbGx5IGluY2x1ZGVzIHRoZSBxdWV1ZUNvbmRpdGlvbnMuXG4gICAqIEluIGNhc2Ugb2Ygc3BlY3VsYXRpdmUgbWVyZ2UgcHVsbCByZXF1ZXN0LCB0aGUgbWVyZ2UgY29uZGl0aW9ucyBhcmUgZXZhbHVhdGVkIGFnYWluc3QgdGhlIHRlbXBvcmFyeSBwdWxsIHJlcXVlc3QgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lLlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5tZXJnaWZ5LmNvbS9jb25kaXRpb25zLyNjb25kaXRpb25zXG4gICAqL1xuICByZWFkb25seSBtZXJnZUNvbmRpdGlvbnM/OiBNZXJnaWZ5Q29uZGl0aW9uW107XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHRvIHVzZSBhcyB0aGUgY29tbWl0IG1lc3NhZ2Ugd2hlbiB1c2luZyB0aGUgbWVyZ2Ugb3Igc3F1YXNoIG1lcmdlIG1ldGhvZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbW1pdE1lc3NhZ2VUZW1wbGF0ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyZSBNZXJnaWZ5LlxuICpcbiAqIFRoaXMgY3VycmVudGx5IG9ubHkgb2ZmZXJzIGEgc3Vic2V0IG9mIG9wdGlvbnMgYXZhaWxhYmxlLlxuICogQHNlZSBodHRwczovL2RvY3MubWVyZ2lmeS5jb20vY29uZmlndXJhdGlvbi9maWxlLWZvcm1hdC9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZXJnaWZ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBQdWxsIHJlcXVlc3QgYXV0b21hdGlvbiBydWxlcy5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzPzogTWVyZ2lmeVJ1bGVbXTtcbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFibGUgbWVyZ2UgcXVldWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVzPzogTWVyZ2lmeVF1ZXVlW107XG59XG5cbmV4cG9ydCBjbGFzcyBNZXJnaWZ5IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBydWxlcyA9IG5ldyBBcnJheTxNZXJnaWZ5UnVsZT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBxdWV1ZXMgPSBuZXcgQXJyYXk8TWVyZ2lmeVF1ZXVlPigpO1xuICAvLyBUaGUgYWN0dWFsIFlBTUwgZmlsZSB3aWxsIG9ubHkgYmUgY3JlYXRlZCBpZiBhdCBsZWFzdCAxIHJ1bGUgaXMgYWRkZWQuXG4gIHByaXZhdGUgeWFtbEZpbGU/OiBZYW1sRmlsZTtcblxuICBjb25zdHJ1Y3RvcihnaXRodWI6IEdpdEh1Yiwgb3B0aW9uczogTWVyZ2lmeU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKGdpdGh1Yi5wcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgcnVsZSBvZiBvcHRpb25zLnJ1bGVzID8/IFtdKSB7XG4gICAgICB0aGlzLmFkZFJ1bGUocnVsZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBxdWV1ZSBvZiBvcHRpb25zLnF1ZXVlcyA/PyBbXSkge1xuICAgICAgdGhpcy5hZGRRdWV1ZShxdWV1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVZYW1sRmlsZSgpIHtcbiAgICBpZiAodGhpcy55YW1sRmlsZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnlhbWxGaWxlID0gbmV3IFlhbWxGaWxlKHRoaXMucHJvamVjdCwgXCIubWVyZ2lmeS55bWxcIiwge1xuICAgICAgICBvYmo6IHtcbiAgICAgICAgICBxdWV1ZV9ydWxlczogKCkgPT4gdGhpcy5xdWV1ZXMubWFwKChxKSA9PiBzbmFrZUNhc2VLZXlzKHEsIGZhbHNlKSksXG4gICAgICAgICAgcHVsbF9yZXF1ZXN0X3J1bGVzOiB0aGlzLnJ1bGVzLFxuICAgICAgICAgIG1lcmdlX3F1ZXVlOiB7XG4gICAgICAgICAgICBtYXhfcGFyYWxsZWxfY2hlY2tzOiAxLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIE1lcmdpZnkgbmVlZHMgdG8gcmVhZCB0aGUgZmlsZSBmcm9tIHRoZSByZXBvc2l0b3J5IGluIG9yZGVyIHRvIHdvcmsuXG4gICAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhZGRSdWxlKHJ1bGU6IE1lcmdpZnlSdWxlKSB7XG4gICAgdGhpcy5ydWxlcy5wdXNoKHJ1bGUpO1xuICAgIHRoaXMuY3JlYXRlWWFtbEZpbGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRRdWV1ZShxdWV1ZTogTWVyZ2lmeVF1ZXVlKSB7XG4gICAgaWYgKHF1ZXVlLmNvbmRpdGlvbnMgJiYgIXF1ZXVlLnF1ZXVlQ29uZGl0aW9ucykge1xuICAgICAgcXVldWUgPSB7XG4gICAgICAgIC4uLnF1ZXVlLFxuICAgICAgICBxdWV1ZUNvbmRpdGlvbnM6IHF1ZXVlLmNvbmRpdGlvbnMsXG4gICAgICAgIGNvbmRpdGlvbnM6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuICAgIHRoaXMucXVldWVzLnB1c2gocXVldWUpO1xuICAgIHRoaXMuY3JlYXRlWWFtbEZpbGUoKTtcbiAgfVxufVxuIl19