~edwargix/git.sr.ht

b2bae9b5abc7367adec24d1ee4b8b7828e975ea8 — Drew DeVault 5 years ago cceeb7f
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.
1 files changed, 19 insertions(+), 4 deletions(-)

M gitsrht-update-hook/submitter.go
M gitsrht-update-hook/submitter.go => gitsrht-update-hook/submitter.go +19 -4
@@ 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) &mdash; [%s](mailto:%s)\n\n<pre>%s</pre>`,
		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 {