From b4aba68551bda4eced0555fe666c2c6e94869a5a Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Sun, 14 Dec 2025 18:01:40 +0100 Subject: [PATCH 01/10] Added collapsed style for issue labeled subscriptions mattermost/mattermost-plugin-github#740 --- server/plugin/template.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/server/plugin/template.go b/server/plugin/template.go index bb024776d..ccb85327e 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -307,9 +307,13 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp `)) template.Must(masterTemplate.New("issueLabelled").Funcs(funcMap).Parse(` +{{- if eq .Config.style "collapsed" -}} +{{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. +{{- else -}} #### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} #issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. +{{- end -}} `)) template.Must(masterTemplate.New("reopenedIssue").Funcs(funcMap).Parse(` From 77eea3bca5ede9f1ddb6577f6a030d1c2f4cdd4d Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Sun, 14 Dec 2025 18:44:29 +0100 Subject: [PATCH 02/10] fix: fix a rendering error --- server/plugin/template.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugin/template.go b/server/plugin/template.go index ccb85327e..7fb405ddf 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -307,7 +307,7 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp `)) template.Must(masterTemplate.New("issueLabelled").Funcs(funcMap).Parse(` -{{- if eq .Config.style "collapsed" -}} +{{- if eq .Config.Style "collapsed" -}} {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. {{- else -}} #### {{.Event.GetIssue.GetTitle}} From c12c89f69cf848b1fdbdd559edb7618ba1f67633 Mon Sep 17 00:00:00 2001 From: JOAO-Ethan <106932691+JOAO-Ethan@users.noreply.github.com> Date: Tue, 16 Dec 2025 00:33:52 +0100 Subject: [PATCH 03/10] Added \n to match tests --- server/plugin/template.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/plugin/template.go b/server/plugin/template.go index 7fb405ddf..61832d4ac 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -310,9 +310,11 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp {{- if eq .Config.Style "collapsed" -}} {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. {{- else -}} + #### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} #issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. + {{- end -}} `)) From 291913839231dd69016ecaebeb7a82a01c23f75d Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Tue, 30 Dec 2025 17:20:19 +0100 Subject: [PATCH 04/10] fix: Added mandatory \n --- server/plugin/template.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugin/template.go b/server/plugin/template.go index 61832d4ac..37dc90e09 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -311,9 +311,9 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. {{- else -}} -#### {{.Event.GetIssue.GetTitle}} +\n#### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} -#issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. +#issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}.\n {{- end -}} `)) From 90421ea5a25043cb47e5c75603bf7cb0223f02c8 Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Thu, 29 Jan 2026 15:53:20 +0100 Subject: [PATCH 05/10] test: Add a test for the collapsed render style in the TestIssueLabelledTemplate --- server/plugin/template_test.go | 50 +++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/server/plugin/template_test.go b/server/plugin/template_test.go index bab6bc969..26261bc07 100644 --- a/server/plugin/template_test.go +++ b/server/plugin/template_test.go @@ -597,25 +597,49 @@ func TestReopenedIssueTemplate(t *testing.T) { } func TestIssueLabelledTemplate(t *testing.T) { - expected := ` + t.Run("without collapsed render style", func(t *testing.T) { + expected := ` #### Implement git-get-head ##### [mattermost-plugin-github#1](https://github.com/mattermost/mattermost-plugin-github/issues/1) #issue-labeled ` + "`label-name`" + ` by [panda](https://github.com/panda). ` - actual, err := renderTemplate("issueLabelled", GetEventWithRenderConfig( - &github.IssuesEvent{ - Repo: &repo, - Issue: &issue, - Label: &github.Label{ - Name: sToP("label-name"), + actual, err := renderTemplate("issueLabelled", GetEventWithRenderConfig( + &github.IssuesEvent{ + Repo: &repo, + Issue: &issue, + Label: &github.Label{ + Name: sToP("label-name"), + }, + Sender: &user, }, - Sender: &user, - }, - nil, - )) - require.NoError(t, err) - require.Equal(t, expected, actual) + nil, + )) + require.NoError(t, err) + require.Equal(t, expected, actual) + }) + + t.Run("with collapsed render style", func(t *testing.T) { + expected := ` +[\[mattermost-plugin-github\]](https://github.com/mattermost/mattermost-plugin-github) issue [#1 Implement git-get-head](https://github.com/mattermost/mattermost-plugin-github/issues/1) labeled ` + "`label-name`" + ` by [panda](https://github.com/panda). +` + + actual, err := renderTemplate("issueLabelled", &EventWithRenderConfig{ + Event: &github.IssuesEvent{ + Repo: &repo, + Issue: &issue, + Label: &github.Label{ + Name: sToP("label-name"), + }, + Sender: &user, + }, + Config: RenderConfig{ + Style: "collapsed", + }, + }) + require.NoError(t, err) + require.Equal(t, expected, actual) + }) } func TestPushedCommitsTemplate(t *testing.T) { From 25f492280503cb241642fe2bb54c3304bf2632fc Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Thu, 29 Jan 2026 16:47:25 +0100 Subject: [PATCH 06/10] fix test --- server/plugin/template_test.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/server/plugin/template_test.go b/server/plugin/template_test.go index 26261bc07..32ba9be8d 100644 --- a/server/plugin/template_test.go +++ b/server/plugin/template_test.go @@ -620,9 +620,7 @@ func TestIssueLabelledTemplate(t *testing.T) { }) t.Run("with collapsed render style", func(t *testing.T) { - expected := ` -[\[mattermost-plugin-github\]](https://github.com/mattermost/mattermost-plugin-github) issue [#1 Implement git-get-head](https://github.com/mattermost/mattermost-plugin-github/issues/1) labeled ` + "`label-name`" + ` by [panda](https://github.com/panda). -` + expected := `[\[mattermost-plugin-github\]](https://github.com/mattermost/mattermost-plugin-github) issue [#1 Implement git-get-head](https://github.com/mattermost/mattermost-plugin-github/issues/1) labeled ` + "`label-name`" + ` by [panda](https://github.com/panda).` actual, err := renderTemplate("issueLabelled", &EventWithRenderConfig{ Event: &github.IssuesEvent{ From 1478670a95bd0ebb1d36163496b31f1ebf384659 Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Fri, 30 Jan 2026 14:06:06 +0100 Subject: [PATCH 07/10] try matching issueLabelled tests --- server/plugin/template.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/plugin/template.go b/server/plugin/template.go index 37dc90e09..61832d4ac 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -311,9 +311,9 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. {{- else -}} -\n#### {{.Event.GetIssue.GetTitle}} +#### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} -#issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}.\n +#issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. {{- end -}} `)) From fb97ab60c1fb1ca8fae0fda7b8558b770fa71420 Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Fri, 30 Jan 2026 14:16:04 +0100 Subject: [PATCH 08/10] matched parsing of newIssue template for issueLabelled --- server/plugin/template.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/server/plugin/template.go b/server/plugin/template.go index 61832d4ac..d85d3181c 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -310,12 +310,11 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp {{- if eq .Config.Style "collapsed" -}} {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. {{- else -}} - #### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} #issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. -{{- end -}} +{{- end }} `)) template.Must(masterTemplate.New("reopenedIssue").Funcs(funcMap).Parse(` From 5fda156a3c846e70dee737b4cfc094beb88727a1 Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Fri, 30 Jan 2026 14:29:39 +0100 Subject: [PATCH 09/10] Fix newlines errors --- server/plugin/template.go | 4 ++-- server/plugin/template_test.go | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/server/plugin/template.go b/server/plugin/template.go index d85d3181c..b54f4ed55 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -307,9 +307,9 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp `)) template.Must(masterTemplate.New("issueLabelled").Funcs(funcMap).Parse(` -{{- if eq .Config.Style "collapsed" -}} +{{ if eq .Config.Style "collapsed" -}} {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. -{{- else -}} +{{- else }} #### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} #issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. diff --git a/server/plugin/template_test.go b/server/plugin/template_test.go index 32ba9be8d..26261bc07 100644 --- a/server/plugin/template_test.go +++ b/server/plugin/template_test.go @@ -620,7 +620,9 @@ func TestIssueLabelledTemplate(t *testing.T) { }) t.Run("with collapsed render style", func(t *testing.T) { - expected := `[\[mattermost-plugin-github\]](https://github.com/mattermost/mattermost-plugin-github) issue [#1 Implement git-get-head](https://github.com/mattermost/mattermost-plugin-github/issues/1) labeled ` + "`label-name`" + ` by [panda](https://github.com/panda).` + expected := ` +[\[mattermost-plugin-github\]](https://github.com/mattermost/mattermost-plugin-github) issue [#1 Implement git-get-head](https://github.com/mattermost/mattermost-plugin-github/issues/1) labeled ` + "`label-name`" + ` by [panda](https://github.com/panda). +` actual, err := renderTemplate("issueLabelled", &EventWithRenderConfig{ Event: &github.IssuesEvent{ From df509a890e9ad1e05adafd36dfb8978607156689 Mon Sep 17 00:00:00 2001 From: Joao Ethan Date: Fri, 30 Jan 2026 15:01:27 +0100 Subject: [PATCH 10/10] Add a forgotten hyphen --- server/plugin/template.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/plugin/template.go b/server/plugin/template.go index b54f4ed55..f1fab24c3 100644 --- a/server/plugin/template.go +++ b/server/plugin/template.go @@ -309,7 +309,7 @@ Reviewers: {{range $i, $el := .RequestedReviewers -}} {{- if $i}}, {{end}}{{temp template.Must(masterTemplate.New("issueLabelled").Funcs(funcMap).Parse(` {{ if eq .Config.Style "collapsed" -}} {{template "repo" .Event.GetRepo}} issue {{template "issue" .Event.GetIssue}} labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}. -{{- else }} +{{- else -}} #### {{.Event.GetIssue.GetTitle}} ##### {{template "eventRepoIssue" .Event}} #issue-labeled ` + "`{{.Event.GetLabel.GetName}}`" + ` by {{template "user" .Event.GetSender}}.