diff options
author | Adam Majer <amajer@suse.de> | 2023-12-13 21:02:00 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-13 21:02:00 +0000 |
commit | cbf923e87bca0f50c2c01a60ccf544b63c365e98 (patch) | |
tree | 9e2e66c688bdc0f740e1ae333847dfb33677c730 /services/repository/archiver | |
parent | 064f05204c0539d1f92895776dee7f626a628e3b (diff) | |
download | gitea-cbf923e87bca0f50c2c01a60ccf544b63c365e98.tar.gz gitea-cbf923e87bca0f50c2c01a60ccf544b63c365e98.zip |
Abstract hash function usage (#28138)
Refactor Hash interfaces and centralize hash function. This will allow
easier introduction of different hash function later on.
This forms the "no-op" part of the SHA256 enablement patch.
Diffstat (limited to 'services/repository/archiver')
-rw-r--r-- | services/repository/archiver/archiver.go | 28 |
1 files changed, 3 insertions, 25 deletions
diff --git a/services/repository/archiver/archiver.go b/services/repository/archiver/archiver.go index 9f1ea48dca..f700e3af5d 100644 --- a/services/repository/archiver/archiver.go +++ b/services/repository/archiver/archiver.go @@ -9,7 +9,6 @@ import ( "fmt" "io" "os" - "regexp" "strings" "time" @@ -36,10 +35,6 @@ type ArchiveRequest struct { CommitID string } -// SHA1 hashes will only go up to 40 characters, but SHA256 hashes will go all -// the way to 64. -var shaRegex = regexp.MustCompile(`^[0-9a-f]{4,64}$`) - // ErrUnknownArchiveFormat request archive format is not supported type ErrUnknownArchiveFormat struct { RequestFormat string @@ -96,30 +91,13 @@ func NewRequest(repoID int64, repo *git.Repository, uri string) (*ArchiveRequest r.refName = strings.TrimSuffix(uri, ext) - var err error // Get corresponding commit. - if repo.IsBranchExist(r.refName) { - r.CommitID, err = repo.GetBranchCommitID(r.refName) - if err != nil { - return nil, err - } - } else if repo.IsTagExist(r.refName) { - r.CommitID, err = repo.GetTagCommitID(r.refName) - if err != nil { - return nil, err - } - } else if shaRegex.MatchString(r.refName) { - if repo.IsCommitExist(r.refName) { - r.CommitID = r.refName - } else { - return nil, git.ErrNotExist{ - ID: r.refName, - } - } - } else { + commitID, err := repo.ConvertToGitID(r.refName) + if err != nil { return nil, RepoRefNotFoundError{RefName: r.refName} } + r.CommitID = commitID.String() return r, nil } |