t-comm
Version:
专业、稳定、纯粹的工具库
149 lines (146 loc) • 5.1 kB
JavaScript
import { b as __awaiter, c as __generator, _ as __assign } from '../tslib.es6-096fffdd.js';
import axios from 'axios';
import { getDevopsAccessToken } from './token.mjs';
/**
* 启动流水线
* @param {object} params 配置信息
* @param {string} params.projectId 项目ID
* @param {string} params.pipelineId 流水线ID
* @param {object} params.secretInfo 密钥信息
* @param {string} params.host 请求域名
* @param {object} params.data 请求数据
*/
function startDevopsPipeline(_a) {
var projectId = _a.projectId,
pipelineId = _a.pipelineId,
secretInfo = _a.secretInfo,
host = _a.host,
data = _a.data;
return __awaiter(this, void 0, void 0, function () {
var appCode, appSecret, devopsUid, accessToken, resp;
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();
return [4 /*yield*/, axios({
url: "".concat(host, "/prod/v4/apigw-app/projects/").concat(projectId, "/build_start?pipelineId=").concat(pipelineId),
method: 'post',
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
})
},
data: __assign({}, data || {})
})["catch"](function (err) {
console.log('[startDevopsPipeline] err: ', err);
})];
case 2:
resp = _b.sent();
return [2 /*return*/, resp.data];
}
});
});
}
/**
* 获取流水线列表
* @param {object} params 配置信息
* @param {string} params.projectId 项目ID
* @param {object} params.secretInfo 密钥信息
* @param {string} params.host 请求域名
* @param {number} params.page 第几页
* @param {number} params.pageSize 每页数据量
* @returns 流水线列表
*/
function getPipelineList(_a) {
var _b;
var projectId = _a.projectId,
secretInfo = _a.secretInfo,
host = _a.host,
_c = _a.page,
page = _c === void 0 ? 1 : _c,
_d = _a.pageSize,
pageSize = _d === void 0 ? 20 : _d;
return __awaiter(this, void 0, void 0, function () {
var appCode, appSecret, devopsUid, accessToken, resp;
return __generator(this, function (_e) {
switch (_e.label) {
case 0:
appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid;
return [4 /*yield*/, getDevopsAccessToken({
secretInfo: secretInfo,
host: host
})];
case 1:
accessToken = _e.sent();
return [4 /*yield*/, axios({
url: "".concat(host, "/prod/v4/apigw-app/projects/").concat(projectId, "/pipelines/pipeline_list?page=").concat(page, "&pageSize=").concat(pageSize),
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
})
}
})["catch"](function (err) {
console.log('[getPipelineList] err: ', err);
})];
case 2:
resp = _e.sent();
return [2 /*return*/, ((_b = resp.data) === null || _b === void 0 ? void 0 : _b.data) || {}];
}
});
});
}
/**
* 获取全部流水线列表
* @param {object} params 配置信息
* @param {string} params.projectId 项目ID
* @param {object} params.secretInfo 密钥信息
* @param {string} params.host 请求域名
* @param {number} params.page 第几页
* @param {number} params.pageSize 每页数据量
* @param {Array} list 结果列表,可不传,用于迭代
* @returns 流水线列表
*/
function getAllPipelineList(args, list) {
if (list === void 0) {
list = [];
}
return __awaiter(this, void 0, void 0, function () {
var page, res;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
page = args.page || 1;
return [4 /*yield*/, getPipelineList(__assign(__assign({}, args), {
page: page
}))];
case 1:
res = _a.sent();
list.push.apply(list, res.records || []);
if (!res.count || list.length >= res.count) {
return [2 /*return*/, list];
}
return [4 /*yield*/, getAllPipelineList(__assign(__assign({}, args), {
page: page + 1
}), list)];
case 2:
return [2 /*return*/, _a.sent()];
}
});
});
}
export { getAllPipelineList, getPipelineList, startDevopsPipeline };