wrap-git
Version:
a GitHub profile wrapper package to summarize and do analytics for a given GitHub profile using GitHub API
43 lines (36 loc) • 1.09 kB
JavaScript
const getCommitsBetween = require("../api/commits");
const GitWrapperError = require("../model/GitWrapperError");
const unknowError = require("../utils/error");
const commitSummerizer = async (username, token, created_at) => {
const commitsPerYear = {};
let totalCommits = 0;
try {
const startYear = new Date(created_at).getFullYear();
const currentYear = new Date().getFullYear();
for (let year = startYear; year <= currentYear; year++) {
const yearlyCommits = await getCommitsBetween(username, token, year);
commitsPerYear[year] = yearlyCommits;
totalCommits += yearlyCommits;
}
return {
success: true,
data: {
totalCommits,
commitsPerYear
}
};
} catch (error) {
if (error instanceof GitWrapperError) {
return {
success: false,
error: {
code: error.code,
message: error.message,
details: error.details
}
};
}
return unknowError(error);
}
};
module.exports = commitSummerizer;