func (c *TagsCollection) Create( name string, commit *Commit, tagger *Signature, message string) (*Oid, error) { oid := new(Oid) cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) cmessage := C.CString(message) defer C.free(unsafe.Pointer(cmessage)) taggerSig, err := tagger.toC() if err != nil { return nil, err } defer C.git_signature_free(taggerSig) ctarget := commit.ptr runtime.LockOSThread() defer runtime.UnlockOSThread() ret := C.git_tag_create(oid.toC(), c.repo.ptr, cname, ctarget, taggerSig, cmessage, 0) if ret < 0 { return nil, MakeGitError(ret) } return oid, nil }
func (repo *Repository) CreateTag(name string, target *Object, tagger *Signature, message string, force bool) (*Oid, error) { oid := new(Oid) cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) cmessage := C.CString(message) defer C.free(unsafe.Pointer(cmessage)) cforce := C.int(c_FALSE) if force { cforce = C.int(c_TRUE) } ecode := C.git_tag_create(oid.git_oid, repo.git_repository, cname, target.git_object, tagger.git_signature, cmessage, cforce) if ecode != git_SUCCESS { return nil, gitError() } return oid, nil }
func (v *Repository) CreateTag( name string, commit *Commit, tagger *Signature, message string) (*Oid, error) { oid := new(Oid) cname := C.CString(name) defer C.free(unsafe.Pointer(cname)) cmessage := C.CString(message) defer C.free(unsafe.Pointer(cmessage)) taggerSig := tagger.toC() defer C.git_signature_free(taggerSig) ctarget := commit.gitObject.ptr ret := C.git_tag_create(oid.toC(), v.ptr, cname, ctarget, taggerSig, cmessage, 0) if ret < 0 { return nil, MakeGitError(ret) } return oid, nil }