From 271db6ff226f0747ce45e16e296b41ec972dc892 Mon Sep 17 00:00:00 2001 From: Caesar Schinas Date: Fri, 25 Aug 2023 21:49:17 +0100 Subject: [PATCH] [FEAT] support `.forgejo` dir for issue and PR templates --- routers/web/repo/issue.go | 6 ++++++ routers/web/repo/pull.go | 6 ++++++ routers/web/repo/view.go | 4 ++++ services/issue/template.go | 4 ++++ services/pull/merge.go | 10 ++++++++-- 5 files changed, 28 insertions(+), 2 deletions(-) diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 9da62bb00b..9441034b91 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -77,6 +77,12 @@ var IssueTemplateCandidates = []string{ "issue_template.md", "issue_template.yaml", "issue_template.yml", + ".forgejo/ISSUE_TEMPLATE.md", + ".forgejo/ISSUE_TEMPLATE.yaml", + ".forgejo/ISSUE_TEMPLATE.yml", + ".forgejo/issue_template.md", + ".forgejo/issue_template.yaml", + ".forgejo/issue_template.yml", ".gitea/ISSUE_TEMPLATE.md", ".gitea/ISSUE_TEMPLATE.yaml", ".gitea/ISSUE_TEMPLATE.yml", diff --git a/routers/web/repo/pull.go b/routers/web/repo/pull.go index 2544b29398..0ed4fdce9d 100644 --- a/routers/web/repo/pull.go +++ b/routers/web/repo/pull.go @@ -65,6 +65,12 @@ var pullRequestTemplateCandidates = []string{ "pull_request_template.md", "pull_request_template.yaml", "pull_request_template.yml", + ".forgejo/PULL_REQUEST_TEMPLATE.md", + ".forgejo/PULL_REQUEST_TEMPLATE.yaml", + ".forgejo/PULL_REQUEST_TEMPLATE.yml", + ".forgejo/pull_request_template.md", + ".forgejo/pull_request_template.yaml", + ".forgejo/pull_request_template.yml", ".gitea/PULL_REQUEST_TEMPLATE.md", ".gitea/PULL_REQUEST_TEMPLATE.yaml", ".gitea/PULL_REQUEST_TEMPLATE.yml", diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 1dda3a05bc..9dc708bca4 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -94,6 +94,10 @@ func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry, try if entry.Name() == "docs" || docsEntries[0] == nil { docsEntries[0] = entry } + case ".forgejo": + if entry.Name() == ".forgejo" || docsEntries[1] == nil { + docsEntries[1] = entry + } case ".gitea": if entry.Name() == ".gitea" || docsEntries[1] == nil { docsEntries[1] = entry diff --git a/services/issue/template.go b/services/issue/template.go index b6ae077987..47633e5d85 100644 --- a/services/issue/template.go +++ b/services/issue/template.go @@ -23,6 +23,8 @@ import ( var templateDirCandidates = []string{ "ISSUE_TEMPLATE", "issue_template", + ".forgejo/ISSUE_TEMPLATE", + ".forgejo/issue_template", ".gitea/ISSUE_TEMPLATE", ".gitea/issue_template", ".github/ISSUE_TEMPLATE", @@ -32,6 +34,8 @@ var templateDirCandidates = []string{ } var templateConfigCandidates = []string{ + ".forgejo/ISSUE_TEMPLATE/config", + ".forgejo/issue_template/config", ".gitea/ISSUE_TEMPLATE/config", ".gitea/issue_template/config", ".github/ISSUE_TEMPLATE/config", diff --git a/services/pull/merge.go b/services/pull/merge.go index 91b110351a..718e964014 100644 --- a/services/pull/merge.go +++ b/services/pull/merge.go @@ -55,12 +55,18 @@ func getMergeMessage(ctx context.Context, baseGitRepo *git.Repository, pr *issue } if mergeStyle != "" { - templateFilepath := fmt.Sprintf(".gitea/default_merge_message/%s_TEMPLATE.md", strings.ToUpper(string(mergeStyle))) commit, err := baseGitRepo.GetBranchCommit(pr.BaseRepo.DefaultBranch) if err != nil { return "", "", err } - templateContent, err := commit.GetFileContent(templateFilepath, setting.Repository.PullRequest.DefaultMergeMessageSize) + + templateFilepathForgejo := fmt.Sprintf(".forgejo/default_merge_message/%s_TEMPLATE.md", strings.ToUpper(string(mergeStyle))) + templateFilepathGitea := fmt.Sprintf(".gitea/default_merge_message/%s_TEMPLATE.md", strings.ToUpper(string(mergeStyle))) + + templateContent, err := commit.GetFileContent(templateFilepathForgejo, setting.Repository.PullRequest.DefaultMergeMessageSize) + if _, ok := err.(git.ErrNotExist); ok { + templateContent, err = commit.GetFileContent(templateFilepathGitea, setting.Repository.PullRequest.DefaultMergeMessageSize) + } if err != nil { if !git.IsErrNotExist(err) { return "", "", err