From 82f8ae0392250f0de127fcd7a5da21587e9e589c Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Mon, 30 Mar 2026 19:53:06 +0000 Subject: network/receivepack: Cleanup; also document QuarantinedObjects nullness --- network/receivepack/hook.go | 7 +++++-- network/receivepack/hooks/reject_force_push.go | 5 ++++- network/receivepack/receivepack.go | 1 - network/receivepack/service/hook.go | 7 +++++-- network/receivepack/service/options.go | 4 +--- network/receivepack/service/service_test.go | 2 -- 6 files changed, 15 insertions(+), 11 deletions(-) (limited to 'network') diff --git a/network/receivepack/hook.go b/network/receivepack/hook.go index cd03dfd0..9626b2a3 100644 --- a/network/receivepack/hook.go +++ b/network/receivepack/hook.go @@ -34,8 +34,11 @@ type UpdateDecision struct { // // Labels: Life-Call. type HookRequest struct { - Refs refstore.ReadingStore - ExistingObjects objectstore.Reader + Refs refstore.ReadingStore + ExistingObjects objectstore.Reader + // QuarantinedObjects exposes quarantined objects for this push. + // + // When the push did not create a quarantine, QuarantinedObjects is nil. QuarantinedObjects objectstore.Reader CommitGraph *commitgraphread.Reader Updates []RefUpdate diff --git a/network/receivepack/hooks/reject_force_push.go b/network/receivepack/hooks/reject_force_push.go index 841af31f..5840a031 100644 --- a/network/receivepack/hooks/reject_force_push.go +++ b/network/receivepack/hooks/reject_force_push.go @@ -21,7 +21,10 @@ func RejectForcePush() receivepack.Hook { ) ([]receivepack.UpdateDecision, error) { _ = ctx - objects := objectmix.New(req.QuarantinedObjects, req.ExistingObjects) + objects := req.ExistingObjects + if req.QuarantinedObjects != nil { + objects = objectmix.New(req.QuarantinedObjects, req.ExistingObjects) + } queries := commitquery.New(fetch.New(objects), req.CommitGraph) diff --git a/network/receivepack/receivepack.go b/network/receivepack/receivepack.go index 2a336cb1..2124214e 100644 --- a/network/receivepack/receivepack.go +++ b/network/receivepack/receivepack.go @@ -105,7 +105,6 @@ func ReceivePack( } svc := service.New(service.Options{ - Algorithm: opts.Algorithm, Refs: opts.Refs, ExistingObjects: opts.ExistingObjects, ObjectIngress: opts.ObjectIngress, diff --git a/network/receivepack/service/hook.go b/network/receivepack/service/hook.go index 6f472661..68dc5051 100644 --- a/network/receivepack/service/hook.go +++ b/network/receivepack/service/hook.go @@ -30,8 +30,11 @@ type UpdateDecision struct { // // Labels: Life-Call. type HookRequest struct { - Refs refstore.ReadingStore - ExistingObjects objectstore.Reader + Refs refstore.ReadingStore + ExistingObjects objectstore.Reader + // QuarantinedObjects exposes quarantined objects for this push. + // + // When the push did not create a quarantine, QuarantinedObjects is nil. QuarantinedObjects objectstore.Reader CommitGraph *commitgraphread.Reader Updates []RefUpdate diff --git a/network/receivepack/service/options.go b/network/receivepack/service/options.go index 9e790bc0..e183b709 100644 --- a/network/receivepack/service/options.go +++ b/network/receivepack/service/options.go @@ -3,7 +3,6 @@ package service import ( "codeberg.org/lindenii/furgit/common/iowrap" commitgraphread "codeberg.org/lindenii/furgit/format/commitgraph/read" - objectid "codeberg.org/lindenii/furgit/object/id" objectstore "codeberg.org/lindenii/furgit/object/store" refstore "codeberg.org/lindenii/furgit/ref/store" ) @@ -18,8 +17,7 @@ import ( // CommitGraph, Progress, Hook, and HookIO are optional; when provided they are also // borrowed for the duration of Execute. type Options struct { - Algorithm objectid.Algorithm - Refs interface { + Refs interface { refstore.ReadingStore refstore.TransactionalStore refstore.BatchStore diff --git a/network/receivepack/service/service_test.go b/network/receivepack/service/service_test.go index 50d02beb..94e105da 100644 --- a/network/receivepack/service/service_test.go +++ b/network/receivepack/service/service_test.go @@ -25,7 +25,6 @@ func TestExecutePackExpectedWithoutObjectIngress(t *testing.T) { store := memory.New(algo) svc := service.New(service.Options{ - Algorithm: algo, ExistingObjects: store, }) @@ -59,7 +58,6 @@ func TestExecuteDiscardedQuarantineAfterIngestFailure(t *testing.T) { objectIngress := newDualIngress(t, algo) svc := service.New(service.Options{ - Algorithm: algo, ExistingObjects: store, ObjectIngress: objectIngress, }) -- cgit v1.3.1-10-gc9f91