diff --git a/.drone.yml b/.drone.yml index b4341895..70cce1b8 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,12 +7,12 @@ pool: steps: - name: test - image: golang:1.18 + image: golang:1.20 commands: - go test ./... - name: build - image: golang:1.18 + image: golang:1.20 commands: - sh .drone.sh depends_on: @@ -56,7 +56,7 @@ pool: steps: - name: build - image: golang:1.18 + image: golang:1.20 commands: - sh .drone.sh - name: publish_linux_arm diff --git a/drone/execold/_backup/exec.go b/drone/execold/_backup/exec.go deleted file mode 100644 index 5cde0f0c..00000000 --- a/drone/execold/_backup/exec.go +++ /dev/null @@ -1,493 +0,0 @@ -package exec - -import ( - "context" - "io" - "log" - "os" - "path" - "path/filepath" - "runtime" - "strings" - "time" - - "github.com/cncd/pipeline/pipeline" - "github.com/cncd/pipeline/pipeline/backend" - "github.com/cncd/pipeline/pipeline/backend/docker" - "github.com/cncd/pipeline/pipeline/frontend" - "github.com/cncd/pipeline/pipeline/frontend/yaml" - "github.com/cncd/pipeline/pipeline/frontend/yaml/compiler" - "github.com/cncd/pipeline/pipeline/frontend/yaml/linter" - "github.com/cncd/pipeline/pipeline/interrupt" - "github.com/cncd/pipeline/pipeline/multipart" - "github.com/drone/envsubst" - - "github.com/urfave/cli" -) - -// Command exports the exec command. -var Command = cli.Command{ - Name: "exec", - Usage: "execute a local build", - ArgsUsage: "[path/to/.drone.yml]", - Action: func(c *cli.Context) { - if err := exec(c); err != nil { - log.Fatalln(err) - } - }, - Flags: []cli.Flag{ - cli.BoolTFlag{ - Name: "local", - Usage: "build from local directory", - EnvVar: "DRONE_LOCAL", - }, - cli.DurationFlag{ - Name: "timeout", - Usage: "build timeout", - Value: time.Hour, - EnvVar: "DRONE_TIMEOUT", - }, - cli.StringSliceFlag{ - Name: "volumes", - Usage: "build volumes", - EnvVar: "DRONE_VOLUMES", - }, - cli.StringSliceFlag{ - Name: "network", - Usage: "external networks", - EnvVar: "DRONE_NETWORKS", - }, - cli.StringFlag{ - Name: "prefix", - Value: "drone", - Usage: "prefix containers created by drone", - EnvVar: "DRONE_DOCKER_PREFIX", - Hidden: true, - }, - cli.StringSliceFlag{ - Name: "privileged", - Usage: "privileged plugins", - Value: &cli.StringSlice{ - "plugins/docker", - "plugins/acr", - "plugins/ecr", - "plugins/gcr", - "plugins/heroku", - }, - }, - - // - // workspace default - // - cli.StringFlag{ - Name: "workspace-base", - Value: "/drone", - EnvVar: "DRONE_WORKSPACE_BASE", - }, - cli.StringFlag{ - Name: "workspace-path", - Value: "src", - EnvVar: "DRONE_WORKSPACE_PATH", - }, - // - // netrc parameters - // - cli.StringFlag{ - Name: "netrc-username", - EnvVar: "DRONE_NETRC_USERNAME", - }, - cli.StringFlag{ - Name: "netrc-password", - EnvVar: "DRONE_NETRC_PASSWORD", - }, - cli.StringFlag{ - Name: "netrc-machine", - EnvVar: "DRONE_NETRC_MACHINE", - }, - // - // metadata parameters - // - cli.StringFlag{ - Name: "system-arch", - Value: "linux/amd64", - EnvVar: "DRONE_SYSTEM_ARCH", - }, - cli.StringFlag{ - Name: "system-name", - Value: "pipec", - EnvVar: "DRONE_SYSTEM_NAME", - }, - cli.StringFlag{ - Name: "system-link", - Value: "https://github.com/cncd/pipec", - EnvVar: "DRONE_SYSTEM_LINK", - }, - cli.StringFlag{ - Name: "repo-name", - EnvVar: "DRONE_REPO_NAME", - }, - cli.StringFlag{ - Name: "repo-link", - EnvVar: "DRONE_REPO_LINK", - }, - cli.StringFlag{ - Name: "repo-remote-url", - EnvVar: "DRONE_REPO_REMOTE", - }, - cli.StringFlag{ - Name: "repo-private", - EnvVar: "DRONE_REPO_PRIVATE", - }, - cli.IntFlag{ - Name: "build-number", - EnvVar: "DRONE_BUILD_NUMBER", - }, - cli.IntFlag{ - Name: "parent-build-number", - EnvVar: "DRONE_PARENT_BUILD_NUMBER", - }, - cli.Int64Flag{ - Name: "build-created", - EnvVar: "DRONE_BUILD_CREATED", - }, - cli.Int64Flag{ - Name: "build-started", - EnvVar: "DRONE_BUILD_STARTED", - }, - cli.Int64Flag{ - Name: "build-finished", - EnvVar: "DRONE_BUILD_FINISHED", - }, - cli.StringFlag{ - Name: "build-status", - EnvVar: "DRONE_BUILD_STATUS", - }, - cli.StringFlag{ - Name: "build-event", - EnvVar: "DRONE_BUILD_EVENT", - }, - cli.StringFlag{ - Name: "build-link", - EnvVar: "DRONE_BUILD_LINK", - }, - cli.StringFlag{ - Name: "build-target", - EnvVar: "DRONE_BUILD_TARGET", - }, - cli.StringFlag{ - Name: "commit-sha", - EnvVar: "DRONE_COMMIT_SHA", - }, - cli.StringFlag{ - Name: "commit-ref", - EnvVar: "DRONE_COMMIT_REF", - }, - cli.StringFlag{ - Name: "commit-refspec", - EnvVar: "DRONE_COMMIT_REFSPEC", - }, - cli.StringFlag{ - Name: "commit-branch", - EnvVar: "DRONE_COMMIT_BRANCH", - }, - cli.StringFlag{ - Name: "commit-message", - EnvVar: "DRONE_COMMIT_MESSAGE", - }, - cli.StringFlag{ - Name: "commit-author-name", - EnvVar: "DRONE_COMMIT_AUTHOR_NAME", - }, - cli.StringFlag{ - Name: "commit-author-avatar", - EnvVar: "DRONE_COMMIT_AUTHOR_AVATAR", - }, - cli.StringFlag{ - Name: "commit-author-email", - EnvVar: "DRONE_COMMIT_AUTHOR_EMAIL", - }, - cli.IntFlag{ - Name: "prev-build-number", - EnvVar: "DRONE_PREV_BUILD_NUMBER", - }, - cli.Int64Flag{ - Name: "prev-build-created", - EnvVar: "DRONE_PREV_BUILD_CREATED", - }, - cli.Int64Flag{ - Name: "prev-build-started", - EnvVar: "DRONE_PREV_BUILD_STARTED", - }, - cli.Int64Flag{ - Name: "prev-build-finished", - EnvVar: "DRONE_PREV_BUILD_FINISHED", - }, - cli.StringFlag{ - Name: "prev-build-status", - EnvVar: "DRONE_PREV_BUILD_STATUS", - }, - cli.StringFlag{ - Name: "prev-build-event", - EnvVar: "DRONE_PREV_BUILD_EVENT", - }, - cli.StringFlag{ - Name: "prev-build-link", - EnvVar: "DRONE_PREV_BUILD_LINK", - }, - cli.StringFlag{ - Name: "prev-commit-sha", - EnvVar: "DRONE_PREV_COMMIT_SHA", - }, - cli.StringFlag{ - Name: "prev-commit-ref", - EnvVar: "DRONE_PREV_COMMIT_REF", - }, - cli.StringFlag{ - Name: "prev-commit-refspec", - EnvVar: "DRONE_PREV_COMMIT_REFSPEC", - }, - cli.StringFlag{ - Name: "prev-commit-branch", - EnvVar: "DRONE_PREV_COMMIT_BRANCH", - }, - cli.StringFlag{ - Name: "prev-commit-message", - EnvVar: "DRONE_PREV_COMMIT_MESSAGE", - }, - cli.StringFlag{ - Name: "prev-commit-author-name", - EnvVar: "DRONE_PREV_COMMIT_AUTHOR_NAME", - }, - cli.StringFlag{ - Name: "prev-commit-author-avatar", - EnvVar: "DRONE_PREV_COMMIT_AUTHOR_AVATAR", - }, - cli.StringFlag{ - Name: "prev-commit-author-email", - EnvVar: "DRONE_PREV_COMMIT_AUTHOR_EMAIL", - }, - cli.IntFlag{ - Name: "job-number", - EnvVar: "DRONE_JOB_NUMBER", - }, - cli.StringSliceFlag{ - Name: "env, e", - EnvVar: "DRONE_ENV", - }, - }, -} - -func exec(c *cli.Context) error { - file := c.Args().First() - if file == "" { - file = ".drone.yml" - } - - metadata := metadataFromContext(c) - environ := metadata.Environ() - secrets := []compiler.Secret{} - for k, v := range metadata.EnvironDrone() { - environ[k] = v - } - for key, val := range metadata.Job.Matrix { - environ[key] = val - secrets = append(secrets, compiler.Secret{ - Name: key, - Value: val, - }) - } - - droneEnv := make(map[string]string) - for _, env := range c.StringSlice("env") { - envs := strings.SplitN(env, "=", 2) - droneEnv[envs[0]] = envs[1] - } - - tmpl, err := envsubst.ParseFile(file) - if err != nil { - return err - } - confstr, err := tmpl.Execute(func(name string) string { - return environ[name] - }) - if err != nil { - return err - } - - conf, err := yaml.ParseString(confstr) - if err != nil { - return err - } - - // configure volumes for local execution - volumes := c.StringSlice("volumes") - if c.Bool("local") { - var ( - workspaceBase = conf.Workspace.Base - workspacePath = conf.Workspace.Path - ) - if workspaceBase == "" { - workspaceBase = c.String("workspace-base") - } - if workspacePath == "" { - workspacePath = c.String("workspace-path") - } - dir, _ := filepath.Abs(filepath.Dir(file)) - - if runtime.GOOS == "windows" { - dir = convertPathForWindows(dir) - } - volumes = append(volumes, c.String("prefix")+"_default:"+workspaceBase) - volumes = append(volumes, dir+":"+path.Join(workspaceBase, workspacePath)) - } - - // lint the yaml file - if lerr := linter.New(linter.WithTrusted(true)).Lint(conf); lerr != nil { - return lerr - } - - // compiles the yaml file - compiled := compiler.New( - compiler.WithEscalated( - c.StringSlice("privileged")..., - ), - compiler.WithVolumes(volumes...), - compiler.WithWorkspace( - c.String("workspace-base"), - c.String("workspace-path"), - ), - compiler.WithNetworks( - c.StringSlice("network")..., - ), - compiler.WithPrefix( - c.String("prefix"), - ), - compiler.WithProxy(), - compiler.WithLocal( - c.Bool("local"), - ), - compiler.WithNetrc( - c.String("netrc-username"), - c.String("netrc-password"), - c.String("netrc-machine"), - ), - compiler.WithMetadata(metadata), - compiler.WithSecret(secrets...), - compiler.WithEnviron(droneEnv), - ).Compile(conf) - - engine, err := docker.NewEnv() - if err != nil { - return err - } - - ctx, cancel := context.WithTimeout(context.Background(), c.Duration("timeout")) - defer cancel() - ctx = interrupt.WithContext(ctx) - - return pipeline.New(compiled, - pipeline.WithContext(ctx), - pipeline.WithTracer(pipeline.DefaultTracer), - pipeline.WithLogger(defaultLogger), - pipeline.WithEngine(engine), - ).Run() -} - -// return the metadata from the cli context. -func metadataFromContext(c *cli.Context) frontend.Metadata { - return frontend.Metadata{ - Repo: frontend.Repo{ - Name: c.String("repo-name"), - Link: c.String("repo-link"), - Remote: c.String("repo-remote-url"), - Private: c.Bool("repo-private"), - }, - Curr: frontend.Build{ - Number: c.Int("build-number"), - Parent: c.Int("parent-build-number"), - Created: c.Int64("build-created"), - Started: c.Int64("build-started"), - Finished: c.Int64("build-finished"), - Status: c.String("build-status"), - Event: c.String("build-event"), - Link: c.String("build-link"), - Target: c.String("build-target"), - Commit: frontend.Commit{ - Sha: c.String("commit-sha"), - Ref: c.String("commit-ref"), - Refspec: c.String("commit-refspec"), - Branch: c.String("commit-branch"), - Message: c.String("commit-message"), - Author: frontend.Author{ - Name: c.String("commit-author-name"), - Email: c.String("commit-author-email"), - Avatar: c.String("commit-author-avatar"), - }, - }, - }, - Prev: frontend.Build{ - Number: c.Int("prev-build-number"), - Created: c.Int64("prev-build-created"), - Started: c.Int64("prev-build-started"), - Finished: c.Int64("prev-build-finished"), - Status: c.String("prev-build-status"), - Event: c.String("prev-build-event"), - Link: c.String("prev-build-link"), - Commit: frontend.Commit{ - Sha: c.String("prev-commit-sha"), - Ref: c.String("prev-commit-ref"), - Refspec: c.String("prev-commit-refspec"), - Branch: c.String("prev-commit-branch"), - Message: c.String("prev-commit-message"), - Author: frontend.Author{ - Name: c.String("prev-commit-author-name"), - Email: c.String("prev-commit-author-email"), - Avatar: c.String("prev-commit-author-avatar"), - }, - }, - }, - Job: frontend.Job{ - Number: c.Int("job-number"), - Matrix: availableEnvironment(), - }, - Sys: frontend.System{ - Name: c.String("system-name"), - Link: c.String("system-link"), - Arch: c.String("system-arch"), - }, - } -} - -func availableEnvironment() map[string]string { - result := make(map[string]string, 0) - - for _, env := range os.Environ() { - pair := strings.SplitN(env, "=", 2) - result[pair[0]] = pair[1] - } - - return result -} - -func convertPathForWindows(path string) string { - base := filepath.VolumeName(path) - if len(base) == 2 { - path = strings.TrimPrefix(path, base) - base = strings.ToLower(strings.TrimSuffix(base, ":")) - return "/" + base + filepath.ToSlash(path) - } - - return filepath.ToSlash(path) -} - -var defaultLogger = pipeline.LogFunc(func(proc *backend.Step, rc multipart.Reader) error { - part, err := rc.NextPart() - if err != nil { - return err - } - - logstream := NewLineWriter(proc.Alias) - io.Copy(logstream, part) - - return nil -}) diff --git a/drone/execold/_backup/line.go b/drone/execold/_backup/line.go deleted file mode 100644 index 865d6fc3..00000000 --- a/drone/execold/_backup/line.go +++ /dev/null @@ -1,67 +0,0 @@ -package exec - -import ( - "fmt" - "os" - "strings" - "time" -) - -// Identifies the type of line in the logs. -const ( - LineStdout int = iota - LineStderr - LineExitCode - LineMetadata - LineProgress -) - -// Line is a line of console output. -type Line struct { - Proc string `json:"proc,omitempty"` - Time int64 `json:"time,omitempty"` - Type int `json:"type,omitempty"` - Pos int `json:"pos,omitempty"` - Out string `json:"out,omitempty"` -} - -// LineWriter sends logs to the client. -type LineWriter struct { - name string - num int - now time.Time - rep *strings.Replacer - lines []*Line -} - -// NewLineWriter returns a new line reader. -func NewLineWriter(name string) *LineWriter { - w := new(LineWriter) - w.name = name - w.num = 0 - w.now = time.Now().UTC() - - return w -} - -func (w *LineWriter) Write(p []byte) (n int, err error) { - out := string(p) - if w.rep != nil { - out = w.rep.Replace(out) - } - - line := &Line{ - Out: out, - Proc: w.name, - Pos: w.num, - Time: int64(time.Since(w.now).Seconds()), - Type: LineStdout, - } - - fmt.Fprintf(os.Stderr, "[%s:L%d:%ds] %s", w.name, w.num, int64(time.Since(w.now).Seconds()), out) - - w.num++ - - w.lines = append(w.lines, line) - return len(p), nil -} diff --git a/drone/execold/env.go b/drone/execold/env.go deleted file mode 100644 index 3db3091e..00000000 --- a/drone/execold/env.go +++ /dev/null @@ -1,77 +0,0 @@ -package execold - -import ( - "os" - "strings" - - "github.com/urfave/cli" -) - -func getEnv(c *cli.Context) map[string]string { - env := prefixedEnviron( - os.Environ(), - ) - if c.IsSet("branch") { - v := c.String("branch") - env["DRONE_BRANCH"] = v - env["DRONE_COMMIT_BRANCH"] = v - env["DRONE_TARGET_BRANCH"] = v - } - if c.IsSet("event") { - v := c.String("event") - env["DRONE_EVENT"] = v - } - if c.IsSet("instance") { - v := c.String("instance") - env["DRONE_SYSTEM_HOST"] = v - env["DRONE_SYSTEM_HOSTNAME"] = v - } - if c.IsSet("ref") { - v := c.String("ref") - env["DRONE_COMMIT_REF"] = v - } - if c.IsSet("sha") { - v := c.String("sha") - env["DRONE_COMMIT_SHA"] = v - } - if c.IsSet("repo") { - v := c.String("repo") - env["DRONE_REPO"] = v - } - if c.IsSet("deploy-to") { - v := c.String("deploy-to") - env["DRONE_DEPLOY_TO"] = v - } - return env -} - -// helper function returns all environment variables -// prefixed with DRONE_. -func prefixedEnviron(environ []string) map[string]string { - envs := map[string]string{} - for _, env := range environ { - if !strings.HasPrefix(env, "DRONE_") { - continue - } - parts := strings.SplitN(env, "=", 2) - if len(parts) != 2 { - continue - } - key := parts[0] - val := parts[1] - envs[key] = val - } - return envs -} - -// helper function combines one or more maps of environment -// variables into a single map. -func combineEnviron(env ...map[string]string) map[string]string { - c := map[string]string{} - for _, e := range env { - for k, v := range e { - c[k] = v - } - } - return c -} diff --git a/drone/execold/exec.go b/drone/execold/exec.go deleted file mode 100644 index 32953df0..00000000 --- a/drone/execold/exec.go +++ /dev/null @@ -1,367 +0,0 @@ -package execold - -import ( - "context" - "errors" - "fmt" - "io/ioutil" - "log" - "net/url" - "os" - "strconv" - "time" - - "github.com/drone/envsubst" - - "github.com/drone/drone-runtime/engine" - "github.com/drone/drone-runtime/engine/docker" - "github.com/drone/drone-runtime/runtime" - "github.com/drone/drone-runtime/runtime/term" - "github.com/drone/drone-yaml/yaml" - "github.com/drone/drone-yaml/yaml/compiler" - "github.com/drone/drone-yaml/yaml/compiler/transform" - "github.com/drone/drone-yaml/yaml/converter" - "github.com/drone/drone-yaml/yaml/linter" - "github.com/drone/signal" - - "github.com/joho/godotenv" - "github.com/mattn/go-colorable" - "github.com/mattn/go-isatty" - "github.com/urfave/cli" -) - -var tty = isatty.IsTerminal(os.Stdout.Fd()) - -// Command exports the exec command. -var Command = cli.Command{ - Name: "exec_old", - Usage: "(deprecated) execute a local build", - Hidden: true, - ArgsUsage: "[path/to/.drone.yml]", - Action: func(c *cli.Context) { - if err := exec(c); err != nil { - log.Fatalln(err) - } - }, - Flags: []cli.Flag{ - cli.StringFlag{ - Name: "pipeline", - Usage: "Name of the pipeline to execute", - }, - cli.StringSliceFlag{ - Name: "include", - Usage: "Name of steps to include", - }, - cli.StringSliceFlag{ - Name: "exclude", - Usage: "Name of steps to exclude", - }, - cli.StringFlag{ - Name: "resume-at", - Usage: "Name of start to resume at", - }, - cli.BoolFlag{ - Name: "clone", - Usage: "enable the clone step", - }, - cli.BoolFlag{ - Name: "trusted", - Usage: "build is trusted", - }, - cli.DurationFlag{ - Name: "timeout", - Usage: "build timeout", - Value: time.Hour, - }, - cli.StringSliceFlag{ - Name: "volume", - Usage: "build volumes", - }, - cli.StringSliceFlag{ - Name: "network", - Usage: "external networks", - }, - cli.StringSliceFlag{ - Name: "registry", - Usage: "registry", - }, - cli.StringFlag{ - Name: "secret-file", - Usage: "secret file, define values that can be used with from_secret", - }, - cli.StringFlag{ - Name: "env-file", - Usage: "env file", - }, - cli.StringSliceFlag{ - Name: "privileged", - Usage: "privileged plugins", - Value: &cli.StringSlice{ - "plugins/docker", - "plugins/acr", - "plugins/ecr", - "plugins/gcr", - "plugins/heroku", - }, - }, - - // - // netrc parameters - // - cli.StringFlag{ - Name: "netrc-username", - }, - cli.StringFlag{ - Name: "netrc-password", - }, - cli.StringFlag{ - Name: "netrc-machine", - }, - - // - // trigger parameters - // - - cli.StringFlag{ - Name: "branch", - Usage: "branch name", - }, - cli.StringFlag{ - Name: "event", - Usage: "build event name (push, pull_request, etc)", - }, - cli.StringFlag{ - Name: "instance", - Usage: "instance hostname (e.g. drone.company.com)", - }, - cli.StringFlag{ - Name: "ref", - Usage: "git reference", - }, - cli.StringFlag{ - Name: "sha", - Usage: "git sha", - }, - cli.StringFlag{ - Name: "repo", - Usage: "git repository name (e.g. octocat/hello-world)", - }, - cli.StringFlag{ - Name: "deploy-to", - Usage: "deployment target (e.g. production)", - }, - }, -} - -func exec(c *cli.Context) error { - file := c.Args().First() - if file == "" { - file = ".drone.yml" - } - - data, err := ioutil.ReadFile(file) - if err != nil { - return err - } - - environ := getEnv(c) - dataS, err := envsubst.Eval(string(data), func(name string) string { - return environ[name] - }) - if err != nil { - return err - } - - // this code is temporarily in place to detect and convert - // the legacy yaml configuration file to the new format. - dataS, err = converter.ConvertString(dataS, converter.Metadata{ - Filename: file, - Ref: c.String("ref"), - }) - if err != nil { - return err - } - - manifest, err := yaml.ParseString(dataS) - if err != nil { - return err - } - - var pipeline *yaml.Pipeline - filter := c.String("pipeline") - for _, resource := range manifest.Resources { - v, ok := resource.(*yaml.Pipeline) - if !ok { - continue - } - - if v.Type != "" && v.Type != "docker" { - return fmt.Errorf("pipeline type (%s) is not supported with 'drone exec'", v.Type) - } - - if filter == "" || filter == v.Name { - pipeline = v - break - } - } - if pipeline == nil { - return errors.New("cannot find pipeline") - } - - trusted := c.Bool("trusted") - err = linter.Lint(pipeline, trusted) - if err != nil { - return err - } - - // the user has the option to disable the git clone - // if the pipeline is being executed on the local - // codebase. - if c.Bool("clone") == false { - pipeline.Clone.Disable = true - } - - comp := new(compiler.Compiler) - comp.PrivilegedFunc = compiler.DindFunc( - c.StringSlice("privileged"), - ) - comp.SkipFunc = compiler.SkipFunc( - compiler.SkipData{ - Branch: environ["DRONE_BRANCH"], - Event: environ["DRONE_EVENT"], - Instance: environ["DRONE_SYSTEM_HOST"], - Ref: environ["DRONE_COMMIT_REF"], - Repo: environ["DRONE_REPO"], - Target: environ["DRONE_DEPLOY_TO"], - }, - ) - transforms := []func(*engine.Spec){ - transform.Include( - c.StringSlice("include"), - ), - transform.Exclude( - c.StringSlice("exclude"), - ), - transform.ResumeAt( - c.String("resume-at"), - ), - transform.WithAuths( - toRegistry( - c.StringSlice("registry"), - ), - ), - transform.WithEnviron( - readParams( - c.String("env-file"), - ), - ), - transform.WithEnviron(environ), - transform.WithLables(nil), - transform.WithLimits(0, 0), - transform.WithNetrc( - c.String("netrc-machine"), - c.String("netrc-username"), - c.String("netrc-password"), - ), - transform.WithNetworks( - c.StringSlice("network"), - ), - transform.WithProxy(), - transform.WithSecrets( - readParams( - c.String("secret-file"), - ), - ), - transform.WithVolumeSlice( - c.StringSlice("volume"), - ), - } - if c.Bool("clone") == false { - pwd, _ := os.Getwd() - comp.WorkspaceMountFunc = compiler.MountHostWorkspace - comp.WorkspaceFunc = compiler.CreateHostWorkspace(pwd) - } - comp.TransformFunc = transform.Combine(transforms...) - ir := comp.Compile(pipeline) - - ctx, cancel := context.WithTimeout( - context.Background(), - c.Duration("timeout"), - ) - ctx = signal.WithContext(ctx) - defer cancel() - - // creates a docker-based engine. eventually we will - // include the kubernetes and vmware fusion engines. - engine, err := docker.NewEnv() - if err != nil { - return err - } - - // creates a hook to print the step output to stdout, - // with per-step color coding if a tty. - hooks := &runtime.Hook{} - hooks.BeforeEach = func(s *runtime.State) error { - s.Step.Envs["CI_BUILD_STATUS"] = "success" - s.Step.Envs["CI_BUILD_STARTED"] = strconv.FormatInt(s.Runtime.Time, 10) - s.Step.Envs["CI_BUILD_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10) - s.Step.Envs["DRONE_BUILD_STATUS"] = "success" - s.Step.Envs["DRONE_BUILD_STARTED"] = strconv.FormatInt(s.Runtime.Time, 10) - s.Step.Envs["DRONE_BUILD_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10) - - s.Step.Envs["CI_JOB_STATUS"] = "success" - s.Step.Envs["CI_JOB_STARTED"] = strconv.FormatInt(s.Runtime.Time, 10) - s.Step.Envs["CI_JOB_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10) - s.Step.Envs["DRONE_JOB_STATUS"] = "success" - s.Step.Envs["DRONE_JOB_STARTED"] = strconv.FormatInt(s.Runtime.Time, 10) - s.Step.Envs["DRONE_JOB_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10) - - if s.Runtime.Error != nil { - s.Step.Envs["CI_BUILD_STATUS"] = "failure" - s.Step.Envs["CI_JOB_STATUS"] = "failure" - s.Step.Envs["DRONE_BUILD_STATUS"] = "failure" - s.Step.Envs["DRONE_JOB_STATUS"] = "failure" - } - return nil - } - - hooks.GotLine = term.WriteLine(os.Stdout) - if tty { - hooks.GotLine = term.WriteLinePretty( - colorable.NewColorableStdout(), - ) - } - - return runtime.New( - runtime.WithEngine(engine), - runtime.WithConfig(ir), - runtime.WithHooks(hooks), - ).Run(ctx) -} - -// helper function converts a slice of urls to a slice -// of docker registry credentials. -func toRegistry(items []string) []*engine.DockerAuth { - auths := []*engine.DockerAuth{} - for _, item := range items { - uri, err := url.Parse(item) - if err != nil { - continue // skip invalid - } - user := uri.User.Username() - pass, _ := uri.User.Password() - uri.User = nil - auths = append(auths, &engine.DockerAuth{ - Address: uri.String(), - Username: user, - Password: pass, - }) - } - return auths -} - -// helper function reads secrets from a key-value file. -func readParams(path string) map[string]string { - data, _ := godotenv.Read(path) - return data -} diff --git a/drone/execold/flags.go b/drone/execold/flags.go deleted file mode 100644 index 1e79341b..00000000 --- a/drone/execold/flags.go +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2019 Drone.IO Inc. All rights reserved. -// Use of this source code is governed by the Polyform License -// that can be found in the LICENSE file. - -package execold - -import ( - "github.com/drone-runners/drone-runner-docker/engine/compiler" - "github.com/drone/drone-go/drone" - "github.com/urfave/cli" -) - -// Flags maps -type Flags struct { - Build *drone.Build - Netrc *drone.Netrc - Repo *drone.Repo - Stage *drone.Stage - System *drone.System -} - -type execCommand struct { - *Flags - - Source string - Include []string - Exclude []string - Privileged []string - Networks []string - Volumes map[string]string - Environ map[string]string - Labels map[string]string - Secrets map[string]string - Resources compiler.Resources - Tmate compiler.Tmate - Clone bool - Config string - Pretty bool - Procs int64 - Debug bool - Trace bool - Dump bool - PublicKey string - PrivateKey string -} - -func mapOldToExecCommand(input *cli.Context) (returnVal *execCommand) { - returnVal = &execCommand{ - Flags: &Flags{ - Build: &drone.Build{ - Event: input.String("event"), - Ref: input.String("ref"), - Deploy: input.String("deploy-to"), - }, - Repo: &drone.Repo{ - Trusted: input.Bool("trusted"), - Timeout: int64(input.Int("timeout")), - Branch: input.String("branch"), - Name: input.String("name"), - }, - Stage: &drone.Stage{ - Name: input.String("pipeline"), - }, - Netrc: &drone.Netrc{ - Machine: input.String("netrc-machine"), - Login: input.String("netrc-username"), - Password: input.String("netrc-password"), - }, - System: &drone.System{ - Host: input.String("instance"), - }, - }, - Source: input.Args().First(), - Include: input.StringSlice("include"), - Exclude: input.StringSlice("exclude"), - Clone: input.Bool("clone"), - Networks: input.StringSlice("network"), - Privileged: input.StringSlice("privileged"), - } - - return returnVal -} diff --git a/drone/main.go b/drone/main.go index 9cbfe770..36cf7177 100644 --- a/drone/main.go +++ b/drone/main.go @@ -10,7 +10,6 @@ import ( "github.com/drone/drone-cli/drone/cron" "github.com/drone/drone-cli/drone/encrypt" "github.com/drone/drone-cli/drone/exec" - "github.com/drone/drone-cli/drone/execold" "github.com/drone/drone-cli/drone/format" "github.com/drone/drone-cli/drone/info" "github.com/drone/drone-cli/drone/jsonnet" @@ -82,7 +81,6 @@ func main() { log.Command, encrypt.Command, exec.Command, - execold.Command, info.Command, repo.Command, user.Command, diff --git a/go.mod b/go.mod index 702903fd..0814fe32 100644 --- a/go.mod +++ b/go.mod @@ -1,34 +1,30 @@ module github.com/drone/drone-cli -go 1.18 +go 1.20 replace github.com/docker/docker => github.com/docker/engine v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompatible require ( github.com/buildkite/yaml v2.1.0+incompatible - github.com/docker/go-units v0.4.0 - github.com/drone-runners/drone-runner-docker v1.8.2 + github.com/docker/go-units v0.5.0 + github.com/drone-runners/drone-runner-docker v1.8.3 github.com/drone/drone-go v1.7.1 - github.com/drone/drone-runtime v1.1.0 - github.com/drone/drone-yaml v1.2.3 github.com/drone/envsubst v1.0.3 - github.com/drone/funcmap v0.0.0-20211123105308-29742f68a7d1 + github.com/drone/funcmap v0.0.0-20220929084810-72602997d16f github.com/drone/runner-go v1.12.0 github.com/drone/signal v1.0.0 github.com/fatih/color v1.13.0 github.com/ghodss/yaml v1.0.0 github.com/google/go-jsonnet v0.18.0 github.com/jackspirou/syscerts v0.0.0-20160531025014-b68f5469dff1 - github.com/joho/godotenv v1.4.0 - github.com/mattn/go-colorable v0.1.12 - github.com/mattn/go-isatty v0.0.14 + github.com/joho/godotenv v1.5.1 github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 - github.com/sirupsen/logrus v1.9.0 - github.com/stretchr/testify v1.8.0 - github.com/urfave/cli v1.22.9 + github.com/sirupsen/logrus v1.9.3 + github.com/stretchr/testify v1.8.4 + github.com/urfave/cli v1.22.14 go.starlark.net v0.0.0-20221020143700-22309ac47eac - golang.org/x/net v0.7.0 - golang.org/x/oauth2 v0.4.0 + golang.org/x/net v0.15.0 + golang.org/x/oauth2 v0.12.0 ) require ( @@ -39,36 +35,35 @@ require ( ) require ( - docker.io/go-docker v1.0.0 // indirect github.com/99designs/httpsignatures-go v0.0.0-20170731043157-88528bf4ca7e // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/bmatcuk/doublestar v1.1.1 // indirect github.com/containerd/containerd v1.6.18 // indirect github.com/coreos/go-semver v0.3.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9 // indirect github.com/docker/distribution v2.8.2+incompatible // indirect github.com/docker/docker v1.13.1 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-isatty v0.0.14 // indirect github.com/natessilva/dag v0.0.0-20180124060714-7194b8dcc5c4 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/russross/blackfriday/v2 v2.0.1 // indirect - github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect - github.com/vinzenz/yaml v0.0.0-20170920082545-91409cdd725d // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect - golang.org/x/sys v0.5.0 // indirect + golang.org/x/sys v0.12.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect google.golang.org/grpc v1.53.0 // indirect - google.golang.org/protobuf v1.28.1 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/yaml v1.2.0 // indirect diff --git a/go.sum b/go.sum index 19531a02..9a6005b3 100644 --- a/go.sum +++ b/go.sum @@ -1,12 +1,11 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -docker.io/go-docker v1.0.0 h1:VdXS/aNYQxyA9wdLD5z8Q8Ro688/hG8HzKxYVEVbE6s= -docker.io/go-docker v1.0.0/go.mod h1:7tiAn5a0LFmjbPDbyTPOaTTOuG1ZRNXdPA6RvKY+fpY= github.com/99designs/basicauth-go v0.0.0-20160802081356-2a93ba0f464d/go.mod h1:3cARGAK9CfW3HoxCy1a0G4TKrdiKke8ftOMEOHyySYs= github.com/99designs/httpsignatures-go v0.0.0-20170731043157-88528bf4ca7e h1:rl2Aq4ZODqTDkeSqQBy+fzpZPamacO1Srp8zq7jf2Sc= github.com/99designs/httpsignatures-go v0.0.0-20170731043157-88528bf4ca7e/go.mod h1:Xa6lInWHNQnuWoF0YPSsx+INFA9qk7/7pTjwb3PInkY= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= @@ -27,16 +26,14 @@ github.com/containerd/containerd v1.6.18 h1:qZbsLvmyu+Vlty0/Ex5xc0z2YtKpIsb5n45m github.com/containerd/containerd v1.6.18/go.mod h1:1RdCUu95+gc2v9t3IL+zIlpClSmew7/0YS8O5eQZrOw= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9 h1:74lLNRzvsdIlkTgfDSMuaPjBr4cf6k7pwQQANm/yLKU= github.com/dchest/uniuri v0.0.0-20160212164326-8902c56451e9/go.mod h1:GgB8SF9nRG+GqaDtLcwJZsQFhcogVCJ79j4EdT0c2V4= -github.com/docker/distribution v0.0.0-20170726174610-edc3ab29cdff/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8= github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= @@ -45,23 +42,18 @@ github.com/docker/engine v17.12.0-ce-rc1.0.20200309214505-aa6a9891b09c+incompati github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/drone-runners/drone-runner-docker v1.8.2 h1:F7+39FSyzEUqLXYMvTdTGBhCS79ODDIhw3DQeF5GYT8= -github.com/drone-runners/drone-runner-docker v1.8.2/go.mod h1:JR3pZeVZKKpkbTajiq0YtAx9WutkODdVKZGNR83kEwE= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/drone-runners/drone-runner-docker v1.8.3 h1:uUnC45C1JMSLW+9uy6RoKG5ugzeXWN89pygs9BMLObY= +github.com/drone-runners/drone-runner-docker v1.8.3/go.mod h1:JR3pZeVZKKpkbTajiq0YtAx9WutkODdVKZGNR83kEwE= github.com/drone/drone-go v1.7.1 h1:ZX+3Rs8YHUSUQ5mkuMLmm1zr1ttiiE2YGNxF3AnyDKw= github.com/drone/drone-go v1.7.1/go.mod h1:fxCf9jAnXDZV1yDr0ckTuWd1intvcQwfJmTRpTZ1mXg= -github.com/drone/drone-runtime v1.0.7-0.20190729202838-87c84080f4a1/go.mod h1:+osgwGADc/nyl40J0fdsf8Z09bgcBZXvXXnLOY48zYs= -github.com/drone/drone-runtime v1.1.0 h1:IsKbwiLY6+ViNBzX0F8PERJVZZcEJm9rgxEh3uZP5IE= -github.com/drone/drone-runtime v1.1.0/go.mod h1:+osgwGADc/nyl40J0fdsf8Z09bgcBZXvXXnLOY48zYs= -github.com/drone/drone-yaml v1.2.3 h1:SWzLmzr8ARhbtw1WsVDENa8WFY2Pi9l0FVMfafVUWz8= -github.com/drone/drone-yaml v1.2.3/go.mod h1:QsqliFK8nG04AHFN9tTn9XJomRBQHD4wcejWW1uz/10= github.com/drone/envsubst v1.0.2/go.mod h1:bkZbnc/2vh1M12Ecn7EYScpI4YGYU0etwLJICOWi8Z0= github.com/drone/envsubst v1.0.3 h1:PCIBwNDYjs50AsLZPYdfhSATKaRg/FJmDc2D6+C2x8g= github.com/drone/envsubst v1.0.3/go.mod h1:N2jZmlMufstn1KEqvbHjw40h1KyTmnVzHcSc9bFiJ2g= -github.com/drone/funcmap v0.0.0-20211123105308-29742f68a7d1 h1:E8hjIYiEyI+1S2XZSLpMkqT9V8+YMljFNBWrFpuVM3A= -github.com/drone/funcmap v0.0.0-20211123105308-29742f68a7d1/go.mod h1:Hph0/pT6ZxbujnE1Z6/08p5I0XXuOsppqF6NQlGOK0E= +github.com/drone/funcmap v0.0.0-20220929084810-72602997d16f h1:/jEs7lulqVO2u1+XI5rW4oFwIIusxuDOVKD9PAzlW2E= +github.com/drone/funcmap v0.0.0-20220929084810-72602997d16f/go.mod h1:nDRkX7PHq+p39AD5/usv3KZMerxZTYU/9rfLS5IDspU= github.com/drone/runner-go v1.12.0 h1:zUjDj9ylsJ4n4Mvy4znddq/Z4EBzcUXzTltpzokKtgs= github.com/drone/runner-go v1.12.0/go.mod h1:vu4pPPYDoeN6vdYQAY01GGGsAIW4aLganJNaa8Fx8zE= github.com/drone/signal v1.0.0 h1:NrnM2M/4yAuU/tXs6RP1a1ZfxnaHwYkd0kJurA1p6uI= @@ -91,9 +83,8 @@ github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:W github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= 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/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -104,26 +95,20 @@ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-jsonnet v0.18.0 h1:/6pTy6g+Jh1a1I2UMoAODkqELFiVIdOxbNwv0DDzoOg= github.com/google/go-jsonnet v0.18.0/go.mod h1:C3fTzyVJDslXdiTqw/bTFk7vSGyCtH3MGRbDfvEwGd0= -github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= -github.com/gregjones/httpcache v0.0.0-20181110185634-c63ab54fda8f/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/jackspirou/syscerts v0.0.0-20160531025014-b68f5469dff1 h1:9Xm8CKtMZIXgcopfdWk/qZ1rt0HjMgfMR9nxxSeK6vk= github.com/jackspirou/syscerts v0.0.0-20160531025014-b68f5469dff1/go.mod h1:zuHl3Hh+e9P6gmBPvcqR1HjkaWHC/csgyskg6IaFKFo= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= -github.com/joho/godotenv v1.4.0 h1:3l4+N6zfMWnkbPEXKng2o2/MR5mSwTrBih4ZEkkz1lg= -github.com/joho/godotenv v1.4.0/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= -github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -137,13 +122,10 @@ github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14 h1:yVuAays6BHfxijgZPzw+3Zlu5yQgKGP2/hcQbHb7S9Y= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/natessilva/dag v0.0.0-20180124060714-7194b8dcc5c4 h1:dnMxwus89s86tI8rcGVp2HwZzlz7c5o92VOy7dSckBQ= @@ -156,48 +138,40 @@ github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3I github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec= github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= -github.com/petar/GoLLRB v0.0.0-20130427215148-53be0d36a84c/go.mod h1:HUpKUBZnpzkdx0kD/+Yfuft+uD3zHGtXF/XJB14TUr4= -github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= -github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/urfave/cli v1.22.9 h1:cv3/KhXGBGjEXLC4bH0sLuJ9BewaAbpk5oyMOveu4pw= -github.com/urfave/cli v1.22.9/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= -github.com/vinzenz/yaml v0.0.0-20170920082545-91409cdd725d h1:3wDi6J5APMqaHBVPuVd7RmHD2gRTfqbdcVSpCNoUWtk= -github.com/vinzenz/yaml v0.0.0-20170920082545-91409cdd725d/go.mod h1:mb5taDqMnJiZNRQ3+02W2IFG+oEz1+dTuCXkp4jpkfo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= +github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.starlark.net v0.0.0-20221020143700-22309ac47eac h1:gBO5Qfcw5V9404yzsu2FEIsxK/u2mBNTNogK0uIoVhk= go.starlark.net v0.0.0-20221020143700-22309ac47eac/go.mod h1:kIVgS18CjmEC3PqMd5kaJSGEifyV/CeB9x506ZJ1Vbk= -golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190621222207-cc06ce4a13d4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -210,7 +184,6 @@ golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -218,12 +191,11 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.4.0 h1:NF0gk8LVPg1Ml7SSbGyySuoxdsXitj7TvgvuRxIMc/M= -golang.org/x/oauth2 v0.4.0/go.mod h1:RznEsdpjGAINPTOF0UH/t+xJ75L18YO3Ho6Pyn+uRec= +golang.org/x/oauth2 v0.12.0 h1:smVPGxink+n1ZI5pkQa8y6fZT0RW0MgCO5bFpepy4B4= +golang.org/x/oauth2 v0.12.0/go.mod h1:A74bZ3aGXgCY0qaIC9Ahg6Lglin4AMAco8cIv9baba4= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -232,7 +204,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181005133103-4497e2df6f9e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -247,13 +218,13 @@ golang.org/x/sys v0.0.0-20210616045830-e2b7044e8c71/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -269,7 +240,6 @@ golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.3.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= @@ -295,15 +265,14 @@ google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpAD google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -317,10 +286,6 @@ gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.0.0-20181130031204-d04500c8c3dd/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= -k8s.io/apimachinery v0.0.0-20181201231028-18a5ff3097b4/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= -k8s.io/client-go v9.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= -k8s.io/klog v0.1.0/go.mod h1:Gq+BEi5rUBO/HRz0bTSXDUcqjScdoY3a9IHpCEIOOfk= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc=