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

moosetechnology / GitProjectHealth / 13900391149

17 Mar 2025 01:15PM UTC coverage: 67.843% (+0.4%) from 67.481%
13900391149

Pull #156

github

web-flow
Merge c938cc982 into 7593d9ff0
Pull Request #156: add Jira time merge Request time diffrence for project metric

397 of 839 new or added lines in 13 files covered. (47.32%)

30 existing lines in 1 file now uncovered.

12481 of 18397 relevant lines covered (67.84%)

0.68 hits per line

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

94.81
/src/GitLabHealth-Model-Analysis/JiraTimeMRTimeDifferenceProjectMetric.class.st
1
Class {
2
        #name : #JiraTimeMRTimeDifferenceProjectMetric,
3
        #superclass : #ProjectMetric,
4
        #instVars : [
5
                'issues'
6
        ],
7
        #category : #'GitLabHealth-Model-Analysis'
8
}
9

10
{ #category : #calculating }
11
JiraTimeMRTimeDifferenceProjectMetric >> calculate [
1✔
12

1✔
13
        | groupedByDate dateOver jiraID |
1✔
14

1✔
15
        projectMergeRequests ifNil: [ self load ].
1✔
16
        projectMergeRequests ifEmpty: [ ^ nil ].
1✔
17

1✔
18
        groupedByDate := self setupGroupedDate.
1✔
19

1✔
20
        projectMergeRequests do: [ :mr |
1✔
21
                dateOver := self transformDate: mr created_at to: over.
1✔
22

1✔
23
                "Extraction de l'ID du ticket Jira depuis le titre du mr"
1✔
24
                jiraID := GPJCConnector new jiraKeyFromCommitMessage: mr title.
1✔
25

1✔
26
                groupedByDate
1✔
27
                        at: dateOver printString
1✔
28
                        ifPresent: [ :value | value add: mr ] ].
1✔
29

1✔
30
        groupedByDate := groupedByDate collect: [ :group |
1✔
31
                                 | differences average |
1✔
32
                                 differences := group collect: [ :mergeRequest |
1✔
33
                                                        | firstCommitDate mergeRequestTime jiraTime jiraIssue |
1✔
34
                                                        jiraIssue := mergeRequest jiraIssue.
1✔
35

1✔
36

1✔
37
                                                        firstCommitDate := mergeRequest
1✔
38
                                                                                   commits last
1✔
39
                                                                                   created_at.
1✔
40
                                                        mergeRequestTime := mergeRequest
1✔
41
                                                                                    merged_at
1✔
42
                                                                            -
1✔
43
                                                                            firstCommitDate.
1✔
44

1✔
45

1✔
46
                                                        jiraTime := jiraIssue
1✔
47
                                                                            timeOriginalEstimate
1✔
48
                                                                            ifNil: [
1✔
49
                                                                            jiraIssue timeEstimate ].
1✔
50

1✔
51
                                                        jiraTime ifNil: [ ^ nil ].
1✔
52
                                                        (jiraTime - mergeRequestTime)
1✔
53
                                                                asSeconds ].
1✔
54

1✔
55
                                 average := group
1✔
56
                                                    ifEmpty: [ 0 ]
1✔
57
                                                    ifNotEmpty: [ differences average ].
1✔
58
                                 average ].
1✔
59

1✔
60
        ^ groupedByDate average asFloat
1✔
61
]
1✔
62

63
{ #category : #accessing }
NEW
64
JiraTimeMRTimeDifferenceProjectMetric >> description [
×
NEW
65

×
NEW
66
        ^ 'average difference in seconds between jira estimate time and associated merge request time '
×
NEW
67
]
×
68

69
{ #category : #loading }
70
JiraTimeMRTimeDifferenceProjectMetric >> load [
1✔
71

1✔
72
        projectMergeRequests := self
1✔
73
                                     loadProjectCompleteMergeRequestsSince:  (period at: #since)
1✔
74
                                     until: (period at: #until).
1✔
75
        
1✔
76
        projectMergeRequests := projectMergeRequests select: [ :mergeRequest |
1✔
77
                                     mergeRequest state = #merged and:
1✔
78
                                             [mergeRequest merged_at isNotNil] ].
1✔
79
        
1✔
80
        self loadMergeRequestIssues: projectMergeRequests .
1✔
81
        
1✔
82
]
1✔
83

84
{ #category : #issue }
85
JiraTimeMRTimeDifferenceProjectMetric >> loadMergeRequestIssues: aMergeRequestCollection [
1✔
86
        
1✔
87
         (aMergeRequestCollection do: [ :mr | 
1✔
88
                |id|
1✔
89
                id := GPJCConnector new jiraKeyFromCommitMessage: mr title .
1✔
90
                jiraImporter importIssue: id.      
1✔
91
                GPJCConnector new gpModel: glhImporter glhModel; jiraModel: jiraImporter model; connect.
1✔
92
                 ]).
1✔
93
]
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

© 2025 Coveralls, Inc