Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/execute.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,10 @@ const run = async (params) => {
personalToken,
displayCharts,
pullRequestId,
typeTimeToReview,
} = params;


const pullRequest = pullRequestId
? await fetchPullRequestById(octokit, pullRequestId)
: null;
Expand All @@ -50,7 +52,11 @@ const run = async (params) => {
});
core.info(`Found ${pulls.length} pull requests to analyze`);

const reviewersRaw = getReviewers(pulls);

const options = {
typeTimeToReview
}
const reviewersRaw = getReviewers(pulls, options);
core.info(`Analyzed stats for ${reviewersRaw.length} pull request reviewers`);

const reviewers = setUpReviewers({
Expand Down
6 changes: 3 additions & 3 deletions src/interactors/getReviewers/calculateReviewsStats.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
const { sum, median, divide } = require('../../utils');
const { sum, calculateTimeToReview, divide } = require('../../utils');

const getProperty = (list, prop) => list.map((el) => el[prop]);

module.exports = (reviews) => {
module.exports = (reviews, options) => {
const pullRequestIds = getProperty(reviews, 'pullRequestId');
const totalReviews = new Set(pullRequestIds).size;
const totalComments = sum(getProperty(reviews, 'commentsCount'));
Expand All @@ -11,6 +11,6 @@ module.exports = (reviews) => {
totalReviews,
totalComments,
commentsPerReview: divide(totalComments, totalReviews),
timeToReview: median(getProperty(reviews, 'timeToReview')),
timeToReview: calculateTimeToReview(getProperty(reviews, 'timeToReview'), options.typeTimeToReview),
};
};
4 changes: 2 additions & 2 deletions src/interactors/getReviewers/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const calculateReviewsStats = require('./calculateReviewsStats');
const groupReviews = require('./groupReviews');

module.exports = (pulls) => groupReviews(pulls).map(({ author, reviews }) => {
const stats = calculateReviewsStats(reviews);
module.exports = (pulls, options) => groupReviews(pulls).map(({ author, reviews }) => {
const stats = calculateReviewsStats(reviews, options);
return { author, reviews, stats };
});
14 changes: 14 additions & 0 deletions src/utils/calculateTimeToReview.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@

const median = require('./median')
const average = require('./average')

module.exports = (list, type) => {
switch(type) {
case "average":
return average(list)
case "median":
default:
return median(list)
break;
}
}
1 change: 1 addition & 0 deletions src/utils/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ const median = require('./median');
const repos = require('./repos');
const subtractDaysToDate = require('./subtractDaysToDate');
const sum = require('./sum');
const calculateTimeToReview = require("")

module.exports = {
...repos,
Expand Down