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  }