Files
grafana-zabbix/scripts/github/githubClient.js
2022-04-19 13:26:56 +03:00

32 lines
809 B
JavaScript

const axios = require('axios');
const githubURL = (owner, repo) => `https://api.github.com/repos/${owner}/${repo}`;
class GithubClient {
constructor(owner, repo, required = false) {
const username = process.env.GITHUB_USERNAME;
const token = process.env.GITHUB_ACCESS_TOKEN;
const clientConfig = {
baseURL: githubURL(owner, repo),
timeout: 10000,
};
if (required && (!username || !token)) {
throw new Error('operation needs a GITHUB_USERNAME and GITHUB_ACCESS_TOKEN environment variables');
}
if (username && token) {
clientConfig.auth = { username: username, password: token };
}
this.client = this.createClient(clientConfig);
}
createClient(clientConfig) {
return axios.create(clientConfig);
}
}
module.exports = GithubClient;