Method for generating the contribution data
This commit is contained in:
parent
59d991d0a6
commit
9fbf6c541f
67
index.js
67
index.js
@ -71,3 +71,70 @@ async function initializeKredits () {
|
||||
return kredits;
|
||||
}
|
||||
|
||||
async function generateContributionData(reviews, Contributor) {
|
||||
const contributors = await Contributor.all();
|
||||
|
||||
const contributionData = {};
|
||||
|
||||
for (const [username, giteaReviews] of Object.entries(reviews.gitea)) {
|
||||
const contributor = contributors.find(c => {
|
||||
return c.gitea_username === username;
|
||||
});
|
||||
|
||||
if (!contributor) {
|
||||
console.log(`Could not find contributor for Gitea username ${username}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const urls = giteaReviews.map(review => review.pr.html_url);
|
||||
const kreditsAmount = giteaReviews.reduce((amount, review) => {
|
||||
return review.kredits + amount;
|
||||
}, 0);
|
||||
|
||||
contributionData[contributor.name] = {
|
||||
contributorId: contributor.id,
|
||||
contributorIpfsHash: contributor.ipfsHash,
|
||||
kind: 'dev',
|
||||
amount: kreditsAmount,
|
||||
description: 'PR reviews',
|
||||
details: {
|
||||
'pullRequests': urls
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const [username, githubReviews] of Object.entries(reviews.github)) {
|
||||
const contributor = contributors.find(c => {
|
||||
return c.github_username === username;
|
||||
});
|
||||
|
||||
if (!contributor) {
|
||||
console.log(`Could not find contributor for Github username ${username}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const urls = githubReviews.map(review => review.pr.html_url);
|
||||
const kreditsAmount = githubReviews.reduce((amount, review) => {
|
||||
return review.kredits + amount;
|
||||
}, 0);
|
||||
|
||||
if (typeof contributionData[contributor.name] !== 'undefined') {
|
||||
contributionData[contributor.name].amount += kreditsAmount;
|
||||
contributionData[contributor.name].details.pullRequests.push(...urls);
|
||||
} else {
|
||||
contributionData[contributor.name] = {
|
||||
contributorId: contributor.id,
|
||||
contributorIpfsHash: contributor.ipfsHash,
|
||||
kind: 'dev',
|
||||
amount: kreditsAmount,
|
||||
description: 'PR reviews',
|
||||
details: {
|
||||
'pullRequests': urls
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return contributionData;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user