Explorar o código

repo: able fill pull request title by template from md file (#5901)

* able fill pull request title by template from md file

* fix: unusedresult: result of fmt.Sprintf call not used (from govet)

* fix: remove import fmt -> not used

* after review / PullRequestTitleTemplateCandidates moved to after line 39

* Update pull.go

* Update pull.go

Co-authored-by: ᴜɴᴋɴᴡᴏɴ <u@gogs.io>
ivan %!s(int64=5) %!d(string=hai) anos
pai
achega
a0342d9527
Modificáronse 1 ficheiros con 15 adicións e 0 borrados
  1. 15 0
      internal/route/repo/pull.go

+ 15 - 0
internal/route/repo/pull.go

@@ -29,6 +29,7 @@ const (
 	PULL_FILES   = "repo/pulls/files"
 
 	PULL_REQUEST_TEMPLATE_KEY = "PullRequestTemplate"
+	PULL_REQUEST_TITLE_TEMPLATE_KEY = "PullRequestTitleTemplate"
 )
 
 var (
@@ -37,6 +38,12 @@ var (
 		".gogs/PULL_REQUEST.md",
 		".github/PULL_REQUEST.md",
 	}
+
+	PullRequestTitleTemplateCandidates = []string{
+		"PULL_REQUEST_TITLE.md",
+		".gogs/PULL_REQUEST_TITLE.md",
+		".github/PULL_REQUEST_TITLE.md",
+	}
 )
 
 func parseBaseRepository(c *context.Context) *db.Repository {
@@ -637,6 +644,14 @@ func CompareAndPullRequest(c *context.Context) {
 	}
 
 	c.Data["IsSplitStyle"] = c.Query("style") == "split"
+	setTemplateIfExists(c, PULL_REQUEST_TITLE_TEMPLATE_KEY, PullRequestTitleTemplateCandidates)
+
+	if c.Data[PULL_REQUEST_TITLE_TEMPLATE_KEY] != nil {
+		customTitle := c.Data[PULL_REQUEST_TITLE_TEMPLATE_KEY].(string)
+		r := strings.NewReplacer("{{headBranch}}", headBranch,"{{baseBranch}}", baseBranch)
+		c.Data["title"] = r.Replace(customTitle)
+	}
+
 	c.Success(COMPARE_PULL)
 }