Skip to content

Commit

Permalink
feat: rework task descriptors (#76)
Browse files Browse the repository at this point in the history
Signed-off-by: Lawrence Zawila <[email protected]>

Signed-off-by: Lawrence Zawila <[email protected]>
  • Loading branch information
darkmatterpool authored Jan 3, 2023
1 parent 597dc59 commit b80d1ce
Show file tree
Hide file tree
Showing 49 changed files with 602 additions and 593 deletions.
3 changes: 2 additions & 1 deletion cmd/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ package cmd
import (
"strings"

"github.com/formancehq/go-libs/sharedotlp/pkg/sharedotlptraces"

"github.com/bombsimon/logrusr/v3"
"github.com/formancehq/payments/internal/app/api"
"github.com/formancehq/payments/internal/app/storage"
Expand All @@ -13,7 +15,6 @@ import (
"github.com/ThreeDotsLabs/watermill/message"
"github.com/formancehq/go-libs/sharedlogging"
"github.com/formancehq/go-libs/sharedlogging/sharedlogginglogrus"
"github.com/formancehq/go-libs/sharedotlp/pkg/sharedotlptraces"
"github.com/formancehq/go-libs/sharedpublish"
"github.com/formancehq/go-libs/sharedpublish/sharedpublishhttp"
"github.com/formancehq/go-libs/sharedpublish/sharedpublishkafka"
Expand Down
44 changes: 22 additions & 22 deletions docs/tuto-connector.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ First, to create a connector, we need a loader.
## The loader object

```go
type Loader[ConnectorConfig payments.ConnectorConfigObject, TaskDescriptor payments.TaskDescriptor] interface {
type Loader[ConnectorConfig payments.ConnectorConfigObject] interface {
// Name has to return the name of the connector. It must be constant and unique
Name() string
// Load is in charge of loading the connector
// It takes a logger and a ConnectorConfig object.
// At this point, the config must have been validated
Load(logger sharedlogging.Logger, config ConnectorConfig) Connector[TaskDescriptor]
Load(logger sharedlogging.Logger, config ConnectorConfig) Connector
// ApplyDefaults is used to fill default values of the provided configuration object.
ApplyDefaults(t ConnectorConfig) ConnectorConfig
// AllowTasks define how many task the connector can run
Expand Down Expand Up @@ -53,7 +53,7 @@ func (cfg Config) Validate() error {
return nil
}

var Loader = integration.NewLoaderBuilder[Config, TaskDescriptor]("example").Build()
var Loader = integration.NewLoaderBuilder[Config]("example").Build()
```

Here, we built our loader.
Expand Down Expand Up @@ -128,9 +128,9 @@ The Load function take a logger provided by the framework and a config, probably
It has to return a Connector object. Here the interface :
```go
// Connector provide entry point to a payment provider
type Connector[TaskDescriptor payments.TaskDescriptor any] interface {
type Connector interface {
// Install is used to start the connector. The implementation if in charge of scheduling all required resources.
Install(ctx task.ConnectorContext[TaskDescriptor]) error
Install(ctx task.ConnectorContext) error
// Uninstall is used to uninstall the connector. It has to close all related resources opened by the connector.
Uninstall(ctx context.Context) error
// Resolve is used to recover state of a failed or restarted task
Expand Down Expand Up @@ -161,10 +161,10 @@ func (cfg Config) Validate() error {
Here we defined only one property to our connector, "Directory", which indicates the directory when json files will be pushed.
Now, modify our loader :
```go
var Loader = integration.NewLoaderBuilder[Config, TaskDescriptor]("example").
WithLoad(func(logger sharedlogging.Logger, config Config) integration.Connector[TaskDescriptor] {
return integration.NewConnectorBuilder[TaskDescriptor]().
WithInstall(func(ctx task.ConnectorContext[TaskDescriptor]) error {
var Loader = integration.NewLoaderBuilder[Config]("example").
WithLoad(func(logger sharedlogging.Logger, config Config) integration.Connector {
return integration.NewConnectorBuilder().
WithInstall(func(ctx task.ConnectorContext) error {
return errors.New("not implemented")
}).
Build()
Expand All @@ -176,17 +176,17 @@ Here we create a connector using a builtin builder, but you can implement the in
We define a ```Install``` method which only returns an errors when installed.
You can retry to install your connector and see the error on the http response.

The ```Install``` method take a ```task.ConnectorContext[TaskDescriptor]``` parameter :
The ```Install``` method take a ```task.ConnectorContext``` parameter :
```go
type ConnectorContext[TaskDescriptor payments.TaskDescriptor] interface {
type ConnectorContext interface {
Context() context.Context
Scheduler() Scheduler[TaskDescriptor]
}
```

Basically this context provides two things :
* a ```context.Context``` : If the connector make long-running processing, it should listen on this context to abort if necessary.
* a ```Scheduler[TaskDescriptor]```: A scheduler to run tasks
* a ```Scheduler```: A scheduler to run tasks

But, what is a task ?

Expand Down Expand Up @@ -214,7 +214,7 @@ type (
Add some logic on our connector :
```go
...
WithInstall(func(ctx task.ConnectorContext[TaskDescriptor]) error {
WithInstall(func(ctx task.ConnectorContext) error {
return ctx.Scheduler().Schedule("directory", true)
}).
...
Expand All @@ -232,10 +232,10 @@ So, when calling ```ctx.Scheduler().Schedule("directory")```, the framework will
Let's implement the resolve method :
```go
...
WithInstall(func(ctx task.ConnectorContext[TaskDescriptor]) error {
WithInstall(func(ctx task.ConnectorContext) error {
return ctx.Scheduler().Schedule("directory")
}).
WithResolve(func(descriptor TaskDescriptor) task.Task {
WithResolve(func(descriptor models.TaskDescriptor) task.Task {
if descriptor == "directory" {
return func() {
// TODO
Expand All @@ -254,7 +254,7 @@ Now, we have to implement the logic for each task.
Let's start with the main task which read the directory :
```go
...
WithResolve(func(descriptor TaskDescriptor) task.Task {
WithResolve(func(descriptor models.TaskDescriptor) task.Task {
if descriptor == "directory" {
return func(ctx context.Context, logget sharedlogging.Logger, scheduler task.Scheduler)
for {
Expand Down Expand Up @@ -511,15 +511,15 @@ func (cfg Config) Validate() error {
return nil
}

var Loader = integration.NewLoaderBuilder[Config, TaskDescriptor]("example").
WithLoad(func(logger sharedlogging.Logger, config Config) integration.Connector[TaskDescriptor] {
return integration.NewConnectorBuilder[TaskDescriptor]().
WithInstall(func(ctx task.ConnectorContext[TaskDescriptor]) error {
var Loader = integration.NewLoaderBuilder[Config]("example").
WithLoad(func(logger sharedlogging.Logger, config Config) integration.Connector {
return integration.NewConnectorBuilder().
WithInstall(func(ctx task.ConnectorContext) error {
return ctx.Scheduler().Schedule("directory", false)
}).
WithResolve(func(descriptor TaskDescriptor) task.Task {
WithResolve(func(descriptor models.TaskDescriptor) task.Task {
if descriptor == "directory" {
return func(ctx context.Context, logger sharedlogging.Logger, scheduler task.Scheduler[TaskDescriptor]) error {
return func(ctx context.Context, logger sharedlogging.Logger, scheduler task.Scheduler) error {
for {
select {
case <-ctx.Done():
Expand Down
8 changes: 3 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,13 @@ require (
github.com/ThreeDotsLabs/watermill v1.1.1
github.com/bombsimon/logrusr/v3 v3.1.0
github.com/davecgh/go-spew v1.1.1
github.com/formancehq/go-libs v1.2.0
github.com/formancehq/go-libs/sharedotlp v0.0.0-20221123112229-2c8ab193c63c
github.com/gibson042/canonicaljson-go v1.0.3
github.com/formancehq/go-libs v1.3.0
github.com/formancehq/go-libs/sharedapi v0.0.0-20221228150855-8e3cef21df97
github.com/formancehq/go-libs/sharedotlp v0.0.0-20221228150855-8e3cef21df97
github.com/google/uuid v1.3.0
github.com/gorilla/mux v1.8.0
github.com/jackc/pgx/v5 v5.2.0
github.com/lib/pq v1.10.7
github.com/pborman/uuid v1.2.1
github.com/pkg/errors v0.9.1
github.com/pressly/goose/v3 v3.7.0
github.com/rs/cors v1.8.2
Expand All @@ -30,7 +29,6 @@ require (
github.com/uptrace/bun/extra/bunotel v1.1.9
github.com/uptrace/opentelemetry-go-extra/otellogrus v0.1.17
github.com/xdg-go/scram v1.1.2
go.mongodb.org/mongo-driver v1.11.1
go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux v0.37.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.37.0
go.opentelemetry.io/otel v1.11.2
Expand Down
26 changes: 7 additions & 19 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,12 @@ github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/formancehq/go-libs v1.2.0 h1:tiPl3usXJD1stSXBonpu1lL/ACD+m6Qh/rinptc9qag=
github.com/formancehq/go-libs v1.2.0/go.mod h1:9pIcaXQR4O1biXDfhFurYJZw1piU6sJk+0Vqvu+92ng=
github.com/formancehq/go-libs/sharedotlp v0.0.0-20221123112229-2c8ab193c63c h1:xzGPlzwbAzotpvY6rU0/OtYruK/4VDJpMX+QcagbYJM=
github.com/formancehq/go-libs/sharedotlp v0.0.0-20221123112229-2c8ab193c63c/go.mod h1:6Pj/5A7XODoIyN/k5qauu1GAHex/A5P4j+7FmkD2TGI=
github.com/formancehq/go-libs v1.3.0 h1:Ogs/B9FcoGHl2yF0TeTrBoGejKQk0G7XH6pFwgCod3U=
github.com/formancehq/go-libs v1.3.0/go.mod h1:9pIcaXQR4O1biXDfhFurYJZw1piU6sJk+0Vqvu+92ng=
github.com/formancehq/go-libs/sharedapi v0.0.0-20221228150855-8e3cef21df97 h1:9pP+VnP7C7dJpWuPlayPainZ01kqcIVu13nSf1wMVto=
github.com/formancehq/go-libs/sharedapi v0.0.0-20221228150855-8e3cef21df97/go.mod h1:PMf25p7rXNJkc/LIwvf0AmGfAo1NqwQG+5emONMrurA=
github.com/formancehq/go-libs/sharedotlp v0.0.0-20221228150855-8e3cef21df97 h1:png26T7Aot5+xNIoI29jo5VNA19rr/t0cGYR6NYW5qI=
github.com/formancehq/go-libs/sharedotlp v0.0.0-20221228150855-8e3cef21df97/go.mod h1:sY3SY+G3EDNd9sELK6UbDYx3Ah+hJJsEnBU9Dq28ZSw=
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE=
github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY=
Expand Down Expand Up @@ -169,7 +171,6 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
Expand Down Expand Up @@ -200,7 +201,6 @@ github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLe
github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
Expand Down Expand Up @@ -262,7 +262,6 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.15.13 h1:NFn1Wr8cfnenSJSA46lLq4wHCcBzKTSjnBIexDMMOV0=
github.com/klauspost/compress v1.15.13/go.mod h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
Expand Down Expand Up @@ -292,16 +291,14 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw=
github.com/pborman/uuid v1.2.1/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k=
github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8=
github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU=
github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek=
github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM=
github.com/pierrec/lz4/v4 v4.1.17 h1:kV4Ip+/hUBC+8T6+2EgburRtkE9ef4nbY3f4dFhGjMc=
github.com/pierrec/lz4/v4 v4.1.17/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
Expand Down Expand Up @@ -365,8 +362,6 @@ github.com/stripe/stripe-go/v72 v72.122.0 h1:eRXWqnEwGny6dneQ5BsxGzUCED5n180u8n6
github.com/stripe/stripe-go/v72 v72.122.0/go.mod h1:QwqJQtduHubZht9mek5sds9CtQcKFdsykV9ZepRWwo0=
github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs=
github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0=
github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc h1:9lRDQMhESg+zvGYmW5DyG0UqvY96Bu5QYsTLvCHdrgo=
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc/go.mod h1:bciPuU6GHm1iF1pBvUfxfsH0Wmnc2VbpgvbI9ZWuIRs=
github.com/uptrace/bun v1.1.9 h1:6zs+YJcgw8oj67c+YmI8edQokDFeyR4BE/ykNWjGYYs=
Expand All @@ -389,20 +384,15 @@ github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAh
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY=
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8=
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
go.mongodb.org/mongo-driver v1.11.1 h1:QP0znIRTuL0jf1oBQoAoM0C6ZJfBK4kx0Uumtv1A7w8=
go.mongodb.org/mongo-driver v1.11.1/go.mod h1:s7p5vEtfbeR1gYi6pnj3c3/urpbLv2T5Sfd6Rp2HBB8=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
Expand Down Expand Up @@ -460,7 +450,6 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
golang.org/x/crypto v0.4.0 h1:UVQgzMY87xqpKNgb+kDsll2Igd33HszWHFLmpaRMq/8=
golang.org/x/crypto v0.4.0/go.mod h1:3quD/ATkf6oY+rnes5c3ExXTbLc8mueNue5/DoinL80=
Expand Down Expand Up @@ -557,7 +546,6 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
Expand Down
Loading

0 comments on commit b80d1ce

Please sign in to comment.