@@ -120,22 +120,7 @@ func (d *DiscordPayload) Create(p *api.CreatePayload) (api.Payloader, error) {
120
120
refName := git .RefEndName (p .Ref )
121
121
title := fmt .Sprintf ("[%s] %s %s created" , p .Repo .FullName , p .RefType , refName )
122
122
123
- return & DiscordPayload {
124
- Username : d .Username ,
125
- AvatarURL : d .AvatarURL ,
126
- Embeds : []DiscordEmbed {
127
- {
128
- Title : title ,
129
- URL : p .Repo .HTMLURL + "/src/" + refName ,
130
- Color : greenColor ,
131
- Author : DiscordEmbedAuthor {
132
- Name : p .Sender .UserName ,
133
- URL : setting .AppURL + p .Sender .UserName ,
134
- IconURL : p .Sender .AvatarURL ,
135
- },
136
- },
137
- },
138
- }, nil
123
+ return d .createPayload (p .Sender , title , "" , p .Repo .HTMLURL + "/src/" + refName , greenColor ), nil
139
124
}
140
125
141
126
// Delete implements PayloadConvertor Delete method
@@ -144,44 +129,14 @@ func (d *DiscordPayload) Delete(p *api.DeletePayload) (api.Payloader, error) {
144
129
refName := git .RefEndName (p .Ref )
145
130
title := fmt .Sprintf ("[%s] %s %s deleted" , p .Repo .FullName , p .RefType , refName )
146
131
147
- return & DiscordPayload {
148
- Username : d .Username ,
149
- AvatarURL : d .AvatarURL ,
150
- Embeds : []DiscordEmbed {
151
- {
152
- Title : title ,
153
- URL : p .Repo .HTMLURL + "/src/" + refName ,
154
- Color : redColor ,
155
- Author : DiscordEmbedAuthor {
156
- Name : p .Sender .UserName ,
157
- URL : setting .AppURL + p .Sender .UserName ,
158
- IconURL : p .Sender .AvatarURL ,
159
- },
160
- },
161
- },
162
- }, nil
132
+ return d .createPayload (p .Sender , title , "" , p .Repo .HTMLURL + "/src/" + refName , redColor ), nil
163
133
}
164
134
165
135
// Fork implements PayloadConvertor Fork method
166
136
func (d * DiscordPayload ) Fork (p * api.ForkPayload ) (api.Payloader , error ) {
167
137
title := fmt .Sprintf ("%s is forked to %s" , p .Forkee .FullName , p .Repo .FullName )
168
138
169
- return & DiscordPayload {
170
- Username : d .Username ,
171
- AvatarURL : d .AvatarURL ,
172
- Embeds : []DiscordEmbed {
173
- {
174
- Title : title ,
175
- URL : p .Repo .HTMLURL ,
176
- Color : greenColor ,
177
- Author : DiscordEmbedAuthor {
178
- Name : p .Sender .UserName ,
179
- URL : setting .AppURL + p .Sender .UserName ,
180
- IconURL : p .Sender .AvatarURL ,
181
- },
182
- },
183
- },
184
- }, nil
139
+ return d .createPayload (p .Sender , title , "" , p .Repo .HTMLURL , greenColor ), nil
185
140
}
186
141
187
142
// Push implements PayloadConvertor Push method
@@ -216,92 +171,28 @@ func (d *DiscordPayload) Push(p *api.PushPayload) (api.Payloader, error) {
216
171
}
217
172
}
218
173
219
- return & DiscordPayload {
220
- Username : d .Username ,
221
- AvatarURL : d .AvatarURL ,
222
- Embeds : []DiscordEmbed {
223
- {
224
- Title : title ,
225
- Description : text ,
226
- URL : titleLink ,
227
- Color : greenColor ,
228
- Author : DiscordEmbedAuthor {
229
- Name : p .Sender .UserName ,
230
- URL : setting .AppURL + p .Sender .UserName ,
231
- IconURL : p .Sender .AvatarURL ,
232
- },
233
- },
234
- },
235
- }, nil
174
+ return d .createPayload (p .Sender , title , text , titleLink , greenColor ), nil
236
175
}
237
176
238
177
// Issue implements PayloadConvertor Issue method
239
178
func (d * DiscordPayload ) Issue (p * api.IssuePayload ) (api.Payloader , error ) {
240
- text , _ , attachmentText , color := getIssuesPayloadInfo (p , noneLinkFormatter , false )
179
+ title , _ , text , color := getIssuesPayloadInfo (p , noneLinkFormatter , false )
241
180
242
- return & DiscordPayload {
243
- Username : d .Username ,
244
- AvatarURL : d .AvatarURL ,
245
- Embeds : []DiscordEmbed {
246
- {
247
- Title : text ,
248
- Description : attachmentText ,
249
- URL : p .Issue .HTMLURL ,
250
- Color : color ,
251
- Author : DiscordEmbedAuthor {
252
- Name : p .Sender .UserName ,
253
- URL : setting .AppURL + p .Sender .UserName ,
254
- IconURL : p .Sender .AvatarURL ,
255
- },
256
- },
257
- },
258
- }, nil
181
+ return d .createPayload (p .Sender , title , text , p .Issue .HTMLURL , color ), nil
259
182
}
260
183
261
184
// IssueComment implements PayloadConvertor IssueComment method
262
185
func (d * DiscordPayload ) IssueComment (p * api.IssueCommentPayload ) (api.Payloader , error ) {
263
- text , _ , color := getIssueCommentPayloadInfo (p , noneLinkFormatter , false )
186
+ title , _ , color := getIssueCommentPayloadInfo (p , noneLinkFormatter , false )
264
187
265
- return & DiscordPayload {
266
- Username : d .Username ,
267
- AvatarURL : d .AvatarURL ,
268
- Embeds : []DiscordEmbed {
269
- {
270
- Title : text ,
271
- Description : p .Comment .Body ,
272
- URL : p .Comment .HTMLURL ,
273
- Color : color ,
274
- Author : DiscordEmbedAuthor {
275
- Name : p .Sender .UserName ,
276
- URL : setting .AppURL + p .Sender .UserName ,
277
- IconURL : p .Sender .AvatarURL ,
278
- },
279
- },
280
- },
281
- }, nil
188
+ return d .createPayload (p .Sender , title , p .Comment .Body , p .Comment .HTMLURL , color ), nil
282
189
}
283
190
284
191
// PullRequest implements PayloadConvertor PullRequest method
285
192
func (d * DiscordPayload ) PullRequest (p * api.PullRequestPayload ) (api.Payloader , error ) {
286
- text , _ , attachmentText , color := getPullRequestPayloadInfo (p , noneLinkFormatter , false )
193
+ title , _ , text , color := getPullRequestPayloadInfo (p , noneLinkFormatter , false )
287
194
288
- return & DiscordPayload {
289
- Username : d .Username ,
290
- AvatarURL : d .AvatarURL ,
291
- Embeds : []DiscordEmbed {
292
- {
293
- Title : text ,
294
- Description : attachmentText ,
295
- URL : p .PullRequest .HTMLURL ,
296
- Color : color ,
297
- Author : DiscordEmbedAuthor {
298
- Name : p .Sender .UserName ,
299
- URL : setting .AppURL + p .Sender .UserName ,
300
- IconURL : p .Sender .AvatarURL ,
301
- },
302
- },
303
- },
304
- }, nil
195
+ return d .createPayload (p .Sender , title , text , p .PullRequest .HTMLURL , color ), nil
305
196
}
306
197
307
198
// Review implements PayloadConvertor Review method
@@ -330,23 +221,7 @@ func (d *DiscordPayload) Review(p *api.PullRequestPayload, event models.HookEven
330
221
}
331
222
}
332
223
333
- return & DiscordPayload {
334
- Username : d .Username ,
335
- AvatarURL : d .AvatarURL ,
336
- Embeds : []DiscordEmbed {
337
- {
338
- Title : title ,
339
- Description : text ,
340
- URL : p .PullRequest .HTMLURL ,
341
- Color : color ,
342
- Author : DiscordEmbedAuthor {
343
- Name : p .Sender .UserName ,
344
- URL : setting .AppURL + p .Sender .UserName ,
345
- IconURL : p .Sender .AvatarURL ,
346
- },
347
- },
348
- },
349
- }, nil
224
+ return d .createPayload (p .Sender , title , text , p .PullRequest .HTMLURL , color ), nil
350
225
}
351
226
352
227
// Repository implements PayloadConvertor Repository method
@@ -363,45 +238,14 @@ func (d *DiscordPayload) Repository(p *api.RepositoryPayload) (api.Payloader, er
363
238
color = redColor
364
239
}
365
240
366
- return & DiscordPayload {
367
- Username : d .Username ,
368
- AvatarURL : d .AvatarURL ,
369
- Embeds : []DiscordEmbed {
370
- {
371
- Title : title ,
372
- URL : url ,
373
- Color : color ,
374
- Author : DiscordEmbedAuthor {
375
- Name : p .Sender .UserName ,
376
- URL : setting .AppURL + p .Sender .UserName ,
377
- IconURL : p .Sender .AvatarURL ,
378
- },
379
- },
380
- },
381
- }, nil
241
+ return d .createPayload (p .Sender , title , "" , url , color ), nil
382
242
}
383
243
384
244
// Release implements PayloadConvertor Release method
385
245
func (d * DiscordPayload ) Release (p * api.ReleasePayload ) (api.Payloader , error ) {
386
246
text , color := getReleasePayloadInfo (p , noneLinkFormatter , false )
387
247
388
- return & DiscordPayload {
389
- Username : d .Username ,
390
- AvatarURL : d .AvatarURL ,
391
- Embeds : []DiscordEmbed {
392
- {
393
- Title : text ,
394
- Description : p .Release .Note ,
395
- URL : p .Release .URL ,
396
- Color : color ,
397
- Author : DiscordEmbedAuthor {
398
- Name : p .Sender .UserName ,
399
- URL : setting .AppURL + p .Sender .UserName ,
400
- IconURL : p .Sender .AvatarURL ,
401
- },
402
- },
403
- },
404
- }, nil
248
+ return d .createPayload (p .Sender , text , p .Release .Note , p .Release .URL , color ), nil
405
249
}
406
250
407
251
// GetDiscordPayload converts a discord webhook into a DiscordPayload
@@ -433,3 +277,23 @@ func parseHookPullRequestEventType(event models.HookEventType) (string, error) {
433
277
return "" , errors .New ("unknown event type" )
434
278
}
435
279
}
280
+
281
+ func (d * DiscordPayload ) createPayload (s * api.User , title , text , url string , color int ) * DiscordPayload {
282
+ return & DiscordPayload {
283
+ Username : d .Username ,
284
+ AvatarURL : d .AvatarURL ,
285
+ Embeds : []DiscordEmbed {
286
+ {
287
+ Title : title ,
288
+ Description : text ,
289
+ URL : url ,
290
+ Color : color ,
291
+ Author : DiscordEmbedAuthor {
292
+ Name : s .UserName ,
293
+ URL : setting .AppURL + s .UserName ,
294
+ IconURL : s .AvatarURL ,
295
+ },
296
+ },
297
+ },
298
+ }
299
+ }
0 commit comments