add organization-level webhooks
This commit is contained in:
parent
7269b06fd5
commit
85c35a6b8b
12 changed files with 208 additions and 24 deletions
|
@ -220,8 +220,20 @@ func CommitRepoAction(userId, repoUserId int64, userName, actEmail string,
|
|||
|
||||
ws, err := GetActiveWebhooksByRepoId(repoId)
|
||||
if err != nil {
|
||||
return errors.New("action.CommitRepoAction(GetWebhooksByRepoId): " + err.Error())
|
||||
} else if len(ws) == 0 {
|
||||
return errors.New("action.CommitRepoAction(GetActiveWebhooksByRepoId): " + err.Error())
|
||||
}
|
||||
|
||||
// check if repo belongs to org and append additional webhooks
|
||||
if repo.Owner.IsOrganization() {
|
||||
// get hooks for org
|
||||
orgws, err := GetActiveWebhooksByOrgId(repo.OwnerId)
|
||||
if err != nil {
|
||||
return errors.New("action.CommitRepoAction(GetActiveWebhooksByOrgId): " + err.Error())
|
||||
}
|
||||
ws = append(ws, orgws...)
|
||||
}
|
||||
|
||||
if len(ws) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -45,6 +45,7 @@ type Webhook struct {
|
|||
IsActive bool
|
||||
HookTaskType HookTaskType
|
||||
Meta string `xorm:"TEXT"` // store hook-specific attributes
|
||||
OrgId int64
|
||||
}
|
||||
|
||||
// GetEvent handles conversion from Events to HookEvent.
|
||||
|
@ -120,6 +121,18 @@ func DeleteWebhook(hookId int64) error {
|
|||
return err
|
||||
}
|
||||
|
||||
// GetWebhooksByOrgId returns all webhooks for an organization.
|
||||
func GetWebhooksByOrgId(orgId int64) (ws []*Webhook, err error) {
|
||||
err = x.Find(&ws, &Webhook{OrgId: orgId})
|
||||
return ws, err
|
||||
}
|
||||
|
||||
// GetActiveWebhooksByOrgId returns all active webhooks for an organization.
|
||||
func GetActiveWebhooksByOrgId(orgId int64) (ws []*Webhook, err error) {
|
||||
err = x.Find(&ws, &Webhook{OrgId: orgId, IsActive: true})
|
||||
return ws, err
|
||||
}
|
||||
|
||||
// ___ ___ __ ___________ __
|
||||
// / | \ ____ ____ | | _\__ ___/____ _____| | __
|
||||
// / ~ \/ _ \ / _ \| |/ / | | \__ \ / ___/ |/ /
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue