UNPKG

t-comm

Version:

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

95 lines (90 loc) 3.33 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var tslib_es6 = require('../tslib.es6-01322ba9.js'); var tgit_branchProtected = require('./branch-protected.js'); require('./helper.js'); require('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 tslib_es6.__awaiter(this, void 0, void 0, function () { var rule, shouldCreateAutoProjectRules, rulesList, ruleName, ruleStr; return tslib_es6.__generator(this, function (_d) { switch (_d.label) { case 0: return [4 /*yield*/, tgit_branchProtected.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*/, tgit_branchProtected.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*/, tgit_branchProtected.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*/, tgit_branchProtected.modifyAutoProtectedBranchRules({ projectName: projectName, privateToken: privateToken, baseUrl: baseUrl, rules: ruleStr, shouldUpdateExistingBranches: shouldUpdateExistingBranches })]; case 6: _d.sent(); return [2 /*return*/]; } }); }); } exports.createAutoProtectedRuleForStoryBranch = createAutoProtectedRuleForStoryBranch;