quality-bot
Version:
QBot Online Code Review Application
79 lines (73 loc) • 2.38 kB
JavaScript
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
}