Skip to content

Commit

Permalink
Set context for running CreateArchive in to that of the request (#12555)
Browse files Browse the repository at this point in the history
Set the context for CreateArchive to that of the request to ensure that archives
are only built for as long as a request is requesting them

Fix #11551

Signed-off-by: Andrew Thornton <art27@cantab.net>

Co-authored-by: Lauris BH <lauris@nix.lv>
  • Loading branch information
zeripath and lafriks authored Aug 28, 2020
1 parent d3b5eda commit eb1bf23
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
5 changes: 3 additions & 2 deletions modules/git/commit_archive.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
package git

import (
"context"
"fmt"
"path/filepath"
"strings"
Expand Down Expand Up @@ -39,7 +40,7 @@ type CreateArchiveOpts struct {
}

// CreateArchive create archive content to the target path
func (c *Commit) CreateArchive(target string, opts CreateArchiveOpts) error {
func (c *Commit) CreateArchive(ctx context.Context, target string, opts CreateArchiveOpts) error {
if opts.Format.String() == "unknown" {
return fmt.Errorf("unknown format: %v", opts.Format)
}
Expand All @@ -58,6 +59,6 @@ func (c *Commit) CreateArchive(target string, opts CreateArchiveOpts) error {
c.ID.String(),
)

_, err := NewCommand(args...).RunInDir(c.repo.Path)
_, err := NewCommandContext(ctx, args...).RunInDir(c.repo.Path)
return err
}
2 changes: 1 addition & 1 deletion routers/repo/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,7 @@ func Download(ctx *context.Context) {

archivePath = path.Join(archivePath, base.ShortSha(commit.ID.String())+ext)
if !com.IsFile(archivePath) {
if err := commit.CreateArchive(archivePath, git.CreateArchiveOpts{
if err := commit.CreateArchive(ctx.Req.Context(), archivePath, git.CreateArchiveOpts{
Format: archiveType,
Prefix: setting.Repository.PrefixArchiveFiles,
}); err != nil {
Expand Down

0 comments on commit eb1bf23

Please sign in to comment.