t-comm
Version:
专业、稳定、纯粹的工具库
91 lines (88 loc) • 3.22 kB
JavaScript
import { b as __awaiter, c as __generator } from '../tslib.es6-096fffdd.js';
import { createProtectedBranchRule, getProtectedBranchRules, getAutoProtectedBranchRules, modifyAutoProtectedBranchRules } from './branch-protected.mjs';
import './helper.mjs';
import 'axios';
function genProjectRuleForm(ruleName) {
return {
name: ruleName
};
}
function checkShouldCreateAutoProjectRule(rules) {
var keyWord = 'REGEXP "feature/story-.*"';
return !rules.includes(keyWord);
}
function getAutoProjectedRuleStr(ruleName) {
return "`".concat(ruleName, "` REGEXP \"feature/story-.*\"");
}
function getTargetRule(rules) {
if (!rules.length) return null;
return rules.find(function (item) {
return item.name.includes('develop');
}) || rules[0];
}
function createAutoProtectedRuleForStoryBranch(_a) {
var _b;
var projectName = _a.projectName,
baseUrl = _a.baseUrl,
privateToken = _a.privateToken,
_c = _a.defaultRuleName,
defaultRuleName = _c === void 0 ? 'rule_created_by_novlan1' : _c,
shouldUpdateExistingBranches = _a.shouldUpdateExistingBranches;
return __awaiter(this, void 0, void 0, function () {
var rule, shouldCreateAutoProjectRules, rulesList, ruleName, ruleStr;
return __generator(this, function (_d) {
switch (_d.label) {
case 0:
return [4 /*yield*/, getAutoProtectedBranchRules({
projectName: projectName,
privateToken: privateToken,
baseUrl: baseUrl
})];
case 1:
rule = _d.sent();
console.log('[getProtectedBranchRules] res: ', rule);
shouldCreateAutoProjectRules = checkShouldCreateAutoProjectRule(rule);
if (!shouldCreateAutoProjectRules) return [2 /*return*/];
return [4 /*yield*/, getProtectedBranchRules({
projectName: projectName,
privateToken: privateToken,
baseUrl: baseUrl
})];
case 2:
rulesList = _d.sent();
console.log('[getProtectedBranchRules] rulesList: ', rulesList);
ruleName = defaultRuleName;
if (!!rulesList.length) return [3 /*break*/, 4];
return [4 /*yield*/, createProtectedBranchRule({
projectName: projectName,
privateToken: privateToken,
baseUrl: baseUrl,
form: genProjectRuleForm(ruleName)
})];
case 3:
_d.sent();
return [3 /*break*/, 5];
case 4:
ruleName = ((_b = getTargetRule(rulesList)) === null || _b === void 0 ? void 0 : _b.name) || '';
_d.label = 5;
case 5:
if (!ruleName) {
throw new Error('No ruleName');
}
ruleStr = getAutoProjectedRuleStr(ruleName);
console.log('[ruleStr]', ruleStr);
return [4 /*yield*/, modifyAutoProtectedBranchRules({
projectName: projectName,
privateToken: privateToken,
baseUrl: baseUrl,
rules: ruleStr,
shouldUpdateExistingBranches: shouldUpdateExistingBranches
})];
case 6:
_d.sent();
return [2 /*return*/];
}
});
});
}
export { createAutoProtectedRuleForStoryBranch };