From 1619317c3b3dcc8d01bdd2bd70fcf504eb661516 Mon Sep 17 00:00:00 2001 From: Frode Aannevik Date: Sun, 20 Oct 2019 02:26:56 +0200 Subject: repo/download: add Last-Modified response header (#5827) * repo/download: Add Last-Modified response header ref: https://github.com/gogs/gogs/issues/5811 * Update download.go Co-authored-by: Unknwon --- routes/repo/download.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/routes/repo/download.go b/routes/repo/download.go index 272669c8..b11baa69 100644 --- a/routes/repo/download.go +++ b/routes/repo/download.go @@ -5,7 +5,9 @@ package repo import ( + "fmt" "io" + "net/http" "path" "github.com/gogs/git-module" @@ -22,6 +24,12 @@ func ServeData(c *context.Context, name string, reader io.Reader) error { buf = buf[:n] } + commit, err := c.Repo.Commit.GetCommitByPath(c.Repo.TreePath) + if err != nil { + return fmt.Errorf("GetCommitByPath: %v", err) + } + c.Resp.Header().Set("Last-Modified", commit.Committer.When.Format(http.TimeFormat)) + if !tool.IsTextFile(buf) { if !tool.IsImageFile(buf) { c.Resp.Header().Set("Content-Disposition", "attachment; filename=\""+name+"\"") @@ -31,7 +39,7 @@ func ServeData(c *context.Context, name string, reader io.Reader) error { c.Resp.Header().Set("Content-Type", "text/plain; charset=utf-8") } c.Resp.Write(buf) - _, err := io.Copy(c.Resp, reader) + _, err = io.Copy(c.Resp, reader) return err } -- cgit v1.2.3