• 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

86.67
/src/GitLabHealth-Model-Analysis/UserMetric.class.st
1
Class {
2
        #name : #UserMetric,
3
        #superclass : #Metric,
4
        #instVars : [
5
                'user',
6
                'userCommits',
7
                'userMergeRequests',
8
                'emailDomain'
9
        ],
10
        #category : #'GitLabHealth-Model-Analysis'
11
}
12

13
{ #category : #calculating }
14
UserMetric >> calculate [
15

16
        ^ self subclassResponsibility
17
]
18

19
{ #category : #accessing }
20
UserMetric >> description [
21

22
        ^ self subclassResponsibility
23
]
24

25
{ #category : #accessing }
NEW
26
UserMetric >> emailDomain: anObject [
×
NEW
27

×
NEW
28
        emailDomain := anObject
×
NEW
29
]
×
30

31
{ #category : #initialization }
32
UserMetric >> initialize [
1✔
33
        over := Date
1✔
34
]
1✔
35

36
{ #category : #loading }
37
UserMetric >> load [
38

39
        ^ self subclassResponsibility
40
]
41

42
{ #category : #loading }
43
UserMetric >> loadCompleteMergeRequestsSince: since until: until [
1✔
44

1✔
45
        | mergeRequests |
1✔
46
        mergeRequests := self
1✔
47
                                 loadMergeRequestsSince: since until: until.
1✔
48

1✔
49
        mergeRequests do: [ :mergeRequest |
1✔
50
                glhImporter importMergeResquestMerger: mergeRequest.
1✔
51
                glhImporter importMergeRequestCommits: mergeRequest ].
1✔
52

1✔
53
        ^ mergeRequests
1✔
54
]
1✔
55

56
{ #category : #loading }
57
UserMetric >> loadMergeRequestsSince: since until: until [
1✔
58

1✔
59
        | cacheSymbol mergeRequests |
1✔
60
        glhImporter withCommitDiffs: false.
1✔
61
        cacheSymbol := self
1✔
62
                               cacheSymbolFor: GLHMergeRequest
1✔
63
                               since: since
1✔
64
                               until: until.
1✔
65

1✔
66
        mergeRequests := user contributedProjects collect: [ :project |
1✔
67
                                 | mr |
1✔
68
                                 project cacheAt: cacheSymbol ifAbsentPut: [
1✔
69
                                         mr := glhImporter
1✔
70
                                                       importMergeRequests: project
1✔
71
                                                       since: since
1✔
72
                                                       until: until.
1✔
73
                                         mr ] ].
1✔
74

1✔
75
        mergeRequests := mergeRequests flattened.
1✔
76
        glhImporter withCommitDiffs: true.
1✔
77

1✔
78
        mergeRequests do: [ :mr | glhImporter importMergeResquestAuthor: mr ].
1✔
79

1✔
80
        ^ mergeRequests "mergeRequests select: [ :mergeRequest |
1✔
81
                  mergeRequest author = user ]"
1✔
82
]
1✔
83

84
{ #category : #loading }
NEW
85
UserMetric >> loadMergeRequestsWithJiraIssueSince: since until: until [
×
NEW
86

×
NEW
87
        | email mergeRequests |
×
NEW
88
        mergeRequests := self
×
NEW
89
                                 loadMergeRequestsSince: since until:  until.
×
NEW
90

×
NEW
91
        email := self userEmail.
×
NEW
92

×
NEW
93
        jiraImporter importAllCurrentAndPastIssuesOf: email.
×
NEW
94

×
NEW
95
        GPJCConnector new
×
NEW
96
                gpModel: glhImporter glhModel;
×
NEW
97
                jiraModel: jiraImporter model;
×
NEW
98
                connect.
×
NEW
99

×
NEW
100
        ^ mergeRequests select: [ :mergeRequest |
×
NEW
101
                  mergeRequest jiraIssue isNotNil ]
×
NEW
102
]
×
103

104
{ #category : #loading }
105
UserMetric >> loadUserCommitsSince: since until: until [
1✔
106

1✔
107
        | cacheSymbol allCommits |
1✔
108
        glhImporter withCommitDiffs: false.
1✔
109

1✔
110
        cacheSymbol := self
1✔
111
                               cacheSymbolFor: GLHCommit
1✔
112
                               since: since
1✔
113
                               until: until.
1✔
114

1✔
115
        "download commits unless project cache is not empty"
1✔
116
        allCommits := user contributedProjects collect: [ :project |
1✔
117
                              project repository
1✔
118
                                      cacheAt: cacheSymbol
1✔
119
                                      ifAbsentPut: [
1✔
120
                                              | foundCommits |
1✔
121
                                              foundCommits := glhImporter
1✔
122
                                                                      importCommitsOfProject: project
1✔
123
                                                                      since: since
1✔
124
                                                                      until: until.
1✔
125
                                              foundCommits ] ].
1✔
126

1✔
127
        allCommits := allCommits flatten.
1✔
128
        allCommits do: [ :commit | glhImporter importCreatorOfCommit: commit ].
1✔
129
        glhImporter chainsCommitsFrom: allCommits.
1✔
130
        glhImporter withCommitDiffs: true.
1✔
131

1✔
132
        ^ allCommits reject: [ :commit | commit commitCreator ~= user ]
1✔
133
]
1✔
134

135
{ #category : #loading }
136
UserMetric >> loadUserCompleteCommitsSince: since until: until [
1✔
137

1✔
138
        | commits |
1✔
139
        commits := self loadUserCommitsSince: since until: until.
1✔
140
        commits do: [ :commit | glhImporter completeImportedCommit: commit ].
1✔
141
        ^ commits
1✔
142
]
1✔
143

144
{ #category : #loading }
145
UserMetric >> loadUserCompleteMergeRequestsSince: since until: until [
1✔
146

1✔
147
        | mergeRequests |
1✔
148
        mergeRequests := self loadUserMergeRequestsSince: since until: until.
1✔
149

1✔
150
        mergeRequests do: [ :mergeRequest |
1✔
151
                glhImporter importMergeResquestMerger: mergeRequest.
1✔
152
                glhImporter importMergeRequestCommits: mergeRequest ].
1✔
153

1✔
154
        ^ mergeRequests
1✔
155
]
1✔
156

157
{ #category : #loading }
158
UserMetric >> loadUserCompleteMergeRequestsWithJiraIssueSince: since until: until [
1✔
159

1✔
160
        | email mergeRequests |
1✔
161
        mergeRequests := self
1✔
162
                                 loadUserCompleteMergeRequestsSince: since
1✔
163
                                 until: until.
1✔
164

1✔
165
        email := self userEmail.
1✔
166

1✔
167
        jiraImporter importAllCurrentAndPastIssuesOf: email.
1✔
168

1✔
169
        GPJCConnector new
1✔
170
                gpModel: glhImporter glhModel;
1✔
171
                jiraModel: jiraImporter model;
1✔
172
                connect.
1✔
173

1✔
174
        ^ mergeRequests select: [ :mergeRequest |
1✔
175
                  mergeRequest jiraIssue isNotNil ]
1✔
176
]
1✔
177

178
{ #category : #loading }
179
UserMetric >> loadUserMergeRequestsSince: since until: until [
1✔
180

1✔
181
        | mergeRequests |
1✔
182
        mergeRequests := self loadMergeRequestsSince: since until: until.
1✔
183

1✔
184
        ^ mergeRequests select: [ :mergeRequest | mergeRequest author = user ]
1✔
185
]
1✔
186

187
{ #category : #loading }
188
UserMetric >> loadUserMergeRequestsWithJiraIssueSince: since until: until [
1✔
189

1✔
190
        | email mergeRequests |
1✔
191
        mergeRequests := self loadUserMergeRequestsSince: since until: until.
1✔
192

1✔
193
        email := self userEmail.
1✔
194

1✔
195
        jiraImporter importAllCurrentAndPastIssuesOf: email.
1✔
196

1✔
197
        GPJCConnector new
1✔
198
                gpModel: glhImporter glhModel;
1✔
199
                jiraModel: jiraImporter model;
1✔
200
                connect.
1✔
201

1✔
202
        ^ mergeRequests select: [ :mergeRequest |
1✔
203
                  mergeRequest jiraIssue isNotNil ]
1✔
204
]
1✔
205

206
{ #category : #accessing }
207
UserMetric >> user: anObject [
1✔
208

1✔
209
        user := anObject
1✔
210
]
1✔
211

212
{ #category : #email }
213
UserMetric >> userEmail [
1✔
214

1✔
215
        user public_email = '' ifFalse: [ ^ user public_email ].
1✔
216

1✔
217
        ^ ('' join: {
1✔
218
                           user username.
1✔
219
                           emailDomain }) asLowercase
1✔
220
]
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