@@ -18,6 +18,7 @@ import (
1818 "sync"
1919 "time"
2020
21+ user_model "code.gitea.io/gitea/models/user"
2122 webhook_model "code.gitea.io/gitea/models/webhook"
2223 "code.gitea.io/gitea/modules/graceful"
2324 "code.gitea.io/gitea/modules/hostmatcher"
@@ -92,10 +93,10 @@ func newDefaultRequest(ctx context.Context, w *webhook_model.Webhook, t *webhook
9293 }
9394
9495 body = []byte (t .PayloadContent )
95- return req , body , addDefaultHeaders (req , []byte (w .Secret ), t , body )
96+ return req , body , addDefaultHeaders (req , []byte (w .Secret ), w , t , body )
9697}
9798
98- func addDefaultHeaders (req * http.Request , secret []byte , t * webhook_model.HookTask , payloadContent []byte ) error {
99+ func addDefaultHeaders (req * http.Request , secret []byte , w * webhook_model. Webhook , t * webhook_model.HookTask , payloadContent []byte ) error {
99100 var signatureSHA1 string
100101 var signatureSHA256 string
101102 if len (secret ) > 0 {
@@ -112,10 +113,27 @@ func addDefaultHeaders(req *http.Request, secret []byte, t *webhook_model.HookTa
112113
113114 event := t .EventType .Event ()
114115 eventType := string (t .EventType )
116+ targetType := "default"
117+ if w .IsSystemWebhook {
118+ targetType = "system"
119+ } else if w .RepoID != 0 {
120+ targetType = "repository"
121+ } else if w .OwnerID != 0 {
122+ owner , err := user_model .GetUserByID (req .Context (), w .OwnerID )
123+ if owner != nil && err == nil {
124+ if owner .IsOrganization () {
125+ targetType = "organization"
126+ } else {
127+ targetType = "user"
128+ }
129+ }
130+ }
131+
115132 req .Header .Add ("X-Gitea-Delivery" , t .UUID )
116133 req .Header .Add ("X-Gitea-Event" , event )
117134 req .Header .Add ("X-Gitea-Event-Type" , eventType )
118135 req .Header .Add ("X-Gitea-Signature" , signatureSHA256 )
136+ req .Header .Add ("X-Gitea-Hook-Installation-Target-Type" , targetType )
119137 req .Header .Add ("X-Gogs-Delivery" , t .UUID )
120138 req .Header .Add ("X-Gogs-Event" , event )
121139 req .Header .Add ("X-Gogs-Event-Type" , eventType )
@@ -125,6 +143,7 @@ func addDefaultHeaders(req *http.Request, secret []byte, t *webhook_model.HookTa
125143 req .Header ["X-GitHub-Delivery" ] = []string {t .UUID }
126144 req .Header ["X-GitHub-Event" ] = []string {event }
127145 req .Header ["X-GitHub-Event-Type" ] = []string {eventType }
146+ req .Header ["X-GitHub-Hook-Installation-Target-Type" ] = []string {targetType }
128147 return nil
129148}
130149
0 commit comments