UNPKG

t-comm

Version:

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

213 lines (206 loc) 7.64 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray'); var _regeneratorRuntime = require('@babel/runtime/regenerator'); var tslib_es6 = require('../tslib.es6-0d92ef81.js'); var axios = require('axios'); var devops_token = require('./token.js'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray); var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime); var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios); /** * 启动流水线 * @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 请求数据 * @example * ```ts * await startDevopsPipeline({ * projectId: 'my-project', * pipelineId: 'p-xxxx', * host: 'https://devops.woa.com', * secretInfo: { * appCode: 'xxx', * appSecret: 'xxx', * devopsUid: 'novlan1', * }, * data: { buildNo: 1 }, * }); * ``` */ function startDevopsPipeline(_ref) { var projectId = _ref.projectId, pipelineId = _ref.pipelineId, secretInfo = _ref.secretInfo, host = _ref.host, data = _ref.data; return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() { var appCode, appSecret, devopsUid, accessToken, resp; return _regeneratorRuntime__default["default"].wrap(function (_context) { while (1) switch (_context.prev = _context.next) { case 0: appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid; _context.next = 1; return devops_token.getDevopsAccessToken({ secretInfo: secretInfo, host: host }); case 1: accessToken = _context.sent; _context.next = 2; return axios__default["default"]({ 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: Object.assign({}, data || {}) })["catch"](function (err) { console.log('[startDevopsPipeline] err: ', err); }); case 2: resp = _context.sent; return _context.abrupt("return", resp.data); case 3: case "end": return _context.stop(); } }, _callee); })); } /** * 获取流水线列表 * @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 流水线列表 * @example * ```ts * const res = await getPipelineList({ * projectId: 'my-project', * host: 'https://devops.woa.com', * secretInfo: { appCode, appSecret, devopsUid }, * page: 1, * pageSize: 20, * }); * console.log(res.records); * ``` */ function getPipelineList(_ref2) { var projectId = _ref2.projectId, secretInfo = _ref2.secretInfo, host = _ref2.host, _ref2$page = _ref2.page, page = _ref2$page === void 0 ? 1 : _ref2$page, _ref2$pageSize = _ref2.pageSize, pageSize = _ref2$pageSize === void 0 ? 20 : _ref2$pageSize; var _a; return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() { var appCode, appSecret, devopsUid, accessToken, resp; return _regeneratorRuntime__default["default"].wrap(function (_context2) { while (1) switch (_context2.prev = _context2.next) { case 0: appCode = secretInfo.appCode, appSecret = secretInfo.appSecret, devopsUid = secretInfo.devopsUid; _context2.next = 1; return devops_token.getDevopsAccessToken({ secretInfo: secretInfo, host: host }); case 1: accessToken = _context2.sent; _context2.next = 2; return axios__default["default"]({ 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 = _context2.sent; return _context2.abrupt("return", ((_a = resp.data) === null || _a === void 0 ? void 0 : _a.data) || {}); case 3: case "end": return _context2.stop(); } }, _callee2); })); } /** * 获取全部流水线列表 * @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 流水线列表 * @example * ```ts * const all = await getAllPipelineList({ * projectId: 'my-project', * host: 'https://devops.woa.com', * secretInfo: { appCode, appSecret, devopsUid }, * }); * console.log(all.length); * ``` */ function getAllPipelineList(args) { var list = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; return tslib_es6.__awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee3() { var page, res; return _regeneratorRuntime__default["default"].wrap(function (_context3) { while (1) switch (_context3.prev = _context3.next) { case 0: page = args.page || 1; _context3.next = 1; return getPipelineList(Object.assign(Object.assign({}, args), { page: page })); case 1: res = _context3.sent; list.push.apply(list, _toConsumableArray__default["default"](res.records || [])); if (!(!res.count || list.length >= res.count)) { _context3.next = 2; break; } return _context3.abrupt("return", list); case 2: _context3.next = 3; return getAllPipelineList(Object.assign(Object.assign({}, args), { page: page + 1 }), list); case 3: return _context3.abrupt("return", _context3.sent); case 4: case "end": return _context3.stop(); } }, _callee3); })); } exports.getAllPipelineList = getAllPipelineList; exports.getPipelineList = getPipelineList; exports.startDevopsPipeline = startDevopsPipeline;