t-comm
Version:
专业、稳定、纯粹的工具库
290 lines (287 loc) • 9.79 kB
JavaScript
import { b as __awaiter, c as __generator, _ as __assign } from '../tslib.es6-48fa7a9b.js';
import { getDevopsAccessToken } from './token.js';
function getDevopsTemplateList(_a) {
var projectId = _a.projectId,
host = _a.host,
secretInfo = _a.secretInfo;
return __awaiter(this, void 0, void 0, function () {
var axios, accessToken, appCode, appSecret, devopsUid, resp;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
axios = require('axios');
return [4 /*yield*/, getDevopsAccessToken({
secretInfo: secretInfo,
host: host
})];
case 1:
accessToken = _b.sent();
appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid;
return [4 /*yield*/, axios({
url: "".concat(host, "/prod/v4/apigw-app/projects/").concat(projectId, "/templates"),
method: 'GET',
headers: {
'X-DEVOPS-UID': devopsUid,
'Content-Type': 'application/json',
'X-Bkapi-Authorization': JSON.stringify({
bk_app_code: appCode,
bk_app_secret: appSecret,
access_token: accessToken
})
},
params: {
page: 1,
pageSize: 90
}
})["catch"](function (err) {
console.log('[getDevopsTemplateList ] err: ', err);
})];
case 2:
resp = _b.sent();
return [2 /*return*/, resp.data.data || {}];
}
});
});
}
function getDevopsTemplateLatestVersion(_a) {
var projectId = _a.projectId,
templateId = _a.templateId,
host = _a.host,
secretInfo = _a.secretInfo;
return __awaiter(this, void 0, void 0, function () {
var templateList, template;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
return [4 /*yield*/, getDevopsTemplateList({
projectId: projectId,
secretInfo: secretInfo,
host: host
})];
case 1:
templateList = _b.sent();
template = templateList.models.find(function (item) {
return item.templateId === templateId;
});
return [2 /*return*/, template === null || template === void 0 ? void 0 : template.version];
}
});
});
}
function getHeaderAndBaseUrl(_a) {
var projectId = _a.projectId,
templateId = _a.templateId,
secretInfo = _a.secretInfo,
host = _a.host;
return __awaiter(this, void 0, void 0, function () {
var appCode, appSecret, devopsUid, accessToken, url;
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid;
return [4 /*yield*/, getDevopsAccessToken({
secretInfo: secretInfo,
host: host
})];
case 1:
accessToken = _b.sent();
url = "".concat(host, "/prod/v4/apigw-app/projects/").concat(projectId, "/templates/templateInstances?templateId=").concat(templateId);
return [2 /*return*/, {
headers: {
'X-DEVOPS-UID': devopsUid,
'Content-Type': 'application/json',
'X-Bkapi-Authorization': JSON.stringify({
bk_app_code: appCode,
bk_app_secret: appSecret,
access_token: accessToken
})
},
baseUrl: url
}];
}
});
});
}
function getDevopsTemplateInstances(_a) {
var projectId = _a.projectId,
templateId = _a.templateId,
host = _a.host,
secretInfo = _a.secretInfo,
_b = _a.page,
page = _b === void 0 ? 1 : _b,
_c = _a.pageSize,
pageSize = _c === void 0 ? 100 : _c;
return __awaiter(this, void 0, void 0, function () {
var axios, _d, headers, baseUrl, url, resp;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
axios = require('axios');
return [4 /*yield*/, getHeaderAndBaseUrl({
projectId: projectId,
templateId: templateId,
secretInfo: secretInfo,
host: host
})];
case 1:
_d = _e.sent(), headers = _d.headers, baseUrl = _d.baseUrl;
url = "".concat(baseUrl, "&page=").concat(page, "&pageSize=").concat(pageSize);
return [4 /*yield*/, axios({
headers: headers,
url: url,
method: 'GET'
})["catch"](function (err) {
console.log('[getDevopsTemplateInstances] err: ', err);
})];
case 2:
resp = _e.sent();
return [2 /*return*/, resp.data];
}
});
});
}
function getAllDevopsTemplateInstances(reqParam) {
return __awaiter(this, void 0, void 0, function () {
var list;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
list = [];
return [4 /*yield*/, innerGetInstances(list, reqParam)];
case 1:
_a.sent();
return [2 /*return*/, list];
}
});
});
}
function innerGetInstances(allData, reqParam) {
if (allData === void 0) {
allData = [];
}
return __awaiter(this, void 0, void 0, function () {
var resp, _a, page, _b, instances;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
return [4 /*yield*/, getDevopsTemplateInstances(reqParam)];
case 1:
resp = _c.sent();
_a = resp.data || {}, page = _a.page, _b = _a.instances, instances = _b === void 0 ? [] : _b;
allData.push.apply(allData, instances);
if (!instances.length) return [2 /*return*/];
return [4 /*yield*/, innerGetInstances(allData, __assign(__assign({}, reqParam), {
page: page + 1
}))];
case 2:
_c.sent();
return [2 /*return*/];
}
});
});
}
function createDevopsTemplateInstances(_a) {
var projectId = _a.projectId,
templateId = _a.templateId,
host = _a.host,
pipelineName = _a.pipelineName,
pipelineParam = _a.pipelineParam,
secretInfo = _a.secretInfo,
_b = _a.useTemplateSettings,
useTemplateSettings = _b === void 0 ? true : _b;
return __awaiter(this, void 0, void 0, function () {
var axios, version, _c, headers, baseUrl, url, resp;
return __generator(this, function (_d) {
switch (_d.label) {
case 0:
axios = require('axios');
return [4 /*yield*/, getDevopsTemplateLatestVersion({
templateId: templateId,
projectId: projectId,
secretInfo: secretInfo,
host: host
})];
case 1:
version = _d.sent();
console.log('[createDevopsTemplateInstances] version: ', version);
return [4 /*yield*/, getHeaderAndBaseUrl({
projectId: projectId,
templateId: templateId,
secretInfo: secretInfo,
host: host
})];
case 2:
_c = _d.sent(), headers = _c.headers, baseUrl = _c.baseUrl;
url = "".concat(baseUrl, "&version=").concat(version, "&useTemplateSettings=").concat(useTemplateSettings);
return [4 /*yield*/, axios({
headers: headers,
url: url,
method: 'post',
data: [{
pipelineName: pipelineName,
param: pipelineParam
}]
})["catch"](function (err) {
console.log('[createDevopsTemplateInstances] err: ', err);
})];
case 3:
resp = _d.sent();
return [2 /*return*/, resp.data];
}
});
});
}
function updateDevopsTemplateInstances(_a) {
var projectId = _a.projectId,
templateId = _a.templateId,
pipelineId = _a.pipelineId,
host = _a.host,
pipelineName = _a.pipelineName,
pipelineParam = _a.pipelineParam,
_b = _a.useTemplateSettings,
useTemplateSettings = _b === void 0 ? true : _b,
secretInfo = _a.secretInfo;
return __awaiter(this, void 0, void 0, function () {
var axios, version, _c, headers, baseUrl, url, resp;
return __generator(this, function (_d) {
switch (_d.label) {
case 0:
axios = require('axios');
return [4 /*yield*/, getDevopsTemplateLatestVersion({
templateId: templateId,
projectId: projectId,
secretInfo: secretInfo,
host: host
})];
case 1:
version = _d.sent();
console.log('[updateDevopsTemplateInstances] version: ', version);
return [4 /*yield*/, getHeaderAndBaseUrl({
projectId: projectId,
templateId: templateId,
secretInfo: secretInfo,
host: host
})];
case 2:
_c = _d.sent(), headers = _c.headers, baseUrl = _c.baseUrl;
url = "".concat(baseUrl, "&version=").concat(version, "&useTemplateSettings=").concat(useTemplateSettings);
return [4 /*yield*/, axios({
headers: headers,
url: url,
method: 'PUT',
data: [{
pipelineName: pipelineName,
pipelineId: pipelineId,
param: pipelineParam
}]
})["catch"](function (err) {
console.log('[updateDevopsTemplateInstances] err: ', err);
})];
case 3:
resp = _d.sent();
return [2 /*return*/, resp.data];
}
});
});
}
export { createDevopsTemplateInstances, getAllDevopsTemplateInstances, getDevopsTemplateInstances, updateDevopsTemplateInstances };