(msg string, opts *CommitOptions, tree plumbing.Hash)
| 141 | } |
| 142 | |
| 143 | func (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 | |
| 172 | func (w *Worktree) sanitize(signature object.Signature) object.Signature { |
| 173 | return object.Signature{ |
no test coverage detected