t-comm
Version:
专业、稳定、纯粹的工具库
213 lines (206 loc) • 7.64 kB
JavaScript
;
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;