UNPKG

@aikidosec/ci-api-client

Version:

CLI api client to easily integrate the Aikido public CI API into custom deploy scripts

62 lines (61 loc) 2.19 kB
import axios from 'axios'; import { getApiKey } from './configuration.js'; import { outputDebug } from './output.js'; const getApiUrl = () => { const apiKey = getApiKey(); if (apiKey.startsWith('AIK_CI_US_')) { return process.env.AIKIDO_US_API || 'https://app.us.aikido.dev'; } if (apiKey.startsWith('AIK_CI_ME_')) { return process.env.AIKIDO_ME_API || 'https://app.me.aikido.dev'; } return process.env.AIKIDO_API || 'https://app.aikido.dev'; }; const getApiHeaders = () => ({ 'Content-Type': 'application/json', 'X-AIK-API-SECRET': getApiKey(), }); export async function startScan(data) { const requestUrl = `${getApiUrl()}/api/integrations/continuous_integration/scan/repository`; const requestConfig = { method: 'POST', data, headers: getApiHeaders(), }; outputDebug(`API request: ${requestUrl}`); outputDebug(requestConfig); const resultData = (await axios(requestUrl, requestConfig)).data; outputDebug(resultData); return resultData; } export async function pollScanStatus(scanId) { const requestUrl = `${getApiUrl()}/api/integrations/continuous_integration/scan/repository`; const requestConfig = { method: 'GET', params: { scan_id: scanId }, headers: getApiHeaders(), }; outputDebug(`API request: ${requestUrl}`); outputDebug(requestConfig); const resultData = (await axios(requestUrl, requestConfig)).data; outputDebug(resultData); return resultData; } export var TUploadPayloadType; (function (TUploadPayloadType) { TUploadPayloadType["Checkov"] = "checkov"; TUploadPayloadType["JsonSbom"] = "json-sbom"; })(TUploadPayloadType || (TUploadPayloadType = {})); export async function uploadCustomScanResult(data) { const requestUrl = `${getApiUrl()}/api/integrations/continuous_integration/scan/custom`; const requestConfig = { method: 'POST', data, headers: getApiHeaders(), }; outputDebug(`API request: ${requestUrl}`); outputDebug(requestConfig); const resultData = (await axios(requestUrl, requestConfig)).data; outputDebug(resultData); return resultData; }