mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	More commit info from API (#19252)
Signed-off-by: jolheiser <john.olheiser@gmail.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		| @@ -14,6 +14,7 @@ import ( | ||||
| 	"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 | ||||
| @@ -146,6 +147,13 @@ func ToCommit(repo *repo_model.Repository, gitRepo *git.Repository, commit *git. | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	diff, err := gitdiff.GetDiff(gitRepo, &gitdiff.DiffOptions{ | ||||
| 		AfterCommitID: commit.ID.String(), | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
|  | ||||
| 	return &api.Commit{ | ||||
| 		CommitMeta: &api.CommitMeta{ | ||||
| 			URL:     repo.APIURL() + "/git/commits/" + url.PathEscape(commit.ID.String()), | ||||
| @@ -175,10 +183,16 @@ func ToCommit(repo *repo_model.Repository, gitRepo *git.Repository, commit *git. | ||||
| 				SHA:     commit.ID.String(), | ||||
| 				Created: commit.Committer.When, | ||||
| 			}, | ||||
| 			Verification: ToVerification(commit), | ||||
| 		}, | ||||
| 		Author:    apiAuthor, | ||||
| 		Committer: apiCommitter, | ||||
| 		Parents:   apiParents, | ||||
| 		Files:     affectedFileList, | ||||
| 		Stats: &api.CommitStats{ | ||||
| 			Total:     diff.TotalAddition + diff.TotalDeletion, | ||||
| 			Additions: diff.TotalAddition, | ||||
| 			Deletions: diff.TotalDeletion, | ||||
| 		}, | ||||
| 	}, nil | ||||
| } | ||||
|   | ||||
| @@ -37,6 +37,14 @@ type RepoCommit struct { | ||||
| 	Committer    *CommitUser                `json:"committer"` | ||||
| 	Message      string                     `json:"message"` | ||||
| 	Tree         *CommitMeta                `json:"tree"` | ||||
| 	Verification *PayloadCommitVerification `json:"verification"` | ||||
| } | ||||
|  | ||||
| // CommitStats is statistics for a RepoCommit | ||||
| type CommitStats struct { | ||||
| 	Total     int `json:"total"` | ||||
| 	Additions int `json:"additions"` | ||||
| 	Deletions int `json:"deletions"` | ||||
| } | ||||
|  | ||||
| // Commit contains information generated from a Git commit. | ||||
| @@ -48,6 +56,7 @@ type Commit struct { | ||||
| 	Committer  *User                  `json:"committer"` | ||||
| 	Parents    []*CommitMeta          `json:"parents"` | ||||
| 	Files      []*CommitAffectedFiles `json:"files"` | ||||
| 	Stats      *CommitStats           `json:"stats"` | ||||
| } | ||||
|  | ||||
| // CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE | ||||
|   | ||||
| @@ -13127,6 +13127,9 @@ | ||||
|           "type": "string", | ||||
|           "x-go-name": "SHA" | ||||
|         }, | ||||
|         "stats": { | ||||
|           "$ref": "#/definitions/CommitStats" | ||||
|         }, | ||||
|         "url": { | ||||
|           "type": "string", | ||||
|           "x-go-name": "URL" | ||||
| @@ -13182,6 +13185,28 @@ | ||||
|       }, | ||||
|       "x-go-package": "code.gitea.io/gitea/modules/structs" | ||||
|     }, | ||||
|     "CommitStats": { | ||||
|       "description": "CommitStats is statistics for a RepoCommit", | ||||
|       "type": "object", | ||||
|       "properties": { | ||||
|         "additions": { | ||||
|           "type": "integer", | ||||
|           "format": "int64", | ||||
|           "x-go-name": "Additions" | ||||
|         }, | ||||
|         "deletions": { | ||||
|           "type": "integer", | ||||
|           "format": "int64", | ||||
|           "x-go-name": "Deletions" | ||||
|         }, | ||||
|         "total": { | ||||
|           "type": "integer", | ||||
|           "format": "int64", | ||||
|           "x-go-name": "Total" | ||||
|         } | ||||
|       }, | ||||
|       "x-go-package": "code.gitea.io/gitea/modules/structs" | ||||
|     }, | ||||
|     "CommitStatus": { | ||||
|       "description": "CommitStatus holds a single status of a single Commit", | ||||
|       "type": "object", | ||||
| @@ -17137,6 +17162,9 @@ | ||||
|         "url": { | ||||
|           "type": "string", | ||||
|           "x-go-name": "URL" | ||||
|         }, | ||||
|         "verification": { | ||||
|           "$ref": "#/definitions/PayloadCommitVerification" | ||||
|         } | ||||
|       }, | ||||
|       "x-go-package": "code.gitea.io/gitea/modules/structs" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user