blob: 6dadae4c71cf85dead83ff83fe4a4a06e20a336e (
about) (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
package service
import (
"context"
"io"
objectid "codeberg.org/lindenii/furgit/object/id"
objectstore "codeberg.org/lindenii/furgit/object/store"
refstore "codeberg.org/lindenii/furgit/ref/store"
)
type HookIO struct {
Progress io.Writer
Error io.Writer
}
type RefUpdate struct {
Name string
OldID objectid.ObjectID
NewID objectid.ObjectID
}
type UpdateDecision struct {
Accept bool
Message string
}
// HookRequest is the borrowed view passed to one Hook invocation.
//
// Refs, ExistingObjects, and QuarantinedObjects are borrowed and are only
// valid for the duration of the hook call.
type HookRequest struct {
Refs refstore.ReadingStore
ExistingObjects objectstore.Store
QuarantinedObjects objectstore.Store
Updates []RefUpdate
PushOptions []string
IO HookIO
}
// Hook is an optional per-request validation hook.
//
// Hook borrows the data and stores in HookRequest only for the duration of the
// call.
type Hook func(context.Context, HookRequest) ([]UpdateDecision, error)
|