Skip to content

Commit 2e4fa5a

Browse files
Merge pull request #318 from drone/ks/draft-prs
feat: [CODE-2180]: Add draft boolean for github, azure and gitlab PRs
2 parents 4c976e1 + 0969f30 commit 2e4fa5a

14 files changed

+25
-7
lines changed

scm/driver/azure/pr.go

+2
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ type pr struct {
107107
SourceRefName string `json:"sourceRefName"`
108108
TargetRefName string `json:"targetRefName"`
109109
MergeStatus string `json:"mergeStatus"`
110+
IsDraft bool `json:"isDraft"`
110111
MergeID string `json:"mergeId"`
111112
LastMergeSourceCommit struct {
112113
CommitID string `json:"commitId"`
@@ -168,6 +169,7 @@ func convertPullRequest(from *pr) *scm.PullRequest {
168169
Source: scm.TrimRef(from.SourceRefName),
169170
Target: scm.TrimRef(from.TargetRefName),
170171
Link: from.URL,
172+
Draft: from.IsDraft,
171173
Closed: from.ClosedDate.Valid,
172174
Merged: from.Status == "completed",
173175
Ref: fmt.Sprintf("refs/pull/%d/merge", from.PullRequestID),

scm/driver/azure/testdata/pr.json

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"sourceRefName": "refs/heads/pr_branch",
3131
"targetRefName": "refs/heads/main",
3232
"mergeStatus": "queued",
33+
"isDraft": false,
3334
"mergeId": "36c88bf7-3d14-437f-82aa-e38cce733261",
3435
"lastMergeSourceCommit": {
3536
"commitId": "01768d964c03e97260af0bd8cd9e5cd1f9ac6356",

scm/driver/azure/testdata/pr.json.golden

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"Fork": "",
1111
"Link": "https://dev.azure.com/tphoney/d350c9c0-7749-4ff8-a78f-f9c1f0e56729/_apis/git/repositories/fde2d21f-13b9-4864-a995-83329045289a/pullRequests/19",
1212
"Diff": "",
13+
"Draft": false,
1314
"Closed": true,
1415
"Merged": true,
1516
"Base": {

scm/driver/github/pr.go

+2
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ type pr struct {
7676
State string `json:"state"`
7777
Title string `json:"title"`
7878
Body string `json:"body"`
79+
Draft bool `json:"draft"`
7980
DiffURL string `json:"diff_url"`
8081
HTMLURL string `json:"html_url"`
8182
User struct {
@@ -154,6 +155,7 @@ func convertPullRequest(from *pr) *scm.PullRequest {
154155
Fork: from.Head.Repo.FullName,
155156
Link: from.HTMLURL,
156157
Diff: from.DiffURL,
158+
Draft: from.Draft,
157159
Closed: from.State != "open",
158160
Merged: from.MergedAt.String != "",
159161
Head: scm.Reference{

scm/driver/github/testdata/pr.json

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments",
1212
"statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e",
1313
"number": 1347,
14+
"draft": false,
1415
"state": "open",
1516
"title": "new-feature",
1617
"body": "Please pull these awesome changes",

scm/driver/github/testdata/pr.json.golden

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
"Fork": "octocat/Hello-World",
1010
"Link": "https://github.com/octocat/Hello-World/pull/1347",
1111
"Diff": "https://github.com/octocat/Hello-World/pull/1347.diff",
12+
"Draft": false,
1213
"Closed": false,
1314
"Merged": true,
1415
"Base": {

scm/driver/github/testdata/pulls.json

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"comments_url": "https://api.github.com/repos/octocat/Hello-World/issues/1347/comments",
1313
"statuses_url": "https://api.github.com/repos/octocat/Hello-World/statuses/6dcb09b5b57875f334f61aebed695e2e4193db5e",
1414
"number": 1347,
15+
"draft": false,
1516
"state": "open",
1617
"title": "new-feature",
1718
"body": "Please pull these awesome changes",

scm/driver/github/testdata/pulls.json.golden

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"Fork": "octocat/Hello-World",
1111
"Link": "https://github.com/octocat/Hello-World/pull/1347",
1212
"Diff": "https://github.com/octocat/Hello-World/pull/1347.diff",
13+
"Draft": false,
1314
"Closed": false,
1415
"Merged": true,
1516
"Base": {

scm/driver/gitlab/pr.go

+9-7
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,14 @@ func (s *pullService) Close(ctx context.Context, repo string, number int) (*scm.
9999
}
100100

101101
type pr struct {
102-
Number int `json:"iid"`
103-
Sha string `json:"sha"`
104-
Title string `json:"title"`
105-
Desc string `json:"description"`
106-
State string `json:"state"`
107-
Link string `json:"web_url"`
108-
Author struct {
102+
Number int `json:"iid"`
103+
Sha string `json:"sha"`
104+
Title string `json:"title"`
105+
Desc string `json:"description"`
106+
State string `json:"state"`
107+
WorkInProgress bool `json:"work_in_progress"`
108+
Link string `json:"web_url"`
109+
Author struct {
109110
Username string `json:"username"`
110111
Email string `json:"email"`
111112
Name string `json:"name"`
@@ -160,6 +161,7 @@ func convertPullRequest(from *pr) *scm.PullRequest {
160161
Source: from.SourceBranch,
161162
Target: from.TargetBranch,
162163
Link: from.Link,
164+
Draft: from.WorkInProgress,
163165
Closed: from.State != "opened",
164166
Merged: from.State == "merged",
165167
Author: scm.User{

scm/driver/gitlab/testdata/merge.json.golden

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"Source": "fix",
88
"Target": "master",
99
"Link": "https://gitlab.com/gitlab-org/testme/merge_requests/1",
10+
"Draft": false,
1011
"Closed": true,
1112
"Merged": false,
1213
"Author": {

scm/driver/gitlab/testdata/merges.json.golden

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"Source": "fix",
99
"Target": "master",
1010
"Link": "https://gitlab.com/gitlab-org/testme/merge_requests/1",
11+
"Draft": false,
1112
"Closed": true,
1213
"Merged": false,
1314
"Author": {

scm/driver/gitlab/testdata/webhooks/pull_request_review_ready.json.golden

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
"Target": "main",
2424
"Fork": "Meet Rathod/meet",
2525
"Link": "https://gitlab.com/rathod.meetsatish/meet/-/merge_requests/3",
26+
"Draft": true,
2627
"Closed": false,
2728
"Merged": false,
2829
"Author": {

scm/driver/gitlab/webhook.go

+2
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,7 @@ func convertCommentHook(src *commentHook) (*scm.IssueCommentHook, error) {
238238
Source: src.MergeRequest.SourceBranch,
239239
Target: src.MergeRequest.TargetBranch,
240240
Link: src.MergeRequest.URL,
241+
Draft: src.MergeRequest.WorkInProgress,
241242
Closed: src.MergeRequest.State != "opened",
242243
Merged: src.MergeRequest.State == "merged",
243244
Author: *convertUser(&src.User),
@@ -359,6 +360,7 @@ func convertPullRequestHook(src *pullRequestHook) *scm.PullRequestHook {
359360
Target: src.ObjectAttributes.TargetBranch,
360361
Fork: fork,
361362
Link: src.ObjectAttributes.URL,
363+
Draft: src.ObjectAttributes.WorkInProgress,
362364
Closed: src.ObjectAttributes.State != "opened",
363365
Merged: src.ObjectAttributes.State == "merged",
364366
// Created : src.ObjectAttributes.CreatedAt,

scm/pr.go

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ type (
2222
Fork string
2323
Link string
2424
Diff string
25+
Draft bool
2526
Closed bool
2627
Merged bool
2728
Merge string

0 commit comments

Comments
 (0)