diff options
-rw-r--r-- | gogs.go | 2 | ||||
-rw-r--r-- | models/webhook_discord.go | 8 | ||||
-rw-r--r-- | modules/auth/repo_form.go | 1 | ||||
-rw-r--r-- | routers/repo/webhook.go | 2 | ||||
-rw-r--r-- | templates/.VERSION | 2 | ||||
-rw-r--r-- | templates/repo/settings/hook_discord.tmpl | 4 |
6 files changed, 17 insertions, 2 deletions
@@ -16,7 +16,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.9.163.0220" +const APP_VER = "0.9.164.0220" func init() { setting.AppVer = APP_VER diff --git a/models/webhook_discord.go b/models/webhook_discord.go index 820637fb..aa387fe6 100644 --- a/models/webhook_discord.go +++ b/models/webhook_discord.go @@ -7,6 +7,7 @@ package models import ( "encoding/json" "fmt" + "strconv" "strings" "github.com/gogits/git-module" @@ -32,6 +33,7 @@ type DiscordEmbedObject struct { Title string `json:"title"` Description string `json:"description"` URL string `json:"url"` + Color int `json:"color"` Footer *DiscordEmbedFooterObject `json:"footer"` Author *DiscordEmbedAuthorObject `json:"author"` Fields []*DiscordEmbedFieldObject `json:"fields"` @@ -70,11 +72,13 @@ func getDiscordCreatePayload(p *api.CreatePayload, slack *SlackMeta) (*DiscordPa refLink := DiscordLinkFormatter(p.Repo.HTMLURL+"/src/"+refName, refName) content := fmt.Sprintf("Created new %s: %s/%s", p.RefType, repoLink, refLink) + color, _ := strconv.ParseInt(strings.TrimLeft(slack.Color, "#"), 16, 32) return &DiscordPayload{ Username: slack.Username, AvatarURL: slack.IconURL, Embeds: []*DiscordEmbedObject{{ Description: content, + Color: int(color), Author: &DiscordEmbedAuthorObject{ Name: p.Sender.UserName, IconURL: p.Sender.AvatarUrl, @@ -116,11 +120,13 @@ func getDiscordPushPayload(p *api.PushPayload, slack *SlackMeta) (*DiscordPayloa } } + color, _ := strconv.ParseInt(strings.TrimLeft(slack.Color, "#"), 16, 32) return &DiscordPayload{ Username: slack.Username, AvatarURL: slack.IconURL, Embeds: []*DiscordEmbedObject{{ Description: content, + Color: int(color), Author: &DiscordEmbedAuthorObject{ Name: p.Sender.UserName, IconURL: p.Sender.AvatarUrl, @@ -173,6 +179,7 @@ func getDiscordPullRequestPayload(p *api.PullRequestPayload, slack *SlackMeta) ( title = "Pull request synchronized: " + title } + color, _ := strconv.ParseInt(strings.TrimLeft(slack.Color, "#"), 16, 32) return &DiscordPayload{ Username: slack.Username, AvatarURL: slack.IconURL, @@ -180,6 +187,7 @@ func getDiscordPullRequestPayload(p *api.PullRequestPayload, slack *SlackMeta) ( Title: title, Description: content, URL: url, + Color: int(color), Footer: &DiscordEmbedFooterObject{ Text: p.Repository.FullName, }, diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go index c9311530..6b4612c5 100644 --- a/modules/auth/repo_form.go +++ b/modules/auth/repo_form.go @@ -177,6 +177,7 @@ type NewDiscordHookForm struct { PayloadURL string `binding:"Required;Url"` Username string IconURL string + Color string WebhookForm } diff --git a/routers/repo/webhook.go b/routers/repo/webhook.go index 84c95b5e..f033e41b 100644 --- a/routers/repo/webhook.go +++ b/routers/repo/webhook.go @@ -232,6 +232,7 @@ func DiscordHooksNewPost(ctx *context.Context, form auth.NewDiscordHookForm) { meta, err := json.Marshal(&models.SlackMeta{ Username: form.Username, IconURL: form.IconURL, + Color: form.Color, }) if err != nil { ctx.Handle(500, "Marshal", err) @@ -418,6 +419,7 @@ func DiscordHooksEditPost(ctx *context.Context, form auth.NewDiscordHookForm) { meta, err := json.Marshal(&models.SlackMeta{ Username: form.Username, IconURL: form.IconURL, + Color: form.Color, }) if err != nil { ctx.Handle(500, "Marshal", err) diff --git a/templates/.VERSION b/templates/.VERSION index 69e56018..687a230f 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.9.163.0220
\ No newline at end of file +0.9.164.0220
\ No newline at end of file diff --git a/templates/repo/settings/hook_discord.tmpl b/templates/repo/settings/hook_discord.tmpl index 5561466f..1da3ef2c 100644 --- a/templates/repo/settings/hook_discord.tmpl +++ b/templates/repo/settings/hook_discord.tmpl @@ -15,6 +15,10 @@ <label for="icon_url">{{.i18n.Tr "repo.settings.slack_icon_url"}}</label> <input id="icon_url" name="icon_url" value="{{.SlackHook.IconURL}}" placeholder="e.g. https://example.com/img/favicon.png"> </div> + <div class="field"> + <label for="color">{{.i18n.Tr "repo.settings.slack_color"}}</label> + <input id="color" name="color" value="{{.SlackHook.Color}}" placeholder="e.g. #dd4b39"> + </div> {{template "repo/settings/hook_settings" .}} </form> {{end}} |