aboutsummaryrefslogtreecommitdiffstats
path: root/modules/convert/git_commit.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/convert/git_commit.go')
-rw-r--r--modules/convert/git_commit.go202
1 files changed, 0 insertions, 202 deletions
diff --git a/modules/convert/git_commit.go b/modules/convert/git_commit.go
deleted file mode 100644
index 59842e4020..0000000000
--- a/modules/convert/git_commit.go
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright 2020 The Gitea Authors. All rights reserved.
-// SPDX-License-Identifier: MIT
-
-package convert
-
-import (
- "net/url"
- "time"
-
- repo_model "code.gitea.io/gitea/models/repo"
- user_model "code.gitea.io/gitea/models/user"
- "code.gitea.io/gitea/modules/git"
- "code.gitea.io/gitea/modules/log"
- api "code.gitea.io/gitea/modules/structs"
- "code.gitea.io/gitea/modules/util"
- "code.gitea.io/gitea/services/gitdiff"
-)
-
-// ToCommitUser convert a git.Signature to an api.CommitUser
-func ToCommitUser(sig *git.Signature) *api.CommitUser {
- return &api.CommitUser{
- Identity: api.Identity{
- Name: sig.Name,
- Email: sig.Email,
- },
- Date: sig.When.UTC().Format(time.RFC3339),
- }
-}
-
-// ToCommitMeta convert a git.Tag to an api.CommitMeta
-func ToCommitMeta(repo *repo_model.Repository, tag *git.Tag) *api.CommitMeta {
- return &api.CommitMeta{
- SHA: tag.Object.String(),
- URL: util.URLJoin(repo.APIURL(), "git/commits", tag.ID.String()),
- Created: tag.Tagger.When,
- }
-}
-
-// ToPayloadCommit convert a git.Commit to api.PayloadCommit
-func ToPayloadCommit(repo *repo_model.Repository, c *git.Commit) *api.PayloadCommit {
- authorUsername := ""
- if author, err := user_model.GetUserByEmail(c.Author.Email); err == nil {
- authorUsername = author.Name
- } else if !user_model.IsErrUserNotExist(err) {
- log.Error("GetUserByEmail: %v", err)
- }
-
- committerUsername := ""
- if committer, err := user_model.GetUserByEmail(c.Committer.Email); err == nil {
- committerUsername = committer.Name
- } else if !user_model.IsErrUserNotExist(err) {
- log.Error("GetUserByEmail: %v", err)
- }
-
- return &api.PayloadCommit{
- ID: c.ID.String(),
- Message: c.Message(),
- URL: util.URLJoin(repo.HTMLURL(), "commit", c.ID.String()),
- Author: &api.PayloadUser{
- Name: c.Author.Name,
- Email: c.Author.Email,
- UserName: authorUsername,
- },
- Committer: &api.PayloadUser{
- Name: c.Committer.Name,
- Email: c.Committer.Email,
- UserName: committerUsername,
- },
- Timestamp: c.Author.When,
- Verification: ToVerification(c),
- }
-}
-
-// ToCommit convert a git.Commit to api.Commit
-func ToCommit(repo *repo_model.Repository, gitRepo *git.Repository, commit *git.Commit, userCache map[string]*user_model.User, stat bool) (*api.Commit, error) {
- var apiAuthor, apiCommitter *api.User
-
- // Retrieve author and committer information
-
- var cacheAuthor *user_model.User
- var ok bool
- if userCache == nil {
- cacheAuthor = (*user_model.User)(nil)
- ok = false
- } else {
- cacheAuthor, ok = userCache[commit.Author.Email]
- }
-
- if ok {
- apiAuthor = ToUser(cacheAuthor, nil)
- } else {
- author, err := user_model.GetUserByEmail(commit.Author.Email)
- if err != nil && !user_model.IsErrUserNotExist(err) {
- return nil, err
- } else if err == nil {
- apiAuthor = ToUser(author, nil)
- if userCache != nil {
- userCache[commit.Author.Email] = author
- }
- }
- }
-
- var cacheCommitter *user_model.User
- if userCache == nil {
- cacheCommitter = (*user_model.User)(nil)
- ok = false
- } else {
- cacheCommitter, ok = userCache[commit.Committer.Email]
- }
-
- if ok {
- apiCommitter = ToUser(cacheCommitter, nil)
- } else {
- committer, err := user_model.GetUserByEmail(commit.Committer.Email)
- if err != nil && !user_model.IsErrUserNotExist(err) {
- return nil, err
- } else if err == nil {
- apiCommitter = ToUser(committer, nil)
- if userCache != nil {
- userCache[commit.Committer.Email] = committer
- }
- }
- }
-
- // Retrieve parent(s) of the commit
- apiParents := make([]*api.CommitMeta, commit.ParentCount())
- for i := 0; i < commit.ParentCount(); i++ {
- sha, _ := commit.ParentID(i)
- apiParents[i] = &api.CommitMeta{
- URL: repo.APIURL() + "/git/commits/" + url.PathEscape(sha.String()),
- SHA: sha.String(),
- }
- }
-
- res := &api.Commit{
- CommitMeta: &api.CommitMeta{
- URL: repo.APIURL() + "/git/commits/" + url.PathEscape(commit.ID.String()),
- SHA: commit.ID.String(),
- Created: commit.Committer.When,
- },
- HTMLURL: repo.HTMLURL() + "/commit/" + url.PathEscape(commit.ID.String()),
- RepoCommit: &api.RepoCommit{
- URL: repo.APIURL() + "/git/commits/" + url.PathEscape(commit.ID.String()),
- Author: &api.CommitUser{
- Identity: api.Identity{
- Name: commit.Author.Name,
- Email: commit.Author.Email,
- },
- Date: commit.Author.When.Format(time.RFC3339),
- },
- Committer: &api.CommitUser{
- Identity: api.Identity{
- Name: commit.Committer.Name,
- Email: commit.Committer.Email,
- },
- Date: commit.Committer.When.Format(time.RFC3339),
- },
- Message: commit.Message(),
- Tree: &api.CommitMeta{
- URL: repo.APIURL() + "/git/trees/" + url.PathEscape(commit.ID.String()),
- SHA: commit.ID.String(),
- Created: commit.Committer.When,
- },
- Verification: ToVerification(commit),
- },
- Author: apiAuthor,
- Committer: apiCommitter,
- Parents: apiParents,
- }
-
- // Retrieve files affected by the commit
- if stat {
- fileStatus, err := git.GetCommitFileStatus(gitRepo.Ctx, repo.RepoPath(), commit.ID.String())
- if err != nil {
- return nil, err
- }
- affectedFileList := make([]*api.CommitAffectedFiles, 0, len(fileStatus.Added)+len(fileStatus.Removed)+len(fileStatus.Modified))
- for _, files := range [][]string{fileStatus.Added, fileStatus.Removed, fileStatus.Modified} {
- for _, filename := range files {
- affectedFileList = append(affectedFileList, &api.CommitAffectedFiles{
- Filename: filename,
- })
- }
- }
-
- diff, err := gitdiff.GetDiff(gitRepo, &gitdiff.DiffOptions{
- AfterCommitID: commit.ID.String(),
- })
- if err != nil {
- return nil, err
- }
-
- res.Files = affectedFileList
- res.Stats = &api.CommitStats{
- Total: diff.TotalAddition + diff.TotalDeletion,
- Additions: diff.TotalAddition,
- Deletions: diff.TotalDeletion,
- }
- }
-
- return res, nil
-}