Skip to content

Commit

Permalink
Add containerd tests (#49)
Browse files Browse the repository at this point in the history
* wip: add containerd tests

Signed-off-by: Marcos Lilljedahl <[email protected]>

* E2E exec tests daggerized for containerd

Signed-off-by: Matias Pan <[email protected]>

---------

Signed-off-by: Marcos Lilljedahl <[email protected]>
Signed-off-by: Matias Pan <[email protected]>
Co-authored-by: Matias Pan <[email protected]>
  • Loading branch information
marcosnils and matipan authored Jul 19, 2024
1 parent 3fe737e commit 3638de2
Show file tree
Hide file tree
Showing 9 changed files with 198 additions and 131 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ on:
name: E2E Tests

jobs:
test-docker:
test-exec:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Docker E2E Test
uses: dagger/dagger-for-github@v5
- name: Exec E2E Tests
uses: dagger/dagger-for-github@v6
with:
verb: call
module: ./ci
args: test-exec --src . --tool docker stdout
args: test-exec --src .
4 changes: 2 additions & 2 deletions ci/dagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
"dependencies": [
{
"name": "go",
"source": "github.com/vito/daggerverse/go@f7223d2d82fb91622cbb7954177388d995a98d59"
"source": "github.com/vito/daggerverse/go@36e8ce2f9eb52cd73c4d5397ed4ed65912d7b6ac"
}
],
"source": ".",
"engineVersion": "v0.11.9"
"engineVersion": "v0.12.0"
}
24 changes: 12 additions & 12 deletions ci/go.mod
Original file line number Diff line number Diff line change
@@ -1,16 +1,21 @@
module dagger/ci

go 1.21.7
go 1.22.5

