aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/object_id.go
diff options
context:
space:
mode:
authorAdam Majer <amajer@suse.de>2024-01-19 16:05:02 +0000
committerGitHub <noreply@github.com>2024-01-19 17:05:02 +0100
commitd68a613ba8fd860863a3465b5b5945b191b87b25 (patch)
tree396500b05a2454e638174ba274f975958ea94be9 /modules/git/object_id.go
parent07ba4d9f87cf21b7ce87158ae5651cae3bb35604 (diff)
downloadgitea-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.go16
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 {