Skip to content

Commit b05e178

Browse files
authored
Fix repository create/delete event webhooks (#13008) (#13027)
1 parent 96918a4 commit b05e178

File tree

2 files changed

+17
-23
lines changed

2 files changed

+17
-23
lines changed

modules/notification/webhook/webhook.go

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -99,30 +99,26 @@ func (m *webhookNotifier) NotifyForkRepository(doer *models.User, oldRepo, repo
9999

100100
func (m *webhookNotifier) NotifyCreateRepository(doer *models.User, u *models.User, repo *models.Repository) {
101101
// Add to hook queue for created repo after session commit.
102-
if u.IsOrganization() {
103-
if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
104-
Action: api.HookRepoCreated,
105-
Repository: repo.APIFormat(models.AccessModeOwner),
106-
Organization: u.APIFormat(),
107-
Sender: doer.APIFormat(),
108-
}); err != nil {
109-
log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err)
110-
}
102+
if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
103+
Action: api.HookRepoCreated,
104+
Repository: repo.APIFormat(models.AccessModeOwner),
105+
Organization: u.APIFormat(),
106+
Sender: doer.APIFormat(),
107+
}); err != nil {
108+
log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err)
111109
}
112110
}
113111

114112
func (m *webhookNotifier) NotifyDeleteRepository(doer *models.User, repo *models.Repository) {
115113
u := repo.MustOwner()
116114

117-
if u.IsOrganization() {
118-
if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
119-
Action: api.HookRepoDeleted,
120-
Repository: repo.APIFormat(models.AccessModeOwner),
121-
Organization: u.APIFormat(),
122-
Sender: doer.APIFormat(),
123-
}); err != nil {
124-
log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err)
125-
}
115+
if err := webhook_module.PrepareWebhooks(repo, models.HookEventRepository, &api.RepositoryPayload{
116+
Action: api.HookRepoDeleted,
117+
Repository: repo.APIFormat(models.AccessModeOwner),
118+
Organization: u.APIFormat(),
119+
Sender: doer.APIFormat(),
120+
}); err != nil {
121+
log.Error("PrepareWebhooks [repo_id: %d]: %v", repo.ID, err)
126122
}
127123
}
128124

services/repository/repository.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,11 @@ func DeleteRepository(doer *models.User, repo *models.Repository) error {
5454
log.Error("CloseRepoBranchesPulls failed: %v", err)
5555
}
5656

57-
if err := models.DeleteRepository(doer, repo.OwnerID, repo.ID); err != nil {
58-
return err
59-
}
60-
57+
// If the repo itself has webhooks, we need to trigger them before deleting it...
6158
notification.NotifyDeleteRepository(doer, repo)
6259

63-
return nil
60+
err := models.DeleteRepository(doer, repo.OwnerID, repo.ID)
61+
return err
6462
}
6563

6664
// PushCreateRepo creates a repository when a new repository is pushed to an appropriate namespace

0 commit comments

Comments
 (0)