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

moosetechnology / GitProjectHealth / 13807399403

12 Mar 2025 08:58AM UTC coverage: 66.731% (+0.2%) from 66.508%
13807399403

Pull #145

github

web-flow
Merge 41a250ee3 into 2c2d8c5e1
Pull Request #145: Code addition merge rerquest project metric

6833 of 8097 new or added lines in 90 files covered. (84.39%)

1 existing line in 1 file now uncovered.

11746 of 17602 relevant lines covered (66.73%)

0.67 hits per line

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

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

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

1✔
10
        | groupedByDate dateOver |
1✔
11
        userMergeRequests ifNil: [ self load ].
1✔
12
        userMergeRequests ifEmpty: [ ^ nil ].
1✔
13
        groupedByDate := self setupGroupedDate.
1✔
14

1✔
15
        userMergeRequests do: [ :userMergeRequest |
1✔
16
                dateOver := self transformDate: userMergeRequest created_at to: over.
1✔
17
                groupedByDate
1✔
18
                        at: dateOver printString
1✔
19
                        ifPresent: [ :value | value add: userMergeRequest ] ].
1✔
20

1✔
21
        groupedByDate := groupedByDate collect: [ :group |
1✔
22
                                 | differences average |
1✔
23
                                 differences := group collect: [ :mergeRequest |
1✔
24
                                                        | firstCommitDate mergeRequestTime jiraTime |
1✔
25
                                                                                                         
1✔
26
                                                                                                         "merge request commits are order first younger to older. Thus last returns the earliest MR"
1✔
27
                                                        firstCommitDate := mergeRequest commits last created_at.
1✔
28

1✔
29
                                                        mergeRequestTime := mergeRequest merged_at - firstCommitDate.
1✔
30

1✔
31
                                                        jiraTime := mergeRequest jiraIssue
1✔
32
                                                                            timeOriginalEstimate
1✔
33
                                                                            ifNil: [
1✔
34
                                                                            mergeRequest jiraIssue
1✔
35
                                                                                    timeEstimate ].
1✔
36

1✔
37
                                                        (jiraTime - mergeRequestTime)
1✔
38
                                                                asSeconds ].
1✔
39
                        
1✔
40
                                average := group ifEmpty: [ 0 ] ifNotEmpty: [ differences average ].
1✔
41
                                average 
1✔
42
                                  ].
1✔
43

1✔
44

1✔
45
         ^ groupedByDate average asFloat
1✔
46
]
1✔
47

48
{ #category : #accessing }
NEW
49
JiraTimeMRTimeDifferenceMetric >> description [
×
NEW
50

×
NEW
51
        ^ 'average difference in seconds between jira estimate time and associated merge request time (time between first commit and merge date)'
×
NEW
52
]
×
53

54
{ #category : #loading }
55
JiraTimeMRTimeDifferenceMetric >> load [
1✔
56

1✔
57
        userMergeRequests := self
1✔
58
                                     loadUserCompleteMergeRequestsWithJiraIssueSince: (period at: #since)
1✔
59
                                     until: (period at: #until).
1✔
60

1✔
61
        "Take only the merge requests that have been merged and given a time estimate"
1✔
62
        userMergeRequests := userMergeRequests select: [ :mergeRequest |
1✔
63
                                     | issueIsEstimated |
1✔
64
                                     issueIsEstimated := mergeRequest jiraIssue
1✔
65
                                                                 timeEstimate isNotNil or:
1✔
66
                                                                 mergeRequest jiraIssue
1✔
67
                                                                         timeOriginalEstimate
1✔
68
                                                                         isNotNil.
1✔
69
                                     mergeRequest merged_at isNotNil and:
1✔
70
                                             issueIsEstimated ]
1✔
71
]
1✔
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