diff options
Diffstat (limited to 'modules/git/object_id_gogit.go')
-rw-r--r-- | modules/git/object_id_gogit.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/modules/git/object_id_gogit.go b/modules/git/object_id_gogit.go new file mode 100644 index 00000000..db4c4ae0 --- /dev/null +++ b/modules/git/object_id_gogit.go @@ -0,0 +1,30 @@ +// Copyright 2023 The Gitea Authors. All rights reserved. +// SPDX-License-Identifier: MIT +//go:build gogit + +package git + +import ( + "github.com/go-git/go-git/v5/plumbing" + "github.com/go-git/go-git/v5/plumbing/hash" +) + +func ParseGogitHash(h plumbing.Hash) ObjectID { + switch hash.Size { + case 20: + return Sha1ObjectFormat.MustID(h[:]) + case 32: + return Sha256ObjectFormat.MustID(h[:]) + } + + return nil +} + +func ParseGogitHashArray(objectIDs []plumbing.Hash) []ObjectID { + ret := make([]ObjectID, len(objectIDs)) + for i, h := range objectIDs { + ret[i] = ParseGogitHash(h) + } + + return ret +} |