From bbdc7a825d1c7e65516cbc92e72335bf1f35c2f0 Mon Sep 17 00:00:00 2001 From: Frank Benkstein Date: Mon, 9 Jun 2014 23:19:17 +0200 Subject: add support for annotated tags --- tag.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 tag.go (limited to 'tag.go') diff --git a/tag.go b/tag.go new file mode 100644 index 0000000..89ac8bd --- /dev/null +++ b/tag.go @@ -0,0 +1,44 @@ +package git + +/* +#include +*/ +import "C" + +// Tag +type Tag struct { + gitObject + cast_ptr *C.git_tag +} + +func (t Tag) Message() string { + return C.GoString(C.git_tag_message(t.cast_ptr)) +} + +func (t Tag) Name() string { + return C.GoString(C.git_tag_name(t.cast_ptr)) +} + +func (t Tag) Tagger() *Signature { + cast_ptr := C.git_tag_tagger(t.cast_ptr) + return newSignatureFromC(cast_ptr) +} + +func (t Tag) Target() Object { + var ptr *C.git_object + ret := C.git_tag_target(&ptr, t.cast_ptr) + + if ret != 0 { + return nil + } + + return allocObject(ptr, t.repo) +} + +func (t Tag) TargetId() *Oid { + return newOidFromC(C.git_tag_target_id(t.cast_ptr)) +} + +func (t Tag) TargetType() ObjectType { + return ObjectType(C.git_tag_target_type(t.cast_ptr)) +} -- cgit v1.2.3