summaryrefslogtreecommitdiffstats
path: root/modules/git/object_id_gogit.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/object_id_gogit.go')
-rw-r--r--modules/git/object_id_gogit.go30
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
+}