diff options
| author | 2026-03-07 22:00:51 +0800 | |
|---|---|---|
| committer | 2026-03-07 22:03:26 +0800 | |
| commit | 7d0f942b3ae4903dded72a9524f6bd4ffa16feb9 (patch) | |
| tree | 32cbfc7841dc59759618c07905675cc3ece1c5a1 /receivepack/internal | |
| parent | protocol/v0v1/server: Add ProgessWriter and ErrorWriter (diff) | |
| signature | No signature | |
receivepack: Add HookIO
Diffstat (limited to 'receivepack/internal')
| -rw-r--r-- | receivepack/internal/service/hook.go | 7 | ||||
| -rw-r--r-- | receivepack/internal/service/options.go | 1 | ||||
| -rw-r--r-- | receivepack/internal/service/run_hook.go | 1 |
3 files changed, 9 insertions, 0 deletions
diff --git a/receivepack/internal/service/hook.go b/receivepack/internal/service/hook.go index 85295e15..748a00b9 100644 --- a/receivepack/internal/service/hook.go +++ b/receivepack/internal/service/hook.go @@ -2,12 +2,18 @@ package service import ( "context" + "io" "codeberg.org/lindenii/furgit/objectid" "codeberg.org/lindenii/furgit/objectstore" "codeberg.org/lindenii/furgit/refstore" ) +type HookIO struct { + Progress io.Writer + Error io.Writer +} + type RefUpdate struct { Name string OldID objectid.ObjectID @@ -25,6 +31,7 @@ type HookRequest struct { QuarantinedObjects objectstore.Store Updates []RefUpdate PushOptions []string + IO HookIO } type Hook func(context.Context, HookRequest) ([]UpdateDecision, error) diff --git a/receivepack/internal/service/options.go b/receivepack/internal/service/options.go index d9f8a265..b8dda2f7 100644 --- a/receivepack/internal/service/options.go +++ b/receivepack/internal/service/options.go @@ -22,4 +22,5 @@ type Options struct { ObjectsRoot *os.Root PromotedObjectPermissions *PromotedObjectPermissions Hook Hook + HookIO HookIO } diff --git a/receivepack/internal/service/run_hook.go b/receivepack/internal/service/run_hook.go index cf934664..3c76906e 100644 --- a/receivepack/internal/service/run_hook.go +++ b/receivepack/internal/service/run_hook.go @@ -41,6 +41,7 @@ func (service *Service) runHook( QuarantinedObjects: quarantinedObjects, Updates: buildHookUpdates(commands), PushOptions: append([]string(nil), req.PushOptions...), + IO: service.opts.HookIO, }) if err != nil { return nil, nil, nil, false, err.Error() |
