From 33a9c3dbbd8216a0b6fe7defcff4a90fa1a3fb2f Mon Sep 17 00:00:00 2001 From: Mikael Vesavuori Date: Tue, 14 Mar 2023 20:24:25 +0100 Subject: [PATCH] feat(): adjust behavior to more often, and probably more accurately, calculate review sizes and times --- package-lock.json | 4 ++-- package.json | 2 +- src/domain/services/GitHubParser.ts | 13 +++---------- tests/unit/domain/GitHubParser.test.ts | 10 ++++++++++ 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index bac57ba..d8eea9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "gitmetrix", - "version": "2.1.2", + "version": "2.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "gitmetrix", - "version": "2.1.2", + "version": "2.2.0", "license": "MIT", "dependencies": { "@aws-sdk/client-dynamodb": "3", diff --git a/package.json b/package.json index 03c16b3..b095f5b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "gitmetrix", "description": "Helps you find your team-level engineering metrics", - "version": "2.1.2", + "version": "2.2.0", "author": "Mikael Vesavuori", "license": "MIT", "keywords": [ diff --git a/src/domain/services/GitHubParser.ts b/src/domain/services/GitHubParser.ts index e1463de..a149d97 100644 --- a/src/domain/services/GitHubParser.ts +++ b/src/domain/services/GitHubParser.ts @@ -105,22 +105,15 @@ export class GitHubParser implements Parser { // PR state: Open if (prState === 'open') { - if (action === 'ready_for_review') { - results.push(this.handleReviewSize(input)); - } else if (action === 'opened') { - results.push(this.resultService.produceResult({ type: 'Opened' })); - } + results.push(this.handleReviewSize(input)); + if (action === 'opened') results.push(this.resultService.produceResult({ type: 'Opened' })); } // PR state: Closed else if (prState === 'closed' && action === 'closed') { if (mergeState) results.push(this.resultService.produceResult({ type: 'Merged' })); results.push(this.resultService.produceResult({ type: 'Closed' })); // If this is simply closed, then we have no `merged_at` time - if ( - input['body']['pull_request']['merged_at'] && - input['body']['pull_request']['review_comments'] > 0 - ) - results.push(this.handleReviewTime(input)); + if (input['body']['pull_request']['merged_at']) results.push(this.handleReviewTime(input)); } else throw new NoPullRequestParsingMatchError(); return results.filter((result: ParsedResult | ParsedResultBasic) => result); diff --git a/tests/unit/domain/GitHubParser.test.ts b/tests/unit/domain/GitHubParser.test.ts index 8b39749..13c9e96 100644 --- a/tests/unit/domain/GitHubParser.test.ts +++ b/tests/unit/domain/GitHubParser.test.ts @@ -52,6 +52,16 @@ test.serial('It should parse a "ready for review" event', (t) => { test.serial('It should parse a "PR opened" event', (t) => { const expected: any = [ + { + change: { + additions: 1, + changedFiles: 1, + deletions: 0 + }, + repo: 'SOMEORG/SOMEREPO', + timestamp: currentTime, + type: 'ReviewSize' + }, { timestamp: currentTime, repo: 'SOMEORG/SOMEREPO',