@@ -116,53 +116,22 @@ GLPHModelImporter >> configureReaderForMergeRequest: reader [
116
116
(mapping mapInstVar: #created_at ) valueSchema: DateAndTime .
117
117
(mapping mapInstVar: #updated_at ) valueSchema: DateAndTime .
118
118
(mapping mapInstVar: #merged_at ) valueSchema: DateAndTime .
119
- (mapping mapInstVar: #closed_at ) valueSchema: DateAndTime
120
- "
121
- (mapping mapInstVar: #assignee) valueSchema: GLHUser.
122
- (mapping mapInstVar: #author) valueSchema: GLHUser.
123
- (mapping mapInstVar: #closed_by) valueSchema: GLHUser.
124
- (mapping mapInstVar: #mergeCommit) valueSchema: GLHCommit." ].
125
-
126
- " indique ce que doit faire le reader lorsqu'il parse une DateAndTime object"
127
- reader for: DateAndTime customDo: [ :mapping |
128
- mapping decoder: [ :string |
129
- string ifNil: [ nil ] ifNotNil: [ DateAndTime fromString: string ] ] ]
130
- ]
131
-
132
- { #category : #' private - configure reader' }
133
- GLPHModelImporter >> configureReaderForMergeRequestApproval: reader [
134
- " declare quil y a un array a mapper"
135
-
136
- reader for: #ArrayOfMergeRequest customDo: [ :customMappting |
137
- customMappting listOfElementSchema: GLPHEMergeRequest ].
138
-
139
- " declare la liste des properties"
140
- reader for: GLPHEMergeRequest do: [ :mapping |
141
- mapping mapInstVars:
142
- #( blocking_discussions_resolved changes_count description
143
- detailed_merge_status discussion_locked downvotes draft first_deployed_to_production_at
144
- force_remove_source_branch has_conflicts id iid labels latest_build_finished_at
145
- latest_build_started_at merge_commit_sha merge_status
146
- merge_when_pipeline_succeeds merged_at milestone project_id
147
- reference references_full references_relative
148
- references_short sha should_remove_source_branch
149
- source_branch source_project_id squash squash_commit_sha
150
- squash_on_merge state subscribed target_branch target_project_id
151
- task_completion_status_completed_count
152
- task_completion_status_count time_stats_human_time_estimate
153
- time_stats_human_total_time_spent
154
- time_stats_time_estimate time_stats_total_time_spent
155
- title updated_at upvotes user_notes_count web_url work_in_progress ) .
156
- (mapping mapInstVar: #created_at ) valueSchema: DateAndTime .
157
- (mapping mapInstVar: #updated_at ) valueSchema: DateAndTime .
158
- (mapping mapInstVar: #merged_at ) valueSchema: DateAndTime .
159
- (mapping mapInstVar: #closed_at ) valueSchema: DateAndTime
160
- "
161
- (mapping mapInstVar: #assignee) valueSchema: GLHUser.
162
- (mapping mapInstVar: #author) valueSchema: GLHUser.
163
- (mapping mapInstVar: #closed_by) valueSchema: GLHUser.
164
- (mapping mapInstVar: #mergeCommit) valueSchema: GLHCommit." ].
165
-
119
+ (mapping mapInstVar: #closed_at ) valueSchema: DateAndTime .
120
+ " (mapping mapInstVar: #assignee) valueSchema: GLHUser."
121
+ mapping
122
+ mapProperty: #author
123
+ getter: [ ]
124
+ setter: [ :object :value |
125
+ object cacheAt: #authorID put: (value at: #id ) ].
126
+ mapping
127
+ mapProperty: #merge_user
128
+ getter: [ ]
129
+ setter: [ :object :value |
130
+ value ifNotNil: [
131
+ object cacheAt: #mergeUserID put: (value at: #id ) ] ] ].
132
+
133
+ " (mapping mapInstVar: #closed_by) valueSchema: GLHUser.
134
+ (mapping mapInstVar: #mergeCommit) valueSchema: GLHCommit."
166
135
" indique ce que doit faire le reader lorsqu'il parse une DateAndTime object"
167
136
reader for: DateAndTime customDo: [ :mapping |
168
137
mapping decoder: [ :string |
@@ -281,7 +250,7 @@ GLPHModelImporter >> importDiffRangesForDiff: aGLHDiff [
281
250
unless: self blockForDiffRangeEquality
282
251
]
283
252
284
- { #category : #import }
253
+ { #category : #' import - merge request ' }
285
254
GLPHModelImporter >> importMergeRequests: aGLHProject [
286
255
287
256
| results parsedResults |
@@ -310,7 +279,7 @@ GLPHModelImporter >> importMergeRequests: aGLHProject [
310
279
self importDiffOfMergeRequest: mr ] ]
311
280
]
312
281
313
- { #category : #import }
282
+ { #category : #' import - merge request ' }
314
283
GLPHModelImporter >> importMergeRequests: aGLHProject since: fromDate until: toDate [
315
284
316
285
| newlyFoundMR page foundMR |
@@ -355,7 +324,7 @@ GLPHModelImporter >> importMergeRequests: aGLHProject since: fromDate until: toD
355
324
^ foundMR
356
325
]
357
326
358
- { #category : #import }
327
+ { #category : #' import - merge request ' }
359
328
GLPHModelImporter >> importMergeResquestApprovals: aGLPHEMergeRequest [
360
329
361
330
| results parsedResult |
@@ -369,10 +338,48 @@ GLPHModelImporter >> importMergeResquestApprovals: aGLPHEMergeRequest [
369
338
parsedResult := generalReader
370
339
on: results readStream;
371
340
next.
341
+
342
+ (parsedResult at: #approved_by ) do: [ :approvedUser |
343
+ aGLPHEMergeRequest addApproved_by:
344
+ (self importUser: ((approvedUser at: #user ) at: #id )) ].
372
345
aGLPHEMergeRequest approved: (parsedResult at: #approved ).
373
346
^ aGLPHEMergeRequest
374
347
]
375
348
349
+ { #category : #' import - merge request' }
350
+ GLPHModelImporter >> importMergeResquestAuthor: aGLPHEMergeRequest [
351
+
352
+ | authorID |
353
+ aGLPHEMergeRequest author ifNotNil: [ ^ aGLPHEMergeRequest author ].
354
+ authorID := aGLPHEMergeRequest cacheAt: #authorID ifAbsent: [
355
+ (generalReader
356
+ on: (self glhApi
357
+ mergeRequestOfProject:
358
+ aGLPHEMergeRequest project_id
359
+ withId: aGLPHEMergeRequest iid) readStream;
360
+ next) at: #author at: #id ].
361
+ aGLPHEMergeRequest author: (self importUser: authorID)
362
+ ]
363
+
364
+ { #category : #' import - merge request' }
365
+ GLPHModelImporter >> importMergeResquestMerger: aGLPHEMergeRequest [
366
+
367
+ | authorID |
368
+ aGLPHEMergeRequest merge_user ifNotNil: [
369
+ ^ aGLPHEMergeRequest merge_user ].
370
+ authorID := aGLPHEMergeRequest cacheAt: #mergeUserID ifAbsent: [
371
+ (generalReader
372
+ on: (self glhApi
373
+ mergeRequestOfProject:
374
+ aGLPHEMergeRequest project_id
375
+ withId: aGLPHEMergeRequest iid) readStream;
376
+ next)
377
+ at: #merge_user
378
+ ifPresent: [ :mergeUser |
379
+ mergeUser ifNotNil: [ :mruser | mruser at: #id ] ] ].
380
+ aGLPHEMergeRequest merge_user: (self importUser: authorID)
381
+ ]
382
+
376
383
{ #category : #' as yet unclassified' }
377
384
GLPHModelImporter >> importProject: aProjectID [
378
385
0 commit comments