@@ -17,9 +17,23 @@ func CreateReview(opts models.CreateReviewOptions) (*models.Review, error) {
17
17
return nil , err
18
18
}
19
19
20
+ return review , reviewHook (review )
21
+ }
22
+
23
+ // UpdateReview updates a review
24
+ func UpdateReview (review * models.Review ) error {
25
+ err := models .UpdateReview (review )
26
+ if err != nil {
27
+ return err
28
+ }
29
+
30
+ return reviewHook (review )
31
+ }
32
+
33
+ func reviewHook (review * models.Review ) error {
20
34
var reviewHookType models.HookEventType
21
35
22
- switch opts .Type {
36
+ switch review .Type {
23
37
case models .ReviewTypeApprove :
24
38
reviewHookType = models .HookEventPullRequestApproved
25
39
case models .ReviewTypeComment :
@@ -28,30 +42,30 @@ func CreateReview(opts models.CreateReviewOptions) (*models.Review, error) {
28
42
reviewHookType = models .HookEventPullRequestRejected
29
43
default :
30
44
// unsupported review webhook type here
31
- return review , nil
45
+ return nil
32
46
}
33
47
34
- pr := opts .Issue .PullRequest
48
+ pr := review .Issue .PullRequest
35
49
36
50
if err := pr .LoadIssue (); err != nil {
37
- return nil , err
51
+ return err
38
52
}
39
53
40
- mode , err := models .AccessLevel (opts .Issue .Poster , opts .Issue .Repo )
54
+ mode , err := models .AccessLevel (review .Issue .Poster , review .Issue .Repo )
41
55
if err != nil {
42
- return nil , err
56
+ return err
43
57
}
44
58
45
- if err := models .PrepareWebhooks (opts .Issue .Repo , reviewHookType , & api.PullRequestPayload {
59
+ if err := models .PrepareWebhooks (review .Issue .Repo , reviewHookType , & api.PullRequestPayload {
46
60
Action : api .HookIssueSynchronized ,
47
- Index : opts .Issue .Index ,
61
+ Index : review .Issue .Index ,
48
62
PullRequest : pr .APIFormat (),
49
- Repository : opts .Issue .Repo .APIFormat (mode ),
50
- Sender : opts .Reviewer .APIFormat (),
63
+ Repository : review .Issue .Repo .APIFormat (mode ),
64
+ Sender : review .Reviewer .APIFormat (),
51
65
}); err != nil {
52
- return nil , err
66
+ return err
53
67
}
54
- go models .HookQueue .Add (opts .Issue .Repo .ID )
68
+ go models .HookQueue .Add (review .Issue .Repo .ID )
55
69
56
- return review , nil
70
+ return nil
57
71
}
0 commit comments