From be86d67e810743d711b48066a71ee57ce953d65f Mon Sep 17 00:00:00 2001 From: Zhukov Roman Date: Tue, 29 Sep 2020 18:12:17 +0300 Subject: Add git diff timeout in app config (#6348) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: ᴜɴᴋɴᴡᴏɴ --- internal/route/repo/commit.go | 4 +++- internal/route/repo/pull.go | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) (limited to 'internal/route') diff --git a/internal/route/repo/commit.go b/internal/route/repo/commit.go index 00be5b1a..a8a344bd 100644 --- a/internal/route/repo/commit.go +++ b/internal/route/repo/commit.go @@ -6,6 +6,7 @@ package repo import ( "path" + "time" "github.com/gogs/git-module" @@ -125,6 +126,7 @@ func Diff(c *context.Context) { diff, err := gitutil.RepoDiff(c.Repo.GitRepo, commitID, conf.Git.MaxDiffFiles, conf.Git.MaxDiffLines, conf.Git.MaxDiffLineChars, + git.DiffOptions{Timeout: time.Duration(conf.Git.Timeout.Diff) * time.Second}, ) if err != nil { c.NotFoundOrError(gitutil.NewError(err), "get diff") @@ -193,7 +195,7 @@ func CompareDiff(c *context.Context) { diff, err := gitutil.RepoDiff(c.Repo.GitRepo, afterCommitID, conf.Git.MaxDiffFiles, conf.Git.MaxDiffLines, conf.Git.MaxDiffLineChars, - git.DiffOptions{Base: beforeCommitID}, + git.DiffOptions{Base: beforeCommitID, Timeout: time.Duration(conf.Git.Timeout.Diff) * time.Second}, ) if err != nil { c.NotFoundOrError(gitutil.NewError(err), "get diff") diff --git a/internal/route/repo/pull.go b/internal/route/repo/pull.go index 05837ca1..88c452ab 100644 --- a/internal/route/repo/pull.go +++ b/internal/route/repo/pull.go @@ -8,6 +8,7 @@ import ( "net/http" "path" "strings" + "time" "github.com/unknwon/com" log "unknwon.dev/clog/v2" @@ -354,7 +355,7 @@ func ViewPullFiles(c *context.Context) { diff, err := gitutil.RepoDiff(diffGitRepo, endCommitID, conf.Git.MaxDiffFiles, conf.Git.MaxDiffLines, conf.Git.MaxDiffLineChars, - git.DiffOptions{Base: startCommitID}, + git.DiffOptions{Base: startCommitID, Timeout: time.Duration(conf.Git.Timeout.Diff) * time.Second}, ) if err != nil { c.Error(err, "get diff") @@ -575,7 +576,7 @@ func PrepareCompareDiff( diff, err := gitutil.RepoDiff(headGitRepo, headCommitID, conf.Git.MaxDiffFiles, conf.Git.MaxDiffLines, conf.Git.MaxDiffLineChars, - git.DiffOptions{Base: meta.MergeBase}, + git.DiffOptions{Base: meta.MergeBase, Timeout: time.Duration(conf.Git.Timeout.Diff) * time.Second}, ) if err != nil { c.Error(err, "get repository diff") -- cgit v1.2.3