• 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

77.89
/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 : #utils }
14
UserMetric >> cacheSymbolFor: anEntityType since: since until: until [
1✔
15

1✔
16
        ^ (anEntityType printString , ' since ' , since printString , ' to '
1✔
17
           , until printString) asSymbol
1✔
18
]
1✔
19

20
{ #category : #calculating }
21
UserMetric >> calculate [
22

23
        ^ self subclassResponsibility
24
]
25

26
{ #category : #accessing }
27
UserMetric >> description [
28

29
        ^ self subclassResponsibility
30
]
31

32
{ #category : #accessing }
UNCOV
33
UserMetric >> emailDomain: anObject [
×
34

×
35
        emailDomain := anObject
×
36
]
×
37

38
{ #category : #churn }
UNCOV
39
UserMetric >> foundSuccessorOf: commits andCompleteImportForMax: commitLimit [
×
40

×
41
        | analyzingCommits i size |
×
42
        analyzingCommits := Set new.
×
43
        glhImporter withCommitDiffs: true.
×
44

×
45
        commits do: [ :c |
×
46
                GitAnalyzer new
×
47
                        visitChildCommits: c childCommits
×
48
                        toStoreThemIn: analyzingCommits
×
49
                        upto: commitLimit ].
×
50

×
51
        i := 0.
×
52
        size := analyzingCommits size.
×
53
        analyzingCommits do: [ :c |
×
54

×
55
                glhImporter completeImportedCommit: c ].
×
56

×
57
        ^ analyzingCommits
×
58
]
×
59

60
{ #category : #initialization }
61
UserMetric >> initialize [
1✔
62
        over := Date
1✔
63
]
1✔
64

65
{ #category : #loading }
66
UserMetric >> load [
67

68
        ^ self subclassResponsibility
69
]
70

71
{ #category : #loading }
72
UserMetric >> loadCompleteMergeRequestsSince: since until: until [
1✔
73

1✔
74
        | mergeRequests |
1✔
75
        mergeRequests := self
1✔
76
                                 loadMergeRequestsSince: since until: until.
1✔
77

1✔
78
        mergeRequests do: [ :mergeRequest |
1✔
79
                glhImporter importMergeResquestMerger: mergeRequest.
1✔
80
                glhImporter importMergeRequestCommits: mergeRequest ].
1✔
81

1✔
82
        ^ mergeRequests
1✔
83
]
1✔
84

85
{ #category : #loading }
86
UserMetric >> loadMergeRequestsSince: since until: until [
1✔
87

1✔
88
        | cacheSymbol mergeRequests |
1✔
89
        glhImporter withCommitDiffs: false.
1✔
90
        cacheSymbol := self
1✔
91
                               cacheSymbolFor: GLHMergeRequest
1✔
92
                               since: since
1✔
93
                               until: until.
1✔
94

1✔
95
        mergeRequests := user contributedProjects collect: [ :project |
1✔
96
                                 | mr |
1✔
97
                                 project cacheAt: cacheSymbol ifAbsentPut: [
1✔
98
                                         mr := glhImporter
1✔
99
                                                       importMergeRequests: project
1✔
100
                                                       since: since
1✔
101
                                                       until: until.
1✔
102
                                         mr ] ].
1✔
103

1✔
104
        mergeRequests := mergeRequests flattened.
1✔
105
        glhImporter withCommitDiffs: true.
1✔
106

1✔
107
        mergeRequests do: [ :mr | glhImporter importMergeResquestAuthor: mr ].
1✔
108

1✔
109
        ^ mergeRequests "mergeRequests select: [ :mergeRequest |
1✔
110
                  mergeRequest author = user ]"
1✔
111
]
1✔
112

113
{ #category : #loading }
UNCOV
114
UserMetric >> loadMergeRequestsWithJiraIssueSince: since until: until [
×
115

×
116
        | email mergeRequests |
×
117
        mergeRequests := self
×
118
                                 loadMergeRequestsSince: since until:  until.
×
119

×
120
        email := self userEmail.
×
121

×
122
        jiraImporter importAllCurrentAndPastIssuesOf: email.
×
123

×
124
        GPJCConnector new
×
125
                gpModel: glhImporter glhModel;
×
126
                jiraModel: jiraImporter model;
×
127
                connect.
×
128

×
129
        ^ mergeRequests select: [ :mergeRequest |
×
130
                  mergeRequest jiraIssue isNotNil ]
×
131
]
×
132

133
{ #category : #loading }
134
UserMetric >> loadUserCommitsSince: since until: until [
1✔
135

1✔
136
        | cacheSymbol allCommits |
1✔
137
        glhImporter withCommitDiffs: false.
1✔
138

1✔
139
        cacheSymbol := self
1✔
140
                               cacheSymbolFor: GLHCommit
1✔
141
                               since: since
1✔
142
                               until: until.
1✔
143

1✔
144
        "download commits unless project cache is not empty"
1✔
145
        allCommits := user contributedProjects collect: [ :project |
1✔
146
                              project repository
1✔
147
                                      cacheAt: cacheSymbol
1✔
148
                                      ifAbsentPut: [
1✔
149
                                              | foundCommits |
1✔
150
                                              foundCommits := glhImporter
1✔
151
                                                                      importCommitsOfProject: project
1✔
152
                                                                      since: since
1✔
153
                                                                      until: until.
1✔
154
                                              foundCommits ] ].
1✔
155

1✔
156
        allCommits := allCommits flatten.
1✔
157
        allCommits do: [ :commit | glhImporter importCreatorOfCommit: commit ].
1✔
158
        glhImporter chainsCommitsFrom: allCommits.
1✔
159
        glhImporter withCommitDiffs: true.
1✔
160

1✔
161
        ^ allCommits reject: [ :commit | commit commitCreator ~= user ]
1✔
162
]
1✔
163

164
{ #category : #loading }
165
UserMetric >> loadUserCompleteCommitsSince: since until: until [
1✔
166

1✔
167
        | commits |
1✔
168
        commits := self loadUserCommitsSince: since until: until.
1✔
169
        commits do: [ :commit | glhImporter completeImportedCommit: commit ].
1✔
170
        ^ commits
1✔
171
]
1✔
172

173
{ #category : #loading }
174
UserMetric >> loadUserCompleteMergeRequestsSince: since until: until [
1✔
175

1✔
176
        | mergeRequests |
1✔
177
        mergeRequests := self loadUserMergeRequestsSince: since until: until.
1✔
178

1✔
179
        mergeRequests do: [ :mergeRequest |
1✔
180
                glhImporter importMergeResquestMerger: mergeRequest.
1✔
181
                glhImporter importMergeRequestCommits: mergeRequest ].
1✔
182

1✔
183
        ^ mergeRequests
1✔
184
]
1✔
185

186
{ #category : #loading }
187
UserMetric >> loadUserCompleteMergeRequestsWithJiraIssueSince: since until: until [
1✔
188

1✔
189
        | email mergeRequests |
1✔
190
        mergeRequests := self
1✔
191
                                 loadUserCompleteMergeRequestsSince: since
1✔
192
                                 until: until.
1✔
193

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

1✔
196
        jiraImporter importAllCurrentAndPastIssuesOf: email.
1✔
197

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

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

207
{ #category : #loading }
208
UserMetric >> loadUserMergeRequestsSince: since until: until [
1✔
209

1✔
210
        | mergeRequests |
1✔
211
        mergeRequests := self loadMergeRequestsSince: since until: until.
1✔
212

1✔
213
        ^ mergeRequests select: [ :mergeRequest | mergeRequest author = user ]
1✔
214
]
1✔
215

216
{ #category : #loading }
217
UserMetric >> loadUserMergeRequestsWithJiraIssueSince: since until: until [
1✔
218

1✔
219
        | email mergeRequests |
1✔
220
        mergeRequests := self loadUserMergeRequestsSince: since until: until.
1✔
221

1✔
222
        email := self userEmail.
1✔
223

1✔
224
        jiraImporter importAllCurrentAndPastIssuesOf: email.
1✔
225

1✔
226
        GPJCConnector new
1✔
227
                gpModel: glhImporter glhModel;
1✔
228
                jiraModel: jiraImporter model;
1✔
229
                connect.
1✔
230

1✔
231
        ^ mergeRequests select: [ :mergeRequest |
1✔
232
                  mergeRequest jiraIssue isNotNil ]
1✔
233
]
1✔
234

235
{ #category : #accessing }
236
UserMetric >> name [
237

238
        ^ self subclassResponsibility
239
]
240

241
{ #category : #accessing }
242
UserMetric >> user: anObject [
1✔
243

1✔
244
        user := anObject
1✔
245
]
1✔
246

247
{ #category : #email }
248
UserMetric >> userEmail [
1✔
249

1✔
250
        user public_email = '' ifFalse: [ ^ user public_email ].
1✔
251

1✔
252
        ^ ('' join: {
1✔
253
                           user username.
1✔
254
                           emailDomain }) asLowercase
1✔
255
]
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