code.gitea.io/gitea@v1.22.3/services/repository/files/commit.go (about) 1 // Copyright 2019 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package files 5 6 import ( 7 "context" 8 9 asymkey_model "code.gitea.io/gitea/models/asymkey" 10 repo_model "code.gitea.io/gitea/models/repo" 11 "code.gitea.io/gitea/modules/git" 12 "code.gitea.io/gitea/modules/structs" 13 ) 14 15 // CountDivergingCommits determines how many commits a branch is ahead or behind the repository's base branch 16 func CountDivergingCommits(ctx context.Context, repo *repo_model.Repository, branch string) (*git.DivergeObject, error) { 17 divergence, err := git.GetDivergingCommits(ctx, repo.RepoPath(), repo.DefaultBranch, branch) 18 if err != nil { 19 return nil, err 20 } 21 return &divergence, nil 22 } 23 24 // GetPayloadCommitVerification returns the verification information of a commit 25 func GetPayloadCommitVerification(ctx context.Context, commit *git.Commit) *structs.PayloadCommitVerification { 26 verification := &structs.PayloadCommitVerification{} 27 commitVerification := asymkey_model.ParseCommitWithSignature(ctx, commit) 28 if commit.Signature != nil { 29 verification.Signature = commit.Signature.Signature 30 verification.Payload = commit.Signature.Payload 31 } 32 if commitVerification.SigningUser != nil { 33 verification.Signer = &structs.PayloadUser{ 34 Name: commitVerification.SigningUser.Name, 35 Email: commitVerification.SigningUser.Email, 36 } 37 } 38 verification.Verified = commitVerification.Verified 39 verification.Reason = commitVerification.Reason 40 if verification.Reason == "" && !verification.Verified { 41 verification.Reason = "gpg.error.not_signed_commit" 42 } 43 return verification 44 }