MCPcopy Create free account
hub / github.com/libgit2/git2go / MessageTrailers

Function MessageTrailers

message.go:21–42  ·  view source on GitHub ↗

MessageTrailers parses trailers out of a message, returning a slice of Trailer structs. Trailers are key/value pairs in the last paragraph of a message, not including any patches or conflicts that may be present.

(message string)

Source from the content-addressed store, hash-verified

19// Trailer structs. Trailers are key/value pairs in the last paragraph of a
20// message, not including any patches or conflicts that may be present.
21func MessageTrailers(message string) ([]Trailer, error) {
22 var trailersC C.git_message_trailer_array
23
24 messageC := C.CString(message)
25 defer C.free(unsafe.Pointer(messageC))
26
27 runtime.LockOSThread()
28 defer runtime.UnlockOSThread()
29
30 ecode := C.git_message_trailers(&trailersC, messageC)
31 if ecode < 0 {
32 return nil, MakeGitError(ecode)
33 }
34 defer C.git_message_trailer_array_free(&trailersC)
35 trailers := make([]Trailer, trailersC.count)
36 var trailer *C.git_message_trailer
37 for i, p := 0, uintptr(unsafe.Pointer(trailersC.trailers)); i < int(trailersC.count); i, p = i+1, p+unsafe.Sizeof(C.git_message_trailer{}) {
38 trailer = (*C.git_message_trailer)(unsafe.Pointer(p))
39 trailers[i] = Trailer{Key: C.GoString(trailer.key), Value: C.GoString(trailer.value)}
40 }
41 return trailers, nil
42}

Callers 1

TestTrailersFunction · 0.85

Calls 2

MakeGitErrorFunction · 0.85
freeMethod · 0.80

Tested by 1

TestTrailersFunction · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…