require (
github.com/99designs/gqlgen v0.17.44
github.com/99designs/gqlgen v0.17.49
github.com/Khan/genqlient v0.7.0
github.com/vektah/gqlparser/v2 v2.5.11
github.com/vektah/gqlparser/v2 v2.5.16
go.opentelemetry.io/otel v1.27.0
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0
go.opentelemetry.io/otel/log v0.3.0
go.opentelemetry.io/otel/sdk v1.27.0
go.opentelemetry.io/otel/sdk/log v0.3.0
go.opentelemetry.io/otel/trace v1.27.0
go.opentelemetry.io/proto/otlp v1.3.1
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
golang.org/x/sync v0.7.0
google.golang.org/grpc v1.64.0
Expand All @@ -23,17 +28,12 @@ require (
github.com/google/uuid v1.6.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/sosodev/duration v1.2.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0
github.com/sosodev/duration v1.3.1 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect
go.opentelemetry.io/otel/log v0.3.0
go.opentelemetry.io/otel/metric v1.27.0 // indirect
go.opentelemetry.io/otel/sdk/log v0.3.0
go.opentelemetry.io/proto/otlp v1.3.1
golang.org/x/net v0.25.0 // indirect
golang.org/x/sys v0.20.0 // indirect
golang.org/x/text v0.15.0 // indirect
golang.org/x/net v0.26.0 // indirect
golang.org/x/sys v0.21.0 // indirect
golang.org/x/text v0.16.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect
google.golang.org/protobuf v1.34.1 // indirect
Expand Down
24 changes: 12 additions & 12 deletions ci/go.sum
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
github.com/99designs/gqlgen v0.17.44 h1:OS2wLk/67Y+vXM75XHbwRnNYJcbuJd4OBL76RX3NQQA=
github.com/99designs/gqlgen v0.17.44/go.mod h1:UTCu3xpK2mLI5qcMNw+HKDiEL77it/1XtAjisC4sLwM=
github.com/99designs/gqlgen v0.17.49 h1:b3hNGexHd33fBSAd4NDT/c3NCcQzcAVkknhN9ym36YQ=
github.com/99designs/gqlgen v0.17.49/go.mod h1:tC8YFVZMed81x7UJ7ORUwXF4Kn6SXuucFqQBhN8+BU0=
github.com/Khan/genqlient v0.7.0 h1:GZ1meyRnzcDTK48EjqB8t3bcfYvHArCUUvgOwpz1D4w=
github.com/Khan/genqlient v0.7.0/go.mod h1:HNyy3wZvuYwmW3Y7mkoQLZsa/R5n5yIRajS1kPBvSFM=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
Expand Down Expand Up @@ -27,14 +27,14 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/sosodev/duration v1.2.0 h1:pqK/FLSjsAADWY74SyWDCjOcd5l7H8GSnnOGEB9A1Us=
github.com/sosodev/duration v1.2.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=
github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4=
github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/vektah/gqlparser/v2 v2.5.11 h1:JJxLtXIoN7+3x6MBdtIP59TP1RANnY7pXOaDnADQSf8=
github.com/vektah/gqlparser/v2 v2.5.11/go.mod h1:1rCcfwB2ekJofmluGWXMSEnPMZgbxzwj6FaZ/4OT8Cc=
github.com/vektah/gqlparser/v2 v2.5.16 h1:1gcmLTvs3JLKXckwCwlUagVn/IlV2bwqle0vJ0vy5p8=
github.com/vektah/gqlparser/v2 v2.5.16/go.mod h1:1lz1OeCqgQbQepsGxPVywrjdBHW2T08PUS3pJqepRww=
go.opentelemetry.io/otel v1.27.0 h1:9BZoF3yMK/O1AafMiQTVu0YDj5Ea4hPhxCs7sGva+cg=
go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88 h1:oM0GTNKGlc5qHctWeIGTVyda4iFFalOzMZ3Ehj5rwB4=
Expand Down Expand Up @@ -63,14 +63,14 @@ go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ=
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE=
golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE=
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sys v0.20.0 h1:Od9JTbYCk261bKm4M/mw7AklTlFYIa0bIp9BgSm1S8Y=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.15.0 h1:h1V/4gjBv8v9cjcR6+AR5+/cIYK5N/WAgiv4xlsEtAk=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=
google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ=
google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g=
google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 h1:AgADTJarZTBqgjiUzRgfaBchgYB3/WFTC80GPwsMcRI=
Expand Down
69 changes: 45 additions & 24 deletions ci/main.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// A generated module for Ci functions

//
// This module has been generated via dagger init and serves as a reference to
// basic module structure as you get started with Dagger.
Expand All @@ -16,42 +17,61 @@ package main

import (
"context"
"fmt"
"dagger/ci/internal/dagger"

"golang.org/x/sync/errgroup"
)

type Ci struct{}

func (m *Ci) Build(ctx context.Context, src *Directory) *File {
return dag.Go().FromVersion("1.22-alpine").Build(src, GoBuildOpts{
func (m *Ci) Build(ctx context.Context, src *dagger.Directory) *dagger.File {
return dag.Go().FromVersion("1.22").Build(src, dagger.GoBuildOpts{
Static: true,
}).File("cdebug")
}

func (m *Ci) TestExec(ctx context.Context,
src *Directory,
// +optional
// +default="docker"
tool string,
) (*Container, error) {
if tool != "docker" && tool != "kubernetes" && tool != "containerd" && tool != "nerdctl" {
return nil, fmt.Errorf("tool %s is not supported. Supported values are: kubernetes,containerd,nerdctl,docker")
}
func (m *Ci) TestExec(ctx context.Context, src *dagger.Directory) error {
var g errgroup.Group

if tool != "docker" {
return nil, fmt.Errorf("tool %s is no yet implemented", tool)
}
g.Go(func() error {
ct, err := m.TestDockerExec(ctx, src)
if err != nil {
return err
}
_, err = ct.Stdout(ctx)
return err
})
g.Go(func() error {
_, err := m.TestContainerdExec(ctx, src).Stdout(ctx)
return err
})

switch tool {
case "docker":
return m.TestDockerExec(ctx, src)
default:
return nil, fmt.Errorf("tool %s is no yet implemented", tool)
}
return g.Wait()
}

func (m *Ci) TestContainerdExec(ctx context.Context, src *dagger.Directory) *dagger.Container {
cdebug := m.Build(ctx, src)

return nil, nil
containerd := dag.
Container().
From("tianon/containerd")

return dag.Go().
FromVersion("1.22").
Base().
With(dag.Go().GlobalCache).
WithDirectory("/usr/local/bin", containerd.Directory("/usr/local/bin")).
WithFile("/usr/local/bin/cdebug", cdebug).
WithDirectory("/app/cdebug", src).
WithWorkdir("/app/cdebug").
WithMountedTemp("/var/lib/containerd").
WithExec([]string{"sh", "-c", `
docker-entrypoint.sh containerd &
go test -v ./e2e/exec/containerd_test.go
`}, dagger.ContainerWithExecOpts{InsecureRootCapabilities: true})
}

func (m *Ci) TestDockerExec(ctx context.Context, src *Directory) (*Container, error) {
func (m *Ci) TestDockerExec(ctx context.Context, src *dagger.Directory) (*dagger.Container, error) {
cdebug := m.Build(ctx, src)

docker := dag.
Expand All @@ -70,13 +90,14 @@ func (m *Ci) TestDockerExec(ctx context.Context, src *Directory) (*Container, er
WithEnvVariable("DOCKER_TLS_CERTDIR", "").
WithExec([]string{
"dockerd-entrypoint.sh",
}, ContainerWithExecOpts{
}, dagger.ContainerWithExecOpts{
InsecureRootCapabilities: true,
})

return dag.Go().
FromVersion("1.22-alpine").
Base().
With(dag.Go().GlobalCache).
WithFile("/usr/local/bin/cdebug", cdebug).
WithFile("/usr/local/bin/docker", dockerCli).
WithDirectory("/app/cdebug", src).
Expand Down
10 changes: 5 additions & 5 deletions e2e/exec/containerd_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ func TestExecContainerdSimple(t *testing.T) {

res := icmd.RunCmd(
icmd.Command(
"sudo", "cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q",
"cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q",
"containerd://"+targetID,
"cat", "/etc/os-release",
),
Expand All @@ -34,7 +34,7 @@ func TestExecContainerdHostNamespaces(t *testing.T) {

res := icmd.RunCmd(
icmd.Command(
"sudo", "cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q",
"cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q",
"containerd://"+targetID,
"cat", "/etc/os-release",
),
Expand All @@ -49,7 +49,7 @@ func TestExecContainerdRunAsUser(t *testing.T) {

res := icmd.RunCmd(
icmd.Command(
"sudo", "cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q", "-u", "101:101",
"cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q", "-u", "101:101",
"containerd://"+targetID,
"id", "-u",
),
Expand All @@ -60,7 +60,7 @@ func TestExecContainerdRunAsUser(t *testing.T) {

res = icmd.RunCmd(
icmd.Command(
"sudo", "cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q", "-u", "101:101",
"cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q", "-u", "101:101",
"containerd://"+targetID,
"busybox",
),
Expand All @@ -75,7 +75,7 @@ func TestExecContainerdNixery(t *testing.T) {

res := icmd.RunCmd(
icmd.Command(
"sudo", "cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q",
"cdebug", "exec", "-n", fixture.ContainerdCtrNamespace, "--rm", "-q",
"--image", "nixery.dev/shell/vim",
"containerd://"+targetID,
"vim", "--version",
Expand Down
2 changes: 1 addition & 1 deletion e2e/internal/fixture/fixture.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ const (

func ctrCmd(args ...string) icmd.Cmd {
return icmd.Command(
"sudo", append([]string{"-E", "ctr", "--namespace", ContainerdCtrNamespace}, args...)...,
"ctr", append([]string{"--namespace", ContainerdCtrNamespace}, args...)...,
)
}

Expand Down
53 changes: 36 additions & 17 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,25 @@ require (
github.com/opencontainers/runtime-spec v1.2.0
github.com/sirupsen/logrus v1.9.3
github.com/spf13/cobra v1.8.0
golang.org/x/sys v0.19.0
golang.org/x/sys v0.21.0
gotest.tools v2.2.0+incompatible
gotest.tools/v3 v3.4.0
k8s.io/api v0.29.3
k8s.io/apimachinery v0.29.3
k8s.io/client-go v0.29.3
)

require github.com/stretchr/objx v0.5.2 // indirect

require (
github.com/99designs/gqlgen v0.17.49
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0 // indirect
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
github.com/Khan/genqlient v0.7.0
github.com/Microsoft/go-winio v0.6.1 // indirect
github.com/Microsoft/hcsshim v0.11.4 // indirect
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
github.com/containerd/cgroups v1.1.0 // indirect
github.com/containerd/cgroups/v3 v3.0.2 // indirect
github.com/containerd/continuity v0.4.2 // indirect
Expand All @@ -39,13 +44,13 @@ require (
github.com/containerd/ttrpc v1.2.3 // indirect
github.com/containerd/typeurl/v2 v2.1.1 // indirect
github.com/containernetworking/cni v1.1.2 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.3 // indirect
github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c // indirect
github.com/docker/go-units v0.5.0 // indirect
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
github.com/felixge/httpsnoop v1.0.3 // indirect
github.com/go-logr/logr v1.3.0 // indirect
github.com/go-logr/logr v1.4.1 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-openapi/jsonpointer v0.19.6 // indirect
github.com/go-openapi/jsonreference v0.20.2 // indirect
Expand All @@ -57,6 +62,7 @@ require (
github.com/google/go-cmp v0.6.0 // indirect
github.com/google/gofuzz v1.2.0 // indirect
github.com/gorilla/websocket v1.5.0 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 // indirect
github.com/imdario/mergo v0.3.6 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
Expand All @@ -80,26 +86,39 @@ require (
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/sosodev/duration v1.3.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/urfave/cli v1.22.12 // indirect
github.com/vektah/gqlparser/v2 v2.5.16
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect
go.opentelemetry.io/otel v1.19.0 // indirect
go.opentelemetry.io/otel/metric v1.19.0 // indirect
go.opentelemetry.io/otel/trace v1.19.0 // indirect
golang.org/x/mod v0.14.0 // indirect
golang.org/x/net v0.19.0 // indirect
golang.org/x/oauth2 v0.10.0 // indirect
golang.org/x/sync v0.5.0 // indirect
golang.org/x/term v0.15.0 // indirect
golang.org/x/text v0.14.0 // indirect
go.opentelemetry.io/otel v1.27.0
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc v0.0.0-20240518090000-14441aefdf88
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.3.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.27.0
go.opentelemetry.io/otel/log v0.3.0
go.opentelemetry.io/otel/metric v1.27.0 // indirect
go.opentelemetry.io/otel/sdk v1.27.0
go.opentelemetry.io/otel/sdk/log v0.3.0
go.opentelemetry.io/otel/trace v1.27.0
go.opentelemetry.io/proto/otlp v1.3.1
golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa
golang.org/x/mod v0.18.0 // indirect
golang.org/x/net v0.26.0 // indirect
golang.org/x/oauth2 v0.20.0 // indirect
golang.org/x/sync v0.7.0
golang.org/x/term v0.21.0 // indirect
golang.org/x/text v0.16.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.16.1 // indirect
google.golang.org/appengine v1.6.7 // indirect
golang.org/x/tools v0.22.0 // indirect
google.golang.org/genproto v0.0.0-20230711160842-782d3b101e98 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d // indirect
google.golang.org/grpc v1.58.3 // indirect
google.golang.org/protobuf v1.33.0 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291 // indirect
google.golang.org/grpc v1.64.0
google.golang.org/protobuf v1.34.1 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand Down
Loading

0 comments on commit 3638de2

Please sign in to comment.