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

moosetechnology / GitProjectHealth / 10664257731

02 Sep 2024 09:11AM UTC coverage: 18.06%. First build
10664257731

Pull #46

github

web-flow
Merge f972c3087 into 3d150934d
Pull Request #46: refactor: change metric structure

0 of 840 new or added lines in 23 files covered. (0.0%)

1590 of 8804 relevant lines covered (18.06%)

0.18 hits per line

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

0.0
/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 }
NEW
8
MergeRequestDurationMetric >> calculate [
×
NEW
9

×
NEW
10
        | groupedByDate gitAnalyzer mergeRequestsValidation filterGroups |
×
NEW
11
                userMergeRequests ifNil: [ self load ].
×
NEW
12
        groupedByDate := self setupGroupedDate.
×
NEW
13

×
NEW
14
        userMergeRequests ifEmpty: [ ^ nil ].
×
NEW
15

×
NEW
16
        gitAnalyzer := GitAnalyzer new.
×
NEW
17

×
NEW
18
        mergeRequestsValidation := userMergeRequests collect: [ :mr |
×
NEW
19
                                           gitAnalyzer
×
NEW
20
                                                   analyseMergeResquestValidation: mr ].
×
NEW
21

×
NEW
22

×
NEW
23
        mergeRequestsValidation do: [ :dic |
×
NEW
24
                | overDate |
×
NEW
25
                overDate := self transformDate: (dic at: #created_at) to: over.
×
NEW
26

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

×
NEW
35

×
NEW
36
        filterGroups := groupedByDate reject: [ :array | array isEmpty ].
×
NEW
37

×
NEW
38
        filterGroups associations do: [ :assoc |
×
NEW
39
                | sum denominator |
×
NEW
40
                denominator := assoc value size.
×
NEW
41

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

×
NEW
48
                filterGroups at: assoc key put: sum / denominator ].
×
NEW
49

×
NEW
50
        ^ filterGroups average asDuration
×
NEW
51
]
×
52

53
{ #category : #accessing }
NEW
54
MergeRequestDurationMetric >> description [
×
NEW
55

×
NEW
56
        ^ 'merge request duration'
×
NEW
57
]
×
58

59
{ #category : #accessing }
NEW
60
MergeRequestDurationMetric >> name [
×
NEW
61

×
NEW
62
        ^ 'mergeRequestDuration'
×
NEW
63
]
×
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

© 2026 Coveralls, Inc