mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-08-03 00:45:22 +02:00
Webhook delivery locking & Hide repo for org members if they don't have access
This commit is contained in:
parent
7b03b1df0e
commit
79262173a6
4 changed files with 31 additions and 4 deletions
|
@ -235,8 +235,22 @@ func UpdateHookTask(t *HookTask) error {
|
|||
return err
|
||||
}
|
||||
|
||||
var (
|
||||
// Prevent duplicate deliveries.
|
||||
// This happens with massive hook tasks cannot finish delivering
|
||||
// before next shooting starts.
|
||||
isShooting = false
|
||||
)
|
||||
|
||||
// DeliverHooks checks and delivers undelivered hooks.
|
||||
// FIXME: maybe can use goroutine to shoot a number of them at same time?
|
||||
func DeliverHooks() {
|
||||
if isShooting {
|
||||
return
|
||||
}
|
||||
isShooting = true
|
||||
defer func() { isShooting = false }()
|
||||
|
||||
tasks := make([]*HookTask, 0, 10)
|
||||
timeout := time.Duration(setting.WebhookDeliverTimeout) * time.Second
|
||||
x.Where("is_delivered=?", false).Iterate(new(HookTask),
|
||||
|
@ -255,7 +269,7 @@ func DeliverHooks() {
|
|||
|
||||
t.IsDelivered = true
|
||||
|
||||
// TODO: record response.
|
||||
// FIXME: record response.
|
||||
switch t.Type {
|
||||
case GOGS:
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue