MCPcopy
hub / github.com/go-git/go-git / buildCommitObject

Method buildCommitObject

worktree_commit.go:143–170  ·  view source on GitHub ↗
(msg string, opts *CommitOptions, tree plumbing.Hash)

Source from the content-addressed store, hash-verified

141}
142
143func (w *Worktree) buildCommitObject(msg string, opts *CommitOptions, tree plumbing.Hash) (plumbing.Hash, error) {
144 commit := &object.Commit{
145 Author: w.sanitize(*opts.Author),
146 Committer: w.sanitize(*opts.Committer),
147 Message: msg,
148 TreeHash: tree,
149 ParentHashes: opts.Parents,
150 }
151
152 // Convert SignKey into a Signer if set. Existing Signer should take priority.
153 signer := opts.Signer
154 if signer == nil && opts.SignKey != nil {
155 signer = &gpgSigner{key: opts.SignKey}
156 }
157 if signer != nil {
158 sig, err := signObject(signer, commit)
159 if err != nil {
160 return plumbing.ZeroHash, err
161 }
162 commit.PGPSignature = string(sig)
163 }
164
165 obj := w.r.Storer.NewEncodedObject()
166 if err := commit.Encode(obj); err != nil {
167 return plumbing.ZeroHash, err
168 }
169 return w.r.Storer.SetEncodedObject(obj)
170}
171
172func (w *Worktree) sanitize(signature object.Signature) object.Signature {
173 return object.Signature{

Callers 1

CommitMethod · 0.95

Calls 5

sanitizeMethod · 0.95
EncodeMethod · 0.95
signObjectFunction · 0.85
NewEncodedObjectMethod · 0.65
SetEncodedObjectMethod · 0.65

Tested by

no test coverage detected