code.gitea.io/gitea@v1.19.3/modules/git/commit_convert_gogit.go (about) 1 // Copyright 2015 The Gogs Authors. All rights reserved. 2 // Copyright 2018 The Gitea Authors. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 5 //go:build gogit 6 7 package git 8 9 import ( 10 "fmt" 11 "strings" 12 13 "github.com/go-git/go-git/v5/plumbing/object" 14 ) 15 16 func convertPGPSignature(c *object.Commit) *CommitGPGSignature { 17 if c.PGPSignature == "" { 18 return nil 19 } 20 21 var w strings.Builder 22 var err error 23 24 if _, err = fmt.Fprintf(&w, "tree %s\n", c.TreeHash.String()); err != nil { 25 return nil 26 } 27 28 for _, parent := range c.ParentHashes { 29 if _, err = fmt.Fprintf(&w, "parent %s\n", parent.String()); err != nil { 30 return nil 31 } 32 } 33 34 if _, err = fmt.Fprint(&w, "author "); err != nil { 35 return nil 36 } 37 38 if err = c.Author.Encode(&w); err != nil { 39 return nil 40 } 41 42 if _, err = fmt.Fprint(&w, "\ncommitter "); err != nil { 43 return nil 44 } 45 46 if err = c.Committer.Encode(&w); err != nil { 47 return nil 48 } 49 50 if _, err = fmt.Fprintf(&w, "\n\n%s", c.Message); err != nil { 51 return nil 52 } 53 54 return &CommitGPGSignature{ 55 Signature: c.PGPSignature, 56 Payload: w.String(), 57 } 58 } 59 60 func convertCommit(c *object.Commit) *Commit { 61 return &Commit{ 62 ID: c.Hash, 63 CommitMessage: c.Message, 64 Committer: &c.Committer, 65 Author: &c.Author, 66 Signature: convertPGPSignature(c), 67 Parents: c.ParentHashes, 68 } 69 }