From b2bae9b5abc7367adec24d1ee4b8b7828e975ea8 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Mon, 30 Mar 2020 10:59:17 -0400 Subject: [PATCH] gitsrht-update-hook: improve build note This makes the markdown style more readable in an email notification from builds.sr.ht, and re-enables the missing feature. --- gitsrht-update-hook/submitter.go | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/gitsrht-update-hook/submitter.go b/gitsrht-update-hook/submitter.go index b2e9529..bbe59eb 100644 --- a/gitsrht-update-hook/submitter.go +++ b/gitsrht-update-hook/submitter.go @@ -156,15 +156,28 @@ func firstLine(text string) string { return scanner.Text() } +// via https://github.com/openconfig/goyang, Apache 2.0 +func indent(indent, s string) string { + if indent == "" || s == "" { + return s + } + lines := strings.SplitAfter(s, "\n") + if len(lines[len(lines)-1]) == 0 { + lines = lines[:len(lines)-1] + } + return strings.Join(append([]string{""}, lines...), indent) +} + func (submitter GitBuildSubmitter) GetCommitNote() string { policy := bluemonday.StrictPolicy() commitUrl := fmt.Sprintf("%s/%s/%s/commit/%s", submitter.GitOrigin, submitter.OwnerName, submitter.RepoName, submitter.GetCommitId()) - return fmt.Sprintf(`[%s](%s) — [%s](mailto:%s)\n\n
%s
`, - submitter.GetCommitId()[:7], commitUrl, - submitter.Commit.Author.Name, submitter.Commit.Author.Email, - policy.Sanitize(firstLine(submitter.Commit.Message))) + return fmt.Sprintf("[%s][0] — [%s][1]\n\n%s\n\n[0]: %s\n[1]: mailto:%s", + submitter.GetCommitId()[:7], + submitter.Commit.Author.Name, + indent(" ", policy.Sanitize(firstLine(submitter.Commit.Message))), + commitUrl, submitter.Commit.Author.Email) } func (submitter GitBuildSubmitter) GetCloneUrl() string { @@ -254,10 +267,12 @@ func SubmitBuild(submitter BuildSubmitter) ([]BuildSubmission, error) { submission := struct { Manifest string `json:"manifest"` + Note string `json:"note"` Tags []string `json:"tags"` }{ Manifest: yaml, Tags: []string{submitter.GetRepoName(), name}, + Note: submitter.GetCommitNote(), } bodyBytes, err := json.Marshal(&submission) if err != nil { -- 2.38.4