@@ -13,6 +13,7 @@ import (
13
13
"code.gitea.io/gitea/modules/git"
14
14
"code.gitea.io/gitea/modules/log"
15
15
"code.gitea.io/gitea/modules/process"
16
+ "code.gitea.io/gitea/modules/setting"
16
17
api "code.gitea.io/gitea/modules/structs"
17
18
"code.gitea.io/gitea/modules/timeutil"
18
19
)
@@ -37,6 +38,49 @@ func createTag(gitRepo *git.Repository, rel *models.Release) error {
37
38
return err
38
39
}
39
40
rel .LowerTagName = strings .ToLower (rel .TagName )
41
+
42
+ // Prepare Webhook
43
+ if err := rel .LoadAttributes (); err != nil {
44
+ log .Error ("LoadAttributes: %v" , err )
45
+ } else {
46
+
47
+ defer func () {
48
+ go models .HookQueue .Add (rel .Repo .ID )
49
+ }()
50
+
51
+ var shaSum string
52
+ mode , _ := models .AccessLevel (rel .Publisher , rel .Repo )
53
+ apiRepo := rel .Repo .APIFormat (mode )
54
+ apiPusher := rel .Publisher .APIFormat ()
55
+ shaSum , err = gitRepo .GetTagCommitID (rel .TagName )
56
+ if err != nil {
57
+ log .Error ("GetTagCommitID[%s]: %v" , rel .TagName , err )
58
+ }
59
+
60
+ // Tag Create
61
+ if err = models .PrepareWebhooks (rel .Repo , models .HookEventCreate , & api.CreatePayload {
62
+ Ref : git .TagPrefix + rel .TagName ,
63
+ Sha : shaSum ,
64
+ RefType : "tag" ,
65
+ Repo : apiRepo ,
66
+ Sender : apiPusher ,
67
+ }); err != nil {
68
+ return fmt .Errorf ("PrepareWebhooks: %v" , err )
69
+ }
70
+ // Tag Push
71
+ if err = models .PrepareWebhooks (rel .Repo , models .HookEventPush , & api.PushPayload {
72
+ Ref : git .TagPrefix + rel .TagName ,
73
+ Before : git .EmptySHA ,
74
+ After : shaSum ,
75
+ CompareURL : setting .AppURL ,
76
+ Commits : make ([]* api.PayloadCommit , 0 ),
77
+ Repo : apiRepo ,
78
+ Pusher : apiPusher ,
79
+ Sender : apiPusher ,
80
+ }); err != nil {
81
+ return fmt .Errorf ("PrepareWebhooks: %v" , err )
82
+ }
83
+ }
40
84
}
41
85
commit , err := gitRepo .GetTagCommit (rel .TagName )
42
86
if err != nil {
0 commit comments