shithub: furgit

Download patch

ref: 1b17776bcb3ffa1c270ceb3dcfc6f0ee815d9426
parent: af07cfa67b867607912376fbcda842fe7373ebf3
author: Runxi Yu <me@runxiyu.org>
date: Fri Feb 20 21:06:15 EST 2026

refstore: Add basic reference store interfaces

--- /dev/null
+++ b/refstore/refstore.go
@@ -1,0 +1,19 @@
+package refstore
+
+import (
+	"errors"
+
+	"codeberg.org/lindenii/furgit/ref"
+)
+
+// ErrReferenceNotFound indicates that a reference does not exist in a backend.
+// TODO: interface error? just like object not found in objectstore
+var ErrReferenceNotFound = errors.New("refstore: reference not found")
+
+// Store reads Git references.
+type Store interface {
+	Resolve(name string) (ref.Ref, error)
+	ResolveFully(name string) (ref.Detached, error)
+	List(pattern string) ([]ref.Ref, error)
+	Close() error
+}
--