wrap-git
Version:
a GitHub profile wrapper package to summarize and do analytics for a given GitHub profile using GitHub API
36 lines (30 loc) • 1.07 kB
JavaScript
const axios = require("axios");
const { throwErrorMessage } = require("../utils/format");
const GitWrapperError = require("../model/GitWrapperError");
const getCommitsBetween = async (username, token, year) => {
const startDate = `${year}-01-01`;
const endDate = `${year}-12-31`;
try {
const url = `https://api.github.com/search/commits?q=author:${username}+author-date:${startDate}..${endDate}`;
const headers = token
? {
Authorization: `Bearer ${token}`,
Accept: "application/vnd.github.cloak-preview+json"
}
: {};
const response = await axios.get(url, { headers });
const totalCommits = response.data.total_count;
return totalCommits;
} catch (error) {
if (error.response) {
throwErrorMessage(error.response.status, error);
} else {
throw new GitWrapperError(
"NETWORK_ERROR",
"A network error occurred. Please check your internet connection.",
error.message
);
}
}
};
module.exports = getCommitsBetween;