UNPKG

quality-bot

Version:

QBot Online Code Review Application

79 lines (73 loc) 2.38 kB
const axios = require('axios').default; const simpleGit = require('simple-git'); const git = simpleGit(); const https = require('https'); const localStorage = require('localStorage'); const headerCharRegex = /[^\t\x20-\x7e\x80-\xff]/; const arg = process.argv; let url = 'https://qbotdev.mookambikainfo.com'; if (arg[2] === "review-dev") { url = 'https://qbotdev.mookambikainfo.com'; } if (arg[2] === "review") { url = 'https://qbot.mookambikainfo.com'; } // At request level const agent = new https.Agent({ rejectUnauthorized: false }); const review = async (data, qbotToken) => { const command = 'config --get remote.origin.url'.split(' '); const repoUrl = await git.raw(command); qbotToken = qbotToken.replace(headerCharRegex, ''); return await axios.post(`${url}/code-review-service/pre-commit/review`, { repoUrl: repoUrl.trim(), ...data }, { headers: { Authorization: `Bearer ${localStorage.getItem("bearerToken")}` }, httpsAgent: agent }); } const repoDetails = async (qbotToken) => { const command = 'config --get remote.origin.url'.split(' '); const repoUrl = await git.raw(command); qbotToken = qbotToken.replace(headerCharRegex, ''); return await axios.get(`${url}/code-review-service/pre-commit/repoDetails`, { headers: { Authorization: `Bearer ${localStorage.getItem("bearerToken")}` }, params: { repoUrl: repoUrl }, httpsAgent: agent }); } const getAuthToken = async (qbotToken, username) => { username = username.replace(headerCharRegex, ''); qbotToken = qbotToken.replace(headerCharRegex, ''); if (url === 'https://qbotdev.mookambikainfo.com') { return await axios.get(`${url}/code-review-service/api/auth/plugin-auth`, { headers: { pluginToken: qbotToken, username: username }, httpsAgent: agent }); } else if (url === 'https://qbot.mookambikainfo.com') { return await axios.get(`${url}/code-review-service/api/auth/plugin-auth`, { headers: { pluginToken: qbotToken, username: username }, httpsAgent: agent }); } } module.exports = { review, repoDetails, getAuthToken, agent }