@@ -139,12 +139,7 @@ async function getGitifySubjectForCommit(
139
139
140
140
return {
141
141
state : null ,
142
- user : {
143
- login : user . login ,
144
- html_url : user . html_url ,
145
- avatar_url : user . avatar_url ,
146
- type : user . type ,
147
- } ,
142
+ user : getSubjectUser ( [ user ] ) ,
148
143
} ;
149
144
}
150
145
@@ -230,12 +225,7 @@ async function getGitifySubjectForIssue(
230
225
return {
231
226
number : issue . number ,
232
227
state : issue . state_reason ?? issue . state ,
233
- user : {
234
- login : issueCommentUser ?. login ?? issue . user . login ,
235
- html_url : issueCommentUser ?. html_url ?? issue . user . html_url ,
236
- avatar_url : issueCommentUser ?. avatar_url ?? issue . user . avatar_url ,
237
- type : issueCommentUser ?. type ?? issue . user . type ,
238
- } ,
228
+ user : getSubjectUser ( [ issueCommentUser , issue . user ] ) ,
239
229
comments : issue . comments ,
240
230
labels : issue . labels ?. map ( ( label ) => label . name ) ?? [ ] ,
241
231
milestone : issue . milestone ,
@@ -277,12 +267,7 @@ async function getGitifySubjectForPullRequest(
277
267
return {
278
268
number : pr . number ,
279
269
state : prState ,
280
- user : {
281
- login : prCommentUser ?. login ?? pr . user . login ,
282
- html_url : prCommentUser ?. html_url ?? pr . user . html_url ,
283
- avatar_url : prCommentUser ?. avatar_url ?? pr . user . avatar_url ,
284
- type : prCommentUser ?. type ?? pr . user . type ,
285
- } ,
270
+ user : getSubjectUser ( [ prCommentUser , pr . user ] ) ,
286
271
reviews : reviews ,
287
272
comments : pr . comments ,
288
273
labels : pr . labels ?. map ( ( label ) => label . name ) ?? [ ] ,
@@ -371,12 +356,7 @@ async function getGitifySubjectForRelease(
371
356
372
357
return {
373
358
state : null ,
374
- user : {
375
- login : release . author . login ,
376
- html_url : release . author . html_url ,
377
- avatar_url : release . author . avatar_url ,
378
- type : release . author . type ,
379
- } ,
359
+ user : getSubjectUser ( [ release . author ] ) ,
380
360
} ;
381
361
}
382
362
@@ -428,3 +408,27 @@ function getWorkflowRunStatus(statusDisplayName: string): CheckSuiteStatus {
428
408
return null ;
429
409
}
430
410
}
411
+
412
+ /**
413
+ * Construct the notification subject user based on an order prioritized list of users
414
+ * @param users array of users in order or priority
415
+ * @returns the subject user
416
+ */
417
+ export function getSubjectUser ( users : User [ ] ) : SubjectUser {
418
+ let subjectUser : SubjectUser = null ;
419
+
420
+ for ( const user of users ) {
421
+ if ( user ) {
422
+ subjectUser = {
423
+ login : user . login ,
424
+ html_url : user . html_url ,
425
+ avatar_url : user . avatar_url ,
426
+ type : user . type ,
427
+ } ;
428
+
429
+ return subjectUser ;
430
+ }
431
+ }
432
+
433
+ return subjectUser ;
434
+ }
0 commit comments