@@ -7,6 +7,7 @@ package harness
77import (
88 "context"
99 "fmt"
10+ "github.com/drone/go-scm/scm/driver/internal/null"
1011 "strconv"
1112 "strings"
1213 "time"
@@ -123,44 +124,38 @@ func (s *pullService) Close(context.Context, string, int) (*scm.Response, error)
123124// native data structures
124125type (
125126 pr struct {
126- Author struct {
127- Created int `json:"created"`
128- DisplayName string `json:"display_name"`
129- Email string `json:"email"`
130- ID int `json:"id"`
131- Type string `json:"type"`
132- UID string `json:"uid"`
133- Updated int `json:"updated"`
134- } `json:"author"`
135- Created int `json:"created"`
136- Description string `json:"description"`
137- Edited int `json:"edited"`
138- IsDraft bool `json:"is_draft"`
139- MergeBaseSha string `json:"merge_base_sha"`
140- MergeHeadSha string `json:"merge_head_sha"`
141- MergeStrategy string `json:"merge_strategy"`
142- Merged int `json:"merged"`
143- Merger struct {
144- Created int `json:"created"`
145- DisplayName string `json:"display_name"`
146- Email string `json:"email"`
147- ID int `json:"id"`
148- Type string `json:"type"`
149- UID string `json:"uid"`
150- Updated int `json:"updated"`
151- } `json:"merger"`
152- Number int `json:"number"`
127+ Author principal `json:"author"`
128+ Created int64 `json:"created"`
129+ Description string `json:"description"`
130+ Edited int64 `json:"edited"`
131+ IsDraft bool `json:"is_draft"`
132+
133+ MergeTargetSHA null.String `json:"merge_target_sha"`
134+ MergeBaseSha string `json:"merge_base_sha"`
135+ Merged null.Int `json:"merged"`
136+ MergeMethod null.String `json:"merge_method"`
137+ MergeSHA null.String `json:"merge_sha"`
138+ MergeCheckStatus string `json:"merge_check_status"`
139+ MergeConflicts []string `json:"merge_conflicts,omitempty"`
140+ Merger * principal `json:"merger"`
141+
142+ Number int64 `json:"number"`
143+
153144 SourceBranch string `json:"source_branch"`
154- SourceRepoID int `json:"source_repo_id"`
155- State string `json:"state"`
156- Stats struct {
157- Commits int `json:"commits"`
158- Conversations int `json:"conversations"`
159- FilesChanged int `json:"files_changed"`
160- } `json:"stats"`
145+ SourceRepoID int64 `json:"source_repo_id"`
146+ SourceSHA string `json:"source_sha"`
161147 TargetBranch string `json:"target_branch"`
162- TargetRepoID int `json:"target_repo_id"`
163- Title string `json:"title"`
148+ TargetRepoID int64 `json:"target_repo_id"`
149+
150+ State string `json:"state"`
151+ Stats struct {
152+ Commits null.Int `json:"commits,omitempty"`
153+ Conversations int `json:"conversations,omitempty"`
154+ FilesChanged null.Int `json:"files_changed,omitempty"`
155+ UnresolvedCount int `json:"unresolved_count,omitempty"`
156+ } `json:"stats"`
157+
158+ Title string `json:"title"`
164159 }
165160
166161 reference struct {
@@ -246,21 +241,34 @@ func convertPullRequests(src []*pr) []*scm.PullRequest {
246241
247242func convertPullRequest (src * pr ) * scm.PullRequest {
248243 return & scm.PullRequest {
249- Number : src .Number ,
244+ Number : int ( src .Number ) ,
250245 Title : src .Title ,
251246 Body : src .Description ,
247+ Sha : src .SourceSHA ,
252248 Source : src .SourceBranch ,
253249 Target : src .TargetBranch ,
254- Merged : src .Merged != 0 ,
250+ Merged : src .Merged . Valid ,
255251 Author : scm.User {
256252 Login : src .Author .Email ,
257253 Name : src .Author .DisplayName ,
258254 ID : src .Author .UID ,
259255 Email : src .Author .Email ,
260256 },
261- Fork : "fork" ,
262- Ref : fmt .Sprintf ("refs/pullreq/%d/head" , src .Number ),
263- Closed : src .State == "closed" ,
257+ Head : scm.Reference {
258+ Name : src .SourceBranch ,
259+ Path : scm .ExpandRef (src .SourceBranch , "refs/heads" ),
260+ Sha : src .SourceSHA ,
261+ },
262+ Base : scm.Reference {
263+ Name : src .TargetBranch ,
264+ Path : scm .ExpandRef (src .TargetBranch , "refs/heads" ),
265+ Sha : src .MergeTargetSHA .String ,
266+ },
267+ Fork : "fork" ,
268+ Ref : fmt .Sprintf ("refs/pullreq/%d/head" , src .Number ),
269+ Closed : src .State == "closed" ,
270+ Created : time .UnixMilli (src .Created ),
271+ Updated : time .UnixMilli (src .Edited ),
264272 }
265273}
266274
0 commit comments