UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

91 lines (88 loc) 3.22 kB
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 };