@@ -51,29 +51,31 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u
51
51
}
52
52
53
53
apiPullRequest := & api.PullRequest {
54
- ID : pr .ID ,
55
- URL : pr .Issue .HTMLURL (),
56
- Index : pr .Index ,
57
- Poster : apiIssue .Poster ,
58
- Title : apiIssue .Title ,
59
- Body : apiIssue .Body ,
60
- Labels : apiIssue .Labels ,
61
- Milestone : apiIssue .Milestone ,
62
- Assignee : apiIssue .Assignee ,
63
- Assignees : apiIssue .Assignees ,
64
- State : apiIssue .State ,
65
- IsLocked : apiIssue .IsLocked ,
66
- Comments : apiIssue .Comments ,
67
- HTMLURL : pr .Issue .HTMLURL (),
68
- DiffURL : pr .Issue .DiffURL (),
69
- PatchURL : pr .Issue .PatchURL (),
70
- HasMerged : pr .HasMerged ,
71
- MergeBase : pr .MergeBase ,
72
- Mergeable : pr .Mergeable (ctx ),
73
- Deadline : apiIssue .Deadline ,
74
- Created : pr .Issue .CreatedUnix .AsTimePtr (),
75
- Updated : pr .Issue .UpdatedUnix .AsTimePtr (),
76
- PinOrder : apiIssue .PinOrder ,
54
+ ID : pr .ID ,
55
+ URL : pr .Issue .HTMLURL (),
56
+ Index : pr .Index ,
57
+ Poster : apiIssue .Poster ,
58
+ Title : apiIssue .Title ,
59
+ Body : apiIssue .Body ,
60
+ Labels : apiIssue .Labels ,
61
+ Milestone : apiIssue .Milestone ,
62
+ Assignee : apiIssue .Assignee ,
63
+ Assignees : apiIssue .Assignees ,
64
+ State : apiIssue .State ,
65
+ Draft : pr .IsWorkInProgress (ctx ),
66
+ IsLocked : apiIssue .IsLocked ,
67
+ Comments : apiIssue .Comments ,
68
+ ReviewComments : pr .GetReviewCommentsCount (ctx ),
69
+ HTMLURL : pr .Issue .HTMLURL (),
70
+ DiffURL : pr .Issue .DiffURL (),
71
+ PatchURL : pr .Issue .PatchURL (),
72
+ HasMerged : pr .HasMerged ,
73
+ MergeBase : pr .MergeBase ,
74
+ Mergeable : pr .Mergeable (ctx ),
75
+ Deadline : apiIssue .Deadline ,
76
+ Created : pr .Issue .CreatedUnix .AsTimePtr (),
77
+ Updated : pr .Issue .UpdatedUnix .AsTimePtr (),
78
+ PinOrder : apiIssue .PinOrder ,
77
79
78
80
AllowMaintainerEdit : pr .AllowMaintainerEdit ,
79
81
@@ -168,6 +170,12 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u
168
170
return nil
169
171
}
170
172
173
+ // Outer scope variables to be used in diff calculation
174
+ var (
175
+ startCommitID string
176
+ endCommitID string
177
+ )
178
+
171
179
if git .IsErrBranchNotExist (err ) {
172
180
headCommitID , err := headGitRepo .GetRefCommitID (apiPullRequest .Head .Ref )
173
181
if err != nil && ! git .IsErrNotExist (err ) {
@@ -176,6 +184,7 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u
176
184
}
177
185
if err == nil {
178
186
apiPullRequest .Head .Sha = headCommitID
187
+ endCommitID = headCommitID
179
188
}
180
189
} else {
181
190
commit , err := headBranch .GetCommit ()
@@ -186,8 +195,17 @@ func ToAPIPullRequest(ctx context.Context, pr *issues_model.PullRequest, doer *u
186
195
if err == nil {
187
196
apiPullRequest .Head .Ref = pr .HeadBranch
188
197
apiPullRequest .Head .Sha = commit .ID .String ()
198
+ endCommitID = commit .ID .String ()
189
199
}
190
200
}
201
+
202
+ // Calculate diff
203
+ startCommitID = pr .MergeBase
204
+
205
+ apiPullRequest .ChangedFiles , apiPullRequest .Additions , apiPullRequest .Deletions , err = gitRepo .GetDiffShortStat (startCommitID , endCommitID )
206
+ if err != nil {
207
+ log .Error ("GetDiffShortStat: %v" , err )
208
+ }
191
209
}
192
210
193
211
if len (apiPullRequest .Head .Sha ) == 0 && len (apiPullRequest .Head .Ref ) != 0 {
0 commit comments