code.gitea.io/gitea@v1.22.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) *CommitSignature { 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 c.Encoding != "" && c.Encoding != "UTF-8" { 51 if _, err = fmt.Fprintf(&w, "\nencoding %s\n", c.Encoding); err != nil { 52 return nil 53 } 54 } 55 56 if _, err = fmt.Fprintf(&w, "\n\n%s", c.Message); err != nil { 57 return nil 58 } 59 60 return &CommitSignature{ 61 Signature: c.PGPSignature, 62 Payload: w.String(), 63 } 64 } 65 66 func convertCommit(c *object.Commit) *Commit { 67 return &Commit{ 68 ID: ParseGogitHash(c.Hash), 69 CommitMessage: c.Message, 70 Committer: &c.Committer, 71 Author: &c.Author, 72 Signature: convertPGPSignature(c), 73 Parents: ParseGogitHashArray(c.ParentHashes), 74 } 75 }