perf: add the Sha of json response for commits and compare API

This commit is contained in:
sulenn 2020-11-01 21:24:21 +08:00
parent 5c94750c07
commit 56d390d20b
2 changed files with 30 additions and 8 deletions

View File

@ -260,6 +260,11 @@ func GetPullFiles(ctx *context.APIContext) {
ctx.JSON(200, diff)
}
type PullRequestCommit struct {
models.SignCommitWithStatuses
Sha string
}
func GetPullCommits(ctx *context.APIContext) {
issue := checkPullInfo(ctx.Context)
if issue == nil {
@ -292,13 +297,16 @@ func GetPullCommits(ctx *context.APIContext) {
commits = models.ValidateCommitsWithEmails(commits)
commits = models.ParseCommitsWithSignature(commits, ctx.Repo.Repository)
commits = models.ParseCommitsWithStatus(commits, ctx.Repo.Repository)
ctx.Data["Commits"] = commits
ctx.Data["CommitCount"] = commits.Len()
result := make([]models.SignCommitWithStatuses, 0)
result := make([]PullRequestCommit, 0)
// result := make([]models.SignCommitWithStatuses, 0)
for commit := commits.Front(); commit != nil; commit = commit.Next() {
temp := commit.Value.(models.SignCommitWithStatuses)
result = append(result, temp)
pullRequestCommit := PullRequestCommit{
temp,
temp.ID.String(),
}
result = append(result, pullRequestCommit)
}
ctx.JSON(200, result)

View File

@ -858,6 +858,12 @@ func SetDiffViewStyle(ctx *context.Context) {
}
}
type CompareCommit struct {
*git.Commit
Sha string
ParentShas []string
}
func CompareDiff(ctx *context.APIContext) {
headUser, headRepo, headGitRepo, compareInfo, baseBranch, headBranch := ParseCompareInfo(ctx.Context)
if ctx.Written() {
@ -870,15 +876,23 @@ func CompareDiff(ctx *context.APIContext) {
return
}
result := make([]*git.Commit, 0)
result := make([]CompareCommit, 0)
for commit := compareInfo.Commits.Front(); commit != nil; commit = commit.Next() {
temp := commit.Value.(*git.Commit)
result = append(result, temp)
compareCommit := CompareCommit{
temp,
temp.ID.String(),
make([]string, 0),
}
for i := 0; i < len(temp.Parents); i++ {
compareCommit.ParentShas = append(compareCommit.ParentShas, temp.Parents[i].String())
}
result = append(result, compareCommit)
}
different := struct {
Commits []*git.Commit `json: "commits"`
Diff interface{} `json: "diff"`
Commits []CompareCommit
Diff interface{}
}{}
different.Commits = result