diff options
author | Adam Majer <amajer@suse.de> | 2024-01-19 16:05:02 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-19 17:05:02 +0100 |
commit | d68a613ba8fd860863a3465b5b5945b191b87b25 (patch) | |
tree | 396500b05a2454e638174ba274f975958ea94be9 /modules/git/object_id.go | |
parent | 07ba4d9f87cf21b7ce87158ae5651cae3bb35604 (diff) | |
download | gitea-d68a613ba8fd860863a3465b5b5945b191b87b25.tar.gz gitea-d68a613ba8fd860863a3465b5b5945b191b87b25.zip |
Add support for sha256 repositories (#23894)
Currently only SHA1 repositories are supported by Gitea. This adds
support for alternate SHA256 with the additional aim of easier support
for additional hash types in the future.
Fixes: #13794
Limited by: https://github.com/go-git/go-git/issues/899
Depend on: #28138
<img width="776" alt="图片" src="https://github.com/go-gitea/gitea/assets/81045/5448c9a7-608e-4341-a149-5dd0069c9447">
---------
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: 6543 <6543@obermui.de>
Diffstat (limited to 'modules/git/object_id.go')
-rw-r--r-- | modules/git/object_id.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/modules/git/object_id.go b/modules/git/object_id.go index 01c23ed3da..4f8c39ee1d 100644 --- a/modules/git/object_id.go +++ b/modules/git/object_id.go @@ -16,6 +16,7 @@ type ObjectID interface { Type() ObjectFormat } +/* SHA1 */ type Sha1Hash [20]byte func (h *Sha1Hash) String() string { @@ -39,6 +40,21 @@ func MustIDFromString(hexHash string) ObjectID { return id } +/* SHA256 */ +type Sha256Hash [32]byte + +func (h *Sha256Hash) String() string { + return hex.EncodeToString(h[:]) +} + +func (h *Sha256Hash) IsZero() bool { + empty := Sha256Hash{} + return bytes.Equal(empty[:], h[:]) +} +func (h *Sha256Hash) RawValue() []byte { return h[:] } +func (*Sha256Hash) Type() ObjectFormat { return Sha256ObjectFormat } + +/* utility */ func NewIDFromString(hexHash string) (ObjectID, error) { var theObjectFormat ObjectFormat for _, objectFormat := range SupportedObjectFormats { |