summaryrefslogtreecommitdiff
path: root/object.go
diff options
context:
space:
mode:
Diffstat (limited to 'object.go')
-rw-r--r--object.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/object.go b/object.go
index 101d15e..9241ae2 100644
--- a/object.go
+++ b/object.go
@@ -22,6 +22,7 @@ type Object interface {
Free()
Id() *Oid
Type() ObjectType
+ Owner() *Repository
}
type gitObject struct {
@@ -55,6 +56,14 @@ func (o gitObject) Type() ObjectType {
return ObjectType(C.git_object_type(o.ptr))
}
+// Owner returns a weak reference to the repository which owns this
+// object
+func (o gitObject) Owner() *Repository {
+ return &Repository{
+ ptr: C.git_object_owner(o.ptr),
+ }
+}
+
func (o *gitObject) Free() {
runtime.SetFinalizer(o, nil)
C.git_object_free(o.ptr)