Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Fix tests
  • Loading branch information
lunny committed Jun 22, 2021
commit fd779aaed4e1e070ad6af9002704ac9f368d95e4
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
aacbdfe9e1c4b47f60abe81849045fa4e96f1d75
10 changes: 8 additions & 2 deletions services/archiver/archiver.go
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,13 @@ func NewRequest(repoID int64, repo *git.Repository, uri string) (*ArchiveRequest
return nil, err
}
} else if shaRegex.MatchString(r.refName) {
r.CommitID = r.refName
if repo.IsCommitExist(r.refName) {
r.CommitID = r.refName
} else {
return nil, git.ErrNotExist{
ID: r.refName,
}
}
} else {
return nil, fmt.Errorf("Unknow ref %s type", r.refName)
}
Expand All @@ -84,7 +90,7 @@ func NewRequest(repoID int64, repo *git.Repository, uri string) (*ArchiveRequest
// GetArchiveName returns the name of the caller, based on the ref used by the
// caller to create this request.
func (aReq *ArchiveRequest) GetArchiveName() string {
return aReq.refName + "." + aReq.Type.String()
return strings.Replace(aReq.refName, "/", "-", -1) + "." + aReq.Type.String()
}

func doArchive(r *ArchiveRequest) (*models.RepoArchiver, error) {
Expand Down
29 changes: 18 additions & 11 deletions services/archiver/archiver_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -29,34 +29,41 @@ func TestArchive_Basic(t *testing.T) {
ctx := test.MockContext(t, "user27/repo49")
firstCommit, secondCommit := "51f84af23134", "aacbdfe9e1c4"

bogusReq, err := NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, firstCommit+".zip")
assert.NoError(t, err)
assert.Nil(t, bogusReq)

test.LoadRepo(t, ctx, 49)
bogusReq, err = NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, firstCommit+".zip")
assert.NoError(t, err)
assert.Nil(t, bogusReq)

test.LoadGitRepo(t, ctx)
defer ctx.Repo.GitRepo.Close()

bogusReq, err := NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, firstCommit+".zip")
assert.NoError(t, err)
assert.NotNil(t, bogusReq)
assert.EqualValues(t, firstCommit+".zip", bogusReq.GetArchiveName())

// Check a series of bogus requests.
// Step 1, valid commit with a bad extension.
bogusReq, err = NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, firstCommit+".dilbert")
assert.NoError(t, err)
assert.Error(t, err)
assert.Nil(t, bogusReq)

// Step 2, missing commit.
bogusReq, err = NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, "dbffff.zip")
assert.NoError(t, err)
assert.Error(t, err)
assert.Nil(t, bogusReq)

// Step 3, doesn't look like branch/tag/commit.
bogusReq, err = NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, "db.zip")
assert.NoError(t, err)
assert.Error(t, err)
assert.Nil(t, bogusReq)

bogusReq, err = NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, "master.zip")
assert.NoError(t, err)
assert.NotNil(t, bogusReq)
assert.EqualValues(t, "master.zip", bogusReq.GetArchiveName())

bogusReq, err = NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, "test/archive.zip")
assert.NoError(t, err)
assert.NotNil(t, bogusReq)
assert.EqualValues(t, "test-archive.zip", bogusReq.GetArchiveName())

// Now two valid requests, firstCommit with valid extensions.
zipReq, err := NewRequest(ctx.Repo.Repository.ID, ctx.Repo.GitRepo, firstCommit+".zip")
assert.NoError(t, err)
Expand Down