aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--network/receivepack/hook.go7
-rw-r--r--network/receivepack/hooks/reject_force_push.go5
-rw-r--r--network/receivepack/receivepack.go1
-rw-r--r--network/receivepack/service/hook.go7
-rw-r--r--network/receivepack/service/options.go4
-rw-r--r--network/receivepack/service/service_test.go2
6 files changed, 15 insertions, 11 deletions
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,
})