|
|
|
@ -12,6 +12,8 @@ import (
|
|
|
|
|
|
|
|
|
|
"github.com/gogits/git-module" |
|
|
|
|
api "github.com/gogits/go-gogs-client" |
|
|
|
|
|
|
|
|
|
"github.com/gogits/gogs/modules/setting" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
type DiscordEmbedFooterObject struct { |
|
|
|
@ -56,6 +58,10 @@ func (p *DiscordPayload) JSONPayload() ([]byte, error) {
|
|
|
|
|
return data, nil |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func DiscordTextFormatter(s string) string { |
|
|
|
|
return strings.Split(s, "\n")[0] |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func DiscordLinkFormatter(url string, text string) string { |
|
|
|
|
return fmt.Sprintf("[%s](%s)", text, url) |
|
|
|
|
} |
|
|
|
@ -78,6 +84,7 @@ func getDiscordCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*DiscordPa
|
|
|
|
|
AvatarURL: slack.IconURL, |
|
|
|
|
Embeds: []*DiscordEmbedObject{{ |
|
|
|
|
Description: content, |
|
|
|
|
URL: setting.AppUrl + p.Sender.UserName, |
|
|
|
|
Color: int(color), |
|
|
|
|
Author: &DiscordEmbedAuthorObject{ |
|
|
|
|
Name: p.Sender.UserName, |
|
|
|
@ -113,7 +120,7 @@ func getDiscordPushPayload(p *api.PushPayload, slack *SlackMeta) (*DiscordPayloa
|
|
|
|
|
|
|
|
|
|
// for each commit, generate attachment text
|
|
|
|
|
for i, commit := range p.Commits { |
|
|
|
|
content += fmt.Sprintf("%s %s - %s", DiscordSHALinkFormatter(commit.URL, commit.ID[:7]), SlackShortTextFormatter(commit.Message), commit.Author.Name) |
|
|
|
|
content += fmt.Sprintf("%s %s - %s", DiscordSHALinkFormatter(commit.URL, commit.ID[:7]), DiscordTextFormatter(commit.Message), commit.Author.Name) |
|
|
|
|
// add linebreak to each commit but the last
|
|
|
|
|
if i < len(p.Commits)-1 { |
|
|
|
|
content += "\n" |
|
|
|
@ -126,6 +133,7 @@ func getDiscordPushPayload(p *api.PushPayload, slack *SlackMeta) (*DiscordPayloa
|
|
|
|
|
AvatarURL: slack.IconURL, |
|
|
|
|
Embeds: []*DiscordEmbedObject{{ |
|
|
|
|
Description: content, |
|
|
|
|
URL: setting.AppUrl + p.Sender.UserName, |
|
|
|
|
Color: int(color), |
|
|
|
|
Author: &DiscordEmbedAuthorObject{ |
|
|
|
|
Name: p.Sender.UserName, |
|
|
|
|