UNPKG

t-comm

Version:

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

149 lines (146 loc) 5.1 kB
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 };