• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

moosetechnology / GitProjectHealth / 11667512120

04 Nov 2024 03:36PM UTC coverage: 59.207% (+0.2%) from 59.01%
11667512120

Pull #105

github

web-flow
Merge 0462ff346 into 3c4574e31
Pull Request #105: fix/add email user to the importer + tests

71 of 82 new or added lines in 3 files covered. (86.59%)

149 existing lines in 35 files now uncovered.

9582 of 16184 relevant lines covered (59.21%)

0.59 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

84.91
/src/GitLabHealth-Model-Analysis/MergeRequestDurationMetric.class.st
1
Class {
2
        #name : #MergeRequestDurationMetric,
3
        #superclass : #UserMergeRequestMetric,
4
        #category : 'GitLabHealth-Model-Analysis'
5
}
6

7
{ #category : #calculating }
8
MergeRequestDurationMetric >> calculate [
1✔
9

1✔
10
        | groupedByDate gitAnalyzer mergeRequestsValidation filterGroups |
1✔
11
        userMergeRequests ifNil: [ self load ].
1✔
12
        
1✔
13
        groupedByDate := self setupGroupedDate.
1✔
14

1✔
15
        userMergeRequests ifEmpty: [ ^ nil ].
1✔
16

1✔
17
        gitAnalyzer := GitAnalyzer new.
1✔
18

1✔
19
        mergeRequestsValidation := userMergeRequests collect: [ :mr |
1✔
20
                                           gitAnalyzer
1✔
21
                                                   analyseMergeResquestValidation: mr ].
1✔
22

1✔
23

1✔
24
        mergeRequestsValidation do: [ :dic |
1✔
25
                | overDate |
1✔
26
                overDate := self transformDate: (dic at: #created_at) to: over.
1✔
27

1✔
28
                groupedByDate
1✔
29
                        at: overDate printString
1✔
30
                        ifPresent: [ :durations | durations add: (dic at: #duration) ]
1✔
31
                        ifAbsentPut: [
1✔
32
                                OrderedCollection new
1✔
33
                                        add: (dic at: #duration);
1✔
34
                                        yourself ] ].
1✔
35

1✔
36

1✔
37
        filterGroups := groupedByDate reject: [ :array | array isEmpty ].
1✔
38

1✔
39
        filterGroups associations do: [ :assoc |
1✔
40
                | sum denominator |
1✔
41
                denominator := assoc value size.
1✔
42

1✔
43
                sum := assoc value sum: [ :v |
1✔
44
                               v ifNil: [
1✔
45
                                       denominator := denominator - 1.
1✔
46
                                       0 asDuration ] ].
1✔
47
                denominator = 0 ifTrue: [ denominator := 1 ].
1✔
48

1✔
49
                filterGroups at: assoc key put: sum / denominator ].
1✔
50

1✔
51
        ^ filterGroups average asSeconds
1✔
52
]
1✔
53

54
{ #category : #accessing }
UNCOV
55
MergeRequestDurationMetric >> description [
×
56

×
57
        ^ 'average time to merge a merge request (in seconds)'
×
58
]
×
59

60
{ #category : #accessing }
UNCOV
61
MergeRequestDurationMetric >> name [
×
62

×
63
        ^ 'mergeRequestDuration'
×
64
]
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc