Merge branch 'main' into package-manager
This commit is contained in:
commit
85e870f8dd
1
.github/workflows/ci.yml
vendored
1
.github/workflows/ci.yml
vendored
@ -91,6 +91,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Integration test
|
- name: Integration test
|
||||||
run: |
|
run: |
|
||||||
|
env
|
||||||
make core-integration
|
make core-integration
|
||||||
|
|
||||||
universe:
|
universe:
|
||||||
|
@ -29,7 +29,7 @@ git remote add fork git@github.com:MYFORK/dagger.git
|
|||||||
# create a branch
|
# create a branch
|
||||||
git checkout -b mybranch
|
git checkout -b mybranch
|
||||||
|
|
||||||
# make chances to your branch, use `git commit -s`, ...
|
# make changes to your branch, use `git commit -s`, ...
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
# push the branch to your own fork
|
# push the branch to your own fork
|
||||||
@ -71,9 +71,8 @@ Guidelines:
|
|||||||
|
|
||||||
- Group Commits: Each commit should represent a meaningful change (e.g. implement
|
- Group Commits: Each commit should represent a meaningful change (e.g. implement
|
||||||
feature X, fix bug Y, ...).
|
feature X, fix bug Y, ...).
|
||||||
- For instance, a PR should not look like _1) Add Feature X 2) Fix Typo 3) Changes to features X 5) Bugfix for feature X 6) Fix Linter 7) ..._
|
- For instance, a PR should not look like _1) Add Feature X 2) Fix Typo 3) Changes to features X 5) Bugfix for feature X 6) Fix Linter 7) ..._<br>
|
||||||
- Instead, these commits should be squashed together into a single "Add Feature"
|
Instead, these commits should be squashed together into a single "Add Feature" commit.
|
||||||
commit.
|
|
||||||
- Each commit should work on its own: it must compile, pass the linter and so on.
|
- Each commit should work on its own: it must compile, pass the linter and so on.
|
||||||
- This makes life much easier when using `git log`, `git blame`, `git bisect`, etc.
|
- This makes life much easier when using `git log`, `git blame`, `git bisect`, etc.
|
||||||
- For instance, when doing a `git blame` on a file to figure out why a change
|
- For instance, when doing a `git blame` on a file to figure out why a change
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# syntax = docker/dockerfile:1.2
|
# syntax = docker/dockerfile:1.2
|
||||||
|
|
||||||
FROM golang:1.16.6-alpine AS build
|
FROM golang:1.16.7-alpine AS build
|
||||||
WORKDIR /src
|
WORKDIR /src
|
||||||
RUN apk add --no-cache file
|
RUN apk add --no-cache file
|
||||||
ENV GOMODCACHE /root/.cache/gocache
|
ENV GOMODCACHE /root/.cache/gocache
|
||||||
|
@ -13,6 +13,6 @@ Using Dagger, software builders can automate the deployment of any application t
|
|||||||
## Useful links
|
## Useful links
|
||||||
|
|
||||||
- [Join the Dagger community on Discord](https://discord.gg/ufnyBtc8uY)
|
- [Join the Dagger community on Discord](https://discord.gg/ufnyBtc8uY)
|
||||||
- [Install from a binary release](https://docs.dagger.io/install)
|
- [Install from a binary release](https://docs.dagger.io/1001/install/)
|
||||||
- [Build from source](https://docs.dagger.io/install#option-4-install-from-source)
|
- [Build from source](https://docs.dagger.io/1001/install/#option-4-install-from-source)
|
||||||
- [How to contribute](CONTRIBUTING.md)
|
- [How to contribute](CONTRIBUTING.md)
|
||||||
|
@ -6,6 +6,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"go.opentelemetry.io/otel"
|
"go.opentelemetry.io/otel"
|
||||||
"golang.org/x/sync/errgroup"
|
"golang.org/x/sync/errgroup"
|
||||||
@ -33,11 +34,18 @@ import (
|
|||||||
|
|
||||||
// Client is a dagger client
|
// Client is a dagger client
|
||||||
type Client struct {
|
type Client struct {
|
||||||
c *bk.Client
|
c *bk.Client
|
||||||
noCache bool
|
cfg Config
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(ctx context.Context, host string, noCache bool) (*Client, error) {
|
type Config struct {
|
||||||
|
NoCache bool
|
||||||
|
|
||||||
|
CacheExports []bk.CacheOptionsEntry
|
||||||
|
CacheImports []bk.CacheOptionsEntry
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(ctx context.Context, host string, cfg Config) (*Client, error) {
|
||||||
if host == "" {
|
if host == "" {
|
||||||
host = os.Getenv("BUILDKIT_HOST")
|
host = os.Getenv("BUILDKIT_HOST")
|
||||||
}
|
}
|
||||||
@ -61,8 +69,8 @@ func New(ctx context.Context, host string, noCache bool) (*Client, error) {
|
|||||||
return nil, fmt.Errorf("buildkit client: %w", err)
|
return nil, fmt.Errorf("buildkit client: %w", err)
|
||||||
}
|
}
|
||||||
return &Client{
|
return &Client{
|
||||||
c: c,
|
c: c,
|
||||||
noCache: noCache,
|
cfg: cfg,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,6 +104,15 @@ func (c *Client) Do(ctx context.Context, state *state.State, fn DoFunc) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.Environment, fn DoFunc, ch chan *bk.SolveStatus) error {
|
func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.Environment, fn DoFunc, ch chan *bk.SolveStatus) error {
|
||||||
|
wg := sync.WaitGroup{}
|
||||||
|
|
||||||
|
// Close output channel
|
||||||
|
defer func() {
|
||||||
|
// Wait until all the events are caught
|
||||||
|
wg.Wait()
|
||||||
|
close(ch)
|
||||||
|
}()
|
||||||
|
|
||||||
lg := log.Ctx(ctx)
|
lg := log.Ctx(ctx)
|
||||||
|
|
||||||
// Scan local dirs to grant access
|
// Scan local dirs to grant access
|
||||||
@ -122,6 +139,8 @@ func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.
|
|||||||
secrets,
|
secrets,
|
||||||
solver.NewDockerSocketProvider(),
|
solver.NewDockerSocketProvider(),
|
||||||
},
|
},
|
||||||
|
CacheExports: c.cfg.CacheExports,
|
||||||
|
CacheImports: c.cfg.CacheImports,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call buildkit solver
|
// Call buildkit solver
|
||||||
@ -130,21 +149,39 @@ func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.
|
|||||||
Interface("attrs", opts.FrontendAttrs).
|
Interface("attrs", opts.FrontendAttrs).
|
||||||
Msg("spawning buildkit job")
|
Msg("spawning buildkit job")
|
||||||
|
|
||||||
|
// Catch output from events
|
||||||
|
catchOutput := func(inCh chan *bk.SolveStatus) {
|
||||||
|
for e := range inCh {
|
||||||
|
ch <- e
|
||||||
|
}
|
||||||
|
wg.Done()
|
||||||
|
}
|
||||||
|
|
||||||
|
// Catch solver's events
|
||||||
|
// Closed manually
|
||||||
|
eventsCh := make(chan *bk.SolveStatus)
|
||||||
|
wg.Add(1)
|
||||||
|
go catchOutput(eventsCh)
|
||||||
|
|
||||||
|
// Catch build events
|
||||||
|
// Closed by buildkit
|
||||||
|
buildCh := make(chan *bk.SolveStatus)
|
||||||
|
wg.Add(1)
|
||||||
|
go catchOutput(buildCh)
|
||||||
|
|
||||||
resp, err := c.c.Build(ctx, opts, "", func(ctx context.Context, gw bkgw.Client) (*bkgw.Result, error) {
|
resp, err := c.c.Build(ctx, opts, "", func(ctx context.Context, gw bkgw.Client) (*bkgw.Result, error) {
|
||||||
|
// Close events channel
|
||||||
|
defer close(eventsCh)
|
||||||
|
|
||||||
s := solver.New(solver.Opts{
|
s := solver.New(solver.Opts{
|
||||||
Control: c.c,
|
Control: c.c,
|
||||||
Gateway: gw,
|
Gateway: gw,
|
||||||
Events: ch,
|
Events: eventsCh,
|
||||||
Auth: auth,
|
Auth: auth,
|
||||||
Secrets: secrets,
|
Secrets: secrets,
|
||||||
NoCache: c.noCache,
|
NoCache: c.cfg.NoCache,
|
||||||
})
|
})
|
||||||
|
|
||||||
lg.Debug().Msg("loading configuration")
|
|
||||||
if err := env.LoadPlan(ctx, s); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute output overlay
|
// Compute output overlay
|
||||||
if fn != nil {
|
if fn != nil {
|
||||||
if err := fn(ctx, env, s); err != nil {
|
if err := fn(ctx, env, s); err != nil {
|
||||||
@ -175,7 +212,7 @@ func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.
|
|||||||
res := bkgw.NewResult()
|
res := bkgw.NewResult()
|
||||||
res.SetRef(ref)
|
res.SetRef(ref)
|
||||||
return res, nil
|
return res, nil
|
||||||
}, ch)
|
}, buildCh)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return solver.CleanError(err)
|
return solver.CleanError(err)
|
||||||
}
|
}
|
||||||
@ -187,6 +224,7 @@ func (c *Client) buildfn(ctx context.Context, st *state.State, env *environment.
|
|||||||
Str("value", v).
|
Str("value", v).
|
||||||
Msg("exporter response")
|
Msg("exporter response")
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/docker/buildx/util/buildflags"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"go.dagger.io/dagger/client"
|
"go.dagger.io/dagger/client"
|
||||||
@ -145,10 +146,23 @@ func ValueDocOneLine(val *compiler.Value) string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NewClient creates a new client
|
// NewClient creates a new client
|
||||||
func NewClient(ctx context.Context, noCache bool) *client.Client {
|
func NewClient(ctx context.Context) *client.Client {
|
||||||
lg := log.Ctx(ctx)
|
lg := log.Ctx(ctx)
|
||||||
|
|
||||||
cl, err := client.New(ctx, "", noCache)
|
cacheExports, err := buildflags.ParseCacheEntry(viper.GetStringSlice("cache-to"))
|
||||||
|
if err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("unable to parse --export-cache options")
|
||||||
|
}
|
||||||
|
cacheImports, err := buildflags.ParseCacheEntry(viper.GetStringSlice("cache-fron"))
|
||||||
|
if err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("unable to parse --import-cache options")
|
||||||
|
}
|
||||||
|
|
||||||
|
cl, err := client.New(ctx, "", client.Config{
|
||||||
|
CacheExports: cacheExports,
|
||||||
|
CacheImports: cacheImports,
|
||||||
|
NoCache: viper.GetBool("no-cache"),
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
lg.Fatal().Err(err).Msg("unable to create client")
|
lg.Fatal().Err(err).Msg("unable to create client")
|
||||||
}
|
}
|
||||||
|
@ -168,9 +168,27 @@ var computeCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cl := common.NewClient(ctx, viper.GetBool("no-cache"))
|
cl := common.NewClient(ctx)
|
||||||
|
|
||||||
err := cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
v := compiler.NewValue()
|
||||||
|
plan, err := st.CompilePlan(ctx)
|
||||||
|
if err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("failed to compile plan")
|
||||||
|
}
|
||||||
|
if err := v.FillPath(cue.MakePath(), plan); err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("failed to compile plan")
|
||||||
|
}
|
||||||
|
|
||||||
|
inputs, err := st.CompileInputs()
|
||||||
|
if err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("failed to compile inputs")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := v.FillPath(cue.MakePath(), inputs); err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("failed to compile inputs")
|
||||||
|
}
|
||||||
|
|
||||||
|
err = cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
||||||
// check that all inputs are set
|
// check that all inputs are set
|
||||||
checkInputs(ctx, env)
|
checkInputs(ctx, env)
|
||||||
|
|
||||||
@ -178,13 +196,6 @@ var computeCmd = &cobra.Command{
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
v := compiler.NewValue()
|
|
||||||
if err := v.FillPath(cue.MakePath(), env.Plan()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := v.FillPath(cue.MakePath(), env.Input()); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if err := v.FillPath(cue.MakePath(), env.Computed()); err != nil {
|
if err := v.FillPath(cue.MakePath(), env.Computed()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -208,7 +219,6 @@ func init() {
|
|||||||
computeCmd.Flags().StringSlice("input-git", []string{}, "TARGET=REMOTE#REF")
|
computeCmd.Flags().StringSlice("input-git", []string{}, "TARGET=REMOTE#REF")
|
||||||
computeCmd.Flags().String("input-json", "", "JSON")
|
computeCmd.Flags().String("input-json", "", "JSON")
|
||||||
computeCmd.Flags().String("input-yaml", "", "YAML")
|
computeCmd.Flags().String("input-yaml", "", "YAML")
|
||||||
computeCmd.Flags().Bool("no-cache", false, "disable cache")
|
|
||||||
|
|
||||||
if err := viper.BindPFlags(computeCmd.Flags()); err != nil {
|
if err := viper.BindPFlags(computeCmd.Flags()); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -318,7 +318,7 @@ func loadCode(packageName string) (*compiler.Value, error) {
|
|||||||
stdlib.Path: stdlib.FS,
|
stdlib.Path: stdlib.FS,
|
||||||
}
|
}
|
||||||
|
|
||||||
src, err := compiler.Build(sources, packageName)
|
src, err := compiler.Build("/config", sources, packageName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ var editCmd = &cobra.Command{
|
|||||||
st.Plan = newState.Plan
|
st.Plan = newState.Plan
|
||||||
st.Inputs = newState.Inputs
|
st.Inputs = newState.Inputs
|
||||||
|
|
||||||
cl := common.NewClient(ctx, false)
|
cl := common.NewClient(ctx)
|
||||||
err = cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
err = cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
||||||
// check for cue errors by scanning all the inputs
|
// check for cue errors by scanning all the inputs
|
||||||
_, err := env.ScanInputs(ctx, true)
|
_, err := env.ScanInputs(ctx, true)
|
||||||
|
@ -6,7 +6,6 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"text/tabwriter"
|
"text/tabwriter"
|
||||||
|
|
||||||
"go.dagger.io/dagger/client"
|
|
||||||
"go.dagger.io/dagger/cmd/dagger/cmd/common"
|
"go.dagger.io/dagger/cmd/dagger/cmd/common"
|
||||||
"go.dagger.io/dagger/cmd/dagger/logger"
|
"go.dagger.io/dagger/cmd/dagger/logger"
|
||||||
"go.dagger.io/dagger/compiler"
|
"go.dagger.io/dagger/compiler"
|
||||||
@ -42,12 +41,8 @@ var listCmd = &cobra.Command{
|
|||||||
|
|
||||||
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, st)
|
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, st)
|
||||||
|
|
||||||
c, err := client.New(ctx, "", false)
|
c := common.NewClient(ctx)
|
||||||
if err != nil {
|
err := c.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
||||||
lg.Fatal().Err(err).Msg("unable to create client")
|
|
||||||
}
|
|
||||||
|
|
||||||
err = c.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
|
||||||
inputs, err := env.ScanInputs(ctx, false)
|
inputs, err := env.ScanInputs(ctx, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -67,6 +62,13 @@ var listCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !viper.GetBool("show-optional") && !viper.GetBool("all") {
|
||||||
|
// skip input if there is already a default value
|
||||||
|
if hasDefault {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Fprintf(w, "%s\t%s\t%t\t%s\n",
|
fmt.Fprintf(w, "%s\t%s\t%t\t%s\n",
|
||||||
inp.Path(),
|
inp.Path(),
|
||||||
common.FormatValue(inp),
|
common.FormatValue(inp),
|
||||||
@ -100,6 +102,7 @@ func isUserSet(env *state.State, val *compiler.Value) bool {
|
|||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
listCmd.Flags().BoolP("all", "a", false, "List all inputs (include non-overridable)")
|
listCmd.Flags().BoolP("all", "a", false, "List all inputs (include non-overridable)")
|
||||||
|
listCmd.Flags().Bool("show-optional", false, "List optional inputs (those with default values)")
|
||||||
|
|
||||||
if err := viper.BindPFlags(listCmd.Flags()); err != nil {
|
if err := viper.BindPFlags(listCmd.Flags()); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
@ -50,7 +50,7 @@ func updateEnvironmentInput(ctx context.Context, cmd *cobra.Command, target stri
|
|||||||
Value: target,
|
Value: target,
|
||||||
})
|
})
|
||||||
|
|
||||||
cl := common.NewClient(ctx, false)
|
cl := common.NewClient(ctx)
|
||||||
|
|
||||||
st.SetInput(target, input)
|
st.SetInput(target, input)
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ var listCmd = &cobra.Command{
|
|||||||
|
|
||||||
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, st)
|
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, st)
|
||||||
|
|
||||||
cl := common.NewClient(ctx, false)
|
cl := common.NewClient(ctx)
|
||||||
err := cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
err := cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
||||||
return ListOutputs(ctx, env, true)
|
return ListOutputs(ctx, env, true)
|
||||||
})
|
})
|
||||||
|
@ -1,15 +1,12 @@
|
|||||||
package cmd
|
package cmd
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"cuelang.org/go/cue"
|
"cuelang.org/go/cue"
|
||||||
"go.dagger.io/dagger/cmd/dagger/cmd/common"
|
"go.dagger.io/dagger/cmd/dagger/cmd/common"
|
||||||
"go.dagger.io/dagger/cmd/dagger/logger"
|
"go.dagger.io/dagger/cmd/dagger/logger"
|
||||||
"go.dagger.io/dagger/compiler"
|
"go.dagger.io/dagger/compiler"
|
||||||
"go.dagger.io/dagger/environment"
|
|
||||||
"go.dagger.io/dagger/solver"
|
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
@ -45,28 +42,27 @@ var queryCmd = &cobra.Command{
|
|||||||
|
|
||||||
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, state)
|
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, state)
|
||||||
|
|
||||||
cl := common.NewClient(ctx, false)
|
|
||||||
cueVal := compiler.NewValue()
|
cueVal := compiler.NewValue()
|
||||||
|
|
||||||
err := cl.Do(ctx, state, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
if !viper.GetBool("no-plan") {
|
||||||
if !viper.GetBool("no-plan") {
|
plan, err := state.CompilePlan(ctx)
|
||||||
if err := cueVal.FillPath(cue.MakePath(), env.Plan()); err != nil {
|
if err != nil {
|
||||||
return err
|
lg.Fatal().Err(err).Msg("failed to compile plan")
|
||||||
}
|
}
|
||||||
|
if err := cueVal.FillPath(cue.MakePath(), plan); err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("failed to compile plan")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !viper.GetBool("no-input") {
|
||||||
|
inputs, err := state.CompileInputs()
|
||||||
|
if err != nil {
|
||||||
|
lg.Fatal().Err(err).Msg("failed to compile inputs")
|
||||||
}
|
}
|
||||||
|
|
||||||
if !viper.GetBool("no-input") {
|
if err := cueVal.FillPath(cue.MakePath(), inputs); err != nil {
|
||||||
if err := cueVal.FillPath(cue.MakePath(), env.Input()); err != nil {
|
lg.Fatal().Err(err).Msg("failed to compile inputs")
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
|
||||||
})
|
|
||||||
|
|
||||||
<-doneCh
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
lg.Fatal().Err(err).Msg("failed to query environment")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if !viper.GetBool("no-computed") && state.Computed != "" {
|
if !viper.GetBool("no-computed") && state.Computed != "" {
|
||||||
@ -79,6 +75,8 @@ var queryCmd = &cobra.Command{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
<-doneCh
|
||||||
|
|
||||||
cueVal = cueVal.LookupPath(cuePath)
|
cueVal = cueVal.LookupPath(cuePath)
|
||||||
|
|
||||||
if viper.GetBool("concrete") {
|
if viper.GetBool("concrete") {
|
||||||
@ -98,7 +96,7 @@ var queryCmd = &cobra.Command{
|
|||||||
case "json":
|
case "json":
|
||||||
fmt.Println(cueVal.JSON().PrettyString())
|
fmt.Println(cueVal.JSON().PrettyString())
|
||||||
case "yaml":
|
case "yaml":
|
||||||
lg.Fatal().Err(err).Msg("yaml format not yet implemented")
|
lg.Fatal().Msg("yaml format not yet implemented")
|
||||||
case "text":
|
case "text":
|
||||||
out, err := cueVal.String()
|
out, err := cueVal.String()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -26,6 +26,13 @@ var rootCmd = &cobra.Command{
|
|||||||
func init() {
|
func init() {
|
||||||
rootCmd.PersistentFlags().String("log-format", "", "Log format (json, pretty). Defaults to json if the terminal is not a tty")
|
rootCmd.PersistentFlags().String("log-format", "", "Log format (json, pretty). Defaults to json if the terminal is not a tty")
|
||||||
rootCmd.PersistentFlags().StringP("log-level", "l", "info", "Log level")
|
rootCmd.PersistentFlags().StringP("log-level", "l", "info", "Log level")
|
||||||
|
|
||||||
|
rootCmd.PersistentFlags().Bool("no-cache", false, "Disable caching")
|
||||||
|
rootCmd.PersistentFlags().StringArray("cache-to", []string{},
|
||||||
|
"Cache export destinations (eg. user/app:cache, type=local,dest=path/to/dir)")
|
||||||
|
rootCmd.PersistentFlags().StringArray("cache-from", []string{},
|
||||||
|
"External cache sources (eg. user/app:cache, type=local,src=path/to/dir)")
|
||||||
|
|
||||||
rootCmd.PersistentFlags().StringP("environment", "e", "", "Select an environment")
|
rootCmd.PersistentFlags().StringP("environment", "e", "", "Select an environment")
|
||||||
rootCmd.PersistentFlags().StringP("workspace", "w", "", "Specify a workspace (defaults to current git repository)")
|
rootCmd.PersistentFlags().StringP("workspace", "w", "", "Specify a workspace (defaults to current git repository)")
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ var upCmd = &cobra.Command{
|
|||||||
|
|
||||||
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, st)
|
doneCh := common.TrackWorkspaceCommand(ctx, cmd, workspace, st)
|
||||||
|
|
||||||
cl := common.NewClient(ctx, viper.GetBool("no-cache"))
|
cl := common.NewClient(ctx)
|
||||||
|
|
||||||
err := cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
err := cl.Do(ctx, st, func(ctx context.Context, env *environment.Environment, s solver.Solver) error {
|
||||||
// check that all inputs are set
|
// check that all inputs are set
|
||||||
@ -104,7 +104,6 @@ func checkInputs(ctx context.Context, env *environment.Environment) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
upCmd.Flags().Bool("no-cache", false, "Disable all run cache")
|
|
||||||
upCmd.Flags().BoolP("force", "f", false, "Force up, disable inputs check")
|
upCmd.Flags().BoolP("force", "f", false, "Force up, disable inputs check")
|
||||||
|
|
||||||
if err := viper.BindPFlags(upCmd.Flags()); err != nil {
|
if err := viper.BindPFlags(upCmd.Flags()); err != nil {
|
||||||
|
@ -59,10 +59,6 @@ var versionCmd = &cobra.Command{
|
|||||||
func init() {
|
func init() {
|
||||||
versionCmd.Flags().Bool("check", false, "check if dagger is up to date")
|
versionCmd.Flags().Bool("check", false, "check if dagger is up to date")
|
||||||
|
|
||||||
versionCmd.InheritedFlags().MarkHidden("environment")
|
|
||||||
versionCmd.InheritedFlags().MarkHidden("log-level")
|
|
||||||
versionCmd.InheritedFlags().MarkHidden("log-format")
|
|
||||||
|
|
||||||
if err := viper.BindPFlags(versionCmd.Flags()); err != nil {
|
if err := viper.BindPFlags(versionCmd.Flags()); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
@ -12,19 +12,16 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Build a cue configuration tree from the files in fs.
|
// Build a cue configuration tree from the files in fs.
|
||||||
func Build(sources map[string]fs.FS, args ...string) (*Value, error) {
|
func Build(src string, overlays map[string]fs.FS, args ...string) (*Value, error) {
|
||||||
c := DefaultCompiler
|
c := DefaultCompiler
|
||||||
|
|
||||||
buildConfig := &cueload.Config{
|
buildConfig := &cueload.Config{
|
||||||
// The CUE overlay needs to be prefixed by a non-conflicting path with the
|
Dir: src,
|
||||||
// local filesystem, otherwise Cue will merge the Overlay with whatever Cue
|
|
||||||
// files it finds locally.
|
|
||||||
Dir: "/config",
|
|
||||||
Overlay: map[string]cueload.Source{},
|
Overlay: map[string]cueload.Source{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Map the source files into the overlay
|
// Map the source files into the overlay
|
||||||
for mnt, f := range sources {
|
for mnt, f := range overlays {
|
||||||
f := f
|
f := f
|
||||||
mnt := mnt
|
mnt := mnt
|
||||||
err := fs.WalkDir(f, ".", func(p string, entry fs.DirEntry, err error) error {
|
err := fs.WalkDir(f, ".", func(p string, entry fs.DirEntry, err error) error {
|
||||||
|
@ -22,7 +22,7 @@ Dagger works by integrating all your tools and infrastructure into a unified gra
|
|||||||
Each node in your DAG represents an integration: for example a source repository, build script, artifact registry or deployment API. Each connection represents a flow of data between integrations: for example from source to build; from build to registry; etc.
|
Each node in your DAG represents an integration: for example a source repository, build script, artifact registry or deployment API. Each connection represents a flow of data between integrations: for example from source to build; from build to registry; etc.
|
||||||
|
|
||||||
What makes Dagger special is how much of your existing stack it can integrate in the DAG (probably all of it); how much
|
What makes Dagger special is how much of your existing stack it can integrate in the DAG (probably all of it); how much
|
||||||
of your existing data flows it can manage (probably all of them); and composable your DAG is (as much as regular software).
|
of your existing data flows it can manage (probably all of them); and how composable your DAG is (as much as regular software).
|
||||||
|
|
||||||
### Integrations
|
### Integrations
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"label": "Learn Dagger",
|
"label": "Learn Dagger",
|
||||||
"position": 3,
|
"position": 2,
|
||||||
"collapsed": false
|
"collapsed": false
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,9 @@
|
|||||||
- [aws/elb](./aws/elb.md) - AWS Elastic Load Balancer (ELBv2)
|
- [aws/elb](./aws/elb.md) - AWS Elastic Load Balancer (ELBv2)
|
||||||
- [aws/rds](./aws/rds.md) - AWS Relational Database Service (RDS)
|
- [aws/rds](./aws/rds.md) - AWS Relational Database Service (RDS)
|
||||||
- [aws/s3](./aws/s3.md) - AWS Simple Storage Service
|
- [aws/s3](./aws/s3.md) - AWS Simple Storage Service
|
||||||
|
- [azure](./azure/README.md) - Azure base package
|
||||||
|
- [azure/resourcegroup](./azure/resourcegroup.md) - -
|
||||||
|
- [azure/storage](./azure/storage.md) - -
|
||||||
- [dagger](./dagger/README.md) - Dagger core types
|
- [dagger](./dagger/README.md) - Dagger core types
|
||||||
- [dagger/op](./dagger/op.md) - op: low-level operations for Dagger processing pipelines
|
- [dagger/op](./dagger/op.md) - op: low-level operations for Dagger processing pipelines
|
||||||
- [docker](./docker/README.md) - Docker container operations
|
- [docker](./docker/README.md) - Docker container operations
|
||||||
|
50
docs/reference/universe/azure/README.md
Normal file
50
docs/reference/universe/azure/README.md
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
---
|
||||||
|
sidebar_label: azure
|
||||||
|
---
|
||||||
|
|
||||||
|
# alpha.dagger.io/azure
|
||||||
|
|
||||||
|
Azure base package
|
||||||
|
|
||||||
|
```cue
|
||||||
|
import "alpha.dagger.io/azure"
|
||||||
|
```
|
||||||
|
|
||||||
|
## azure.#CLI
|
||||||
|
|
||||||
|
Azure Cli to be used by all Azure packages
|
||||||
|
|
||||||
|
### azure.#CLI Inputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*config.tenantId* | `dagger.#Secret` |AZURE tenant id |
|
||||||
|
|*config.subscriptionId* | `dagger.#Secret` |AZURE subscription id |
|
||||||
|
|*config.appId* | `dagger.#Secret` |AZURE app id for the service principal used |
|
||||||
|
|*config.password* | `dagger.#Secret` |AZURE password for the service principal used |
|
||||||
|
|*image.from* | `"mcr.microsoft.com/azure-cli:2.27.1@sha256:1e117183100c9fce099ebdc189d73e506e7b02d2b73d767d3fc07caee72f9fb1"` |Remote ref (example: "index.docker.io/alpine:latest") |
|
||||||
|
|*secret."/run/secrets/appId"* | `dagger.#Secret` |- |
|
||||||
|
|*secret."/run/secrets/password"* | `dagger.#Secret` |- |
|
||||||
|
|*secret."/run/secrets/tenantId"* | `dagger.#Secret` |- |
|
||||||
|
|*secret."/run/secrets/subscriptionId"* | `dagger.#Secret` |- |
|
||||||
|
|
||||||
|
### azure.#CLI Outputs
|
||||||
|
|
||||||
|
_No output._
|
||||||
|
|
||||||
|
## azure.#Config
|
||||||
|
|
||||||
|
Azure Config shared by all Azure packages
|
||||||
|
|
||||||
|
### azure.#Config Inputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*tenantId* | `dagger.#Secret` |AZURE tenant id |
|
||||||
|
|*subscriptionId* | `dagger.#Secret` |AZURE subscription id |
|
||||||
|
|*appId* | `dagger.#Secret` |AZURE app id for the service principal used |
|
||||||
|
|*password* | `dagger.#Secret` |AZURE password for the service principal used |
|
||||||
|
|
||||||
|
### azure.#Config Outputs
|
||||||
|
|
||||||
|
_No output._
|
41
docs/reference/universe/azure/resourcegroup.md
Normal file
41
docs/reference/universe/azure/resourcegroup.md
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
---
|
||||||
|
sidebar_label: resourcegroup
|
||||||
|
---
|
||||||
|
|
||||||
|
# alpha.dagger.io/azure/resourcegroup
|
||||||
|
|
||||||
|
```cue
|
||||||
|
import "alpha.dagger.io/azure/resourcegroup"
|
||||||
|
```
|
||||||
|
|
||||||
|
## resourcegroup.#ResourceGroup
|
||||||
|
|
||||||
|
Create a resource group
|
||||||
|
|
||||||
|
### resourcegroup.#ResourceGroup Inputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*config.tenantId* | `dagger.#Secret` |AZURE tenant id |
|
||||||
|
|*config.subscriptionId* | `dagger.#Secret` |AZURE subscription id |
|
||||||
|
|*config.appId* | `dagger.#Secret` |AZURE app id for the service principal used |
|
||||||
|
|*config.password* | `dagger.#Secret` |AZURE password for the service principal used |
|
||||||
|
|*rgName* | `string` |ResourceGroup name |
|
||||||
|
|*rgLocation* | `string` |ResourceGroup location |
|
||||||
|
|*ctr.image.config.tenantId* | `dagger.#Secret` |AZURE tenant id |
|
||||||
|
|*ctr.image.config.subscriptionId* | `dagger.#Secret` |AZURE subscription id |
|
||||||
|
|*ctr.image.config.appId* | `dagger.#Secret` |AZURE app id for the service principal used |
|
||||||
|
|*ctr.image.config.password* | `dagger.#Secret` |AZURE password for the service principal used |
|
||||||
|
|*ctr.image.image.from* | `"mcr.microsoft.com/azure-cli:2.27.1@sha256:1e117183100c9fce099ebdc189d73e506e7b02d2b73d767d3fc07caee72f9fb1"` |Remote ref (example: "index.docker.io/alpine:latest") |
|
||||||
|
|*ctr.image.secret."/run/secrets/appId"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.image.secret."/run/secrets/password"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.image.secret."/run/secrets/tenantId"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.image.secret."/run/secrets/subscriptionId"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.env.AZURE_DEFAULTS_GROUP* | `string` |- |
|
||||||
|
|*ctr.env.AZURE_DEFAULTS_LOCATION* | `string` |- |
|
||||||
|
|
||||||
|
### resourcegroup.#ResourceGroup Outputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*id* | `string` |ResourceGroup Id Resource Id |
|
43
docs/reference/universe/azure/storage.md
Normal file
43
docs/reference/universe/azure/storage.md
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
---
|
||||||
|
sidebar_label: storage
|
||||||
|
---
|
||||||
|
|
||||||
|
# alpha.dagger.io/azure/storage
|
||||||
|
|
||||||
|
```cue
|
||||||
|
import "alpha.dagger.io/azure/storage"
|
||||||
|
```
|
||||||
|
|
||||||
|
## storage.#StorageAccount
|
||||||
|
|
||||||
|
Create a storage account
|
||||||
|
|
||||||
|
### storage.#StorageAccount Inputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*config.tenantId* | `dagger.#Secret` |AZURE tenant id |
|
||||||
|
|*config.subscriptionId* | `dagger.#Secret` |AZURE subscription id |
|
||||||
|
|*config.appId* | `dagger.#Secret` |AZURE app id for the service principal used |
|
||||||
|
|*config.password* | `dagger.#Secret` |AZURE password for the service principal used |
|
||||||
|
|*rgName* | `string` |ResourceGroup name |
|
||||||
|
|*stLocation* | `string` |StorageAccount location |
|
||||||
|
|*stName* | `string` |StorageAccount name |
|
||||||
|
|*ctr.image.config.tenantId* | `dagger.#Secret` |AZURE tenant id |
|
||||||
|
|*ctr.image.config.subscriptionId* | `dagger.#Secret` |AZURE subscription id |
|
||||||
|
|*ctr.image.config.appId* | `dagger.#Secret` |AZURE app id for the service principal used |
|
||||||
|
|*ctr.image.config.password* | `dagger.#Secret` |AZURE password for the service principal used |
|
||||||
|
|*ctr.image.image.from* | `"mcr.microsoft.com/azure-cli:2.27.1@sha256:1e117183100c9fce099ebdc189d73e506e7b02d2b73d767d3fc07caee72f9fb1"` |Remote ref (example: "index.docker.io/alpine:latest") |
|
||||||
|
|*ctr.image.secret."/run/secrets/appId"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.image.secret."/run/secrets/password"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.image.secret."/run/secrets/tenantId"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.image.secret."/run/secrets/subscriptionId"* | `dagger.#Secret` |- |
|
||||||
|
|*ctr.env.AZURE_DEFAULTS_GROUP* | `string` |- |
|
||||||
|
|*ctr.env.AZURE_DEFAULTS_LOCATION* | `string` |- |
|
||||||
|
|*ctr.env.AZURE_STORAGE_ACCOUNT* | `string` |- |
|
||||||
|
|
||||||
|
### storage.#StorageAccount Outputs
|
||||||
|
|
||||||
|
| Name | Type | Description |
|
||||||
|
| ------------- |:-------------: |:-------------: |
|
||||||
|
|*id* | `string` |StorageAccount Id |
|
203
docs/use-cases/1012-ci.md
Normal file
203
docs/use-cases/1012-ci.md
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
---
|
||||||
|
slug: /1012/ci
|
||||||
|
---
|
||||||
|
|
||||||
|
# Continuous Integration
|
||||||
|
|
||||||
|
Dagger is the perfect tool for CI workflows.
|
||||||
|
|
||||||
|
## Benefits
|
||||||
|
|
||||||
|
- **Develop and run your CI pipeline locally.** No need to create a Pull Request
|
||||||
|
to trigger CI, you can run the pipeline locally. Since dagger workflows
|
||||||
|
are containerized, you can expect the same results no matter where the pipeline
|
||||||
|
is executed.
|
||||||
|
- **Write once, Run anywhere.** The same pipeline can run in any CI, goodbye
|
||||||
|
vendor lock in.
|
||||||
|
- **Blazing Fast**: Dagger will automatically build an optimized execution
|
||||||
|
graph, completing the job as fast as possible. Spend less time staring at CI to
|
||||||
|
complete and reduce costs.
|
||||||
|
- **Effortless Cache Optimizations**. Dagger will automatically
|
||||||
|
re-use cached execution results if no changes are detected. Made a change to the
|
||||||
|
frontend? The backend won't be built again.
|
||||||
|
- **Composable & Reusable**. Define re-usable steps and [share](../learn/1010-dev-cue-package.md) them across all
|
||||||
|
your projects. Or with the world. Dagger
|
||||||
|
ships with [dozens of re-usable components](../reference/universe/README.md)
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
This example illustrates how to use Dagger to test and lint a Go project. The
|
||||||
|
use of Go is irrelevant and the example can be easily adapted to other languages.
|
||||||
|
|
||||||
|
From the project repository, create a file named `ci/main.cue` and add the
|
||||||
|
following configuration to it.
|
||||||
|
|
||||||
|
```cue title="ci/main.cue"
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/dagger"
|
||||||
|
"alpha.dagger.io/os"
|
||||||
|
"alpha.dagger.io/docker"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Source directory of the repository. We'll connect this from the CLI using `dagger input`
|
||||||
|
source: dagger.#Artifact
|
||||||
|
|
||||||
|
// Here we define a test phase.
|
||||||
|
// We're using `os.#Container`, a built-in package that will spawn a container
|
||||||
|
// We're also using `docker.#Pull` to execute the container from a Docker image
|
||||||
|
// comifrom a registry.
|
||||||
|
test: os.#Container & {
|
||||||
|
image: docker.#Pull & {
|
||||||
|
from: "golang:1.16-alpine"
|
||||||
|
}
|
||||||
|
mount: "/app": from: source
|
||||||
|
command: "go test -v ./..."
|
||||||
|
dir: "/app"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Likewise, here we define a lint phase.
|
||||||
|
lint: os.#Container & {
|
||||||
|
image: docker.#Pull & {
|
||||||
|
from: "golangci/golangci-lint:v1.39.0"
|
||||||
|
}
|
||||||
|
mount: "/app": from: source
|
||||||
|
command: "golangci-lint run -v"
|
||||||
|
dir: "/app"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The configuration above defines:
|
||||||
|
|
||||||
|
- **source** code of the project. More on this later.
|
||||||
|
- **test** *task* which executes `go test` inside the source artifact
|
||||||
|
using the `golang` Docker image
|
||||||
|
- **lint** *task* which executes `golangci-lint` inside the source artifact
|
||||||
|
using the `golangci-lint` Docker image.
|
||||||
|
|
||||||
|
Before we can execute the configuration, we need to set up the Dagger workspace and environment.
|
||||||
|
|
||||||
|
```shell
|
||||||
|
# Initialize a dagger workspace at the root of your project
|
||||||
|
dagger init
|
||||||
|
|
||||||
|
# Create a CI environment using the CUE files in the `./ci` directory
|
||||||
|
dagger new ci -p ./ci
|
||||||
|
|
||||||
|
# Link the `source` artifact defined in the configuration with the project
|
||||||
|
# source code.
|
||||||
|
dagger input dir source .
|
||||||
|
```
|
||||||
|
|
||||||
|
Next, bring up the CI environment (e.g. execute the CI configuration):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dagger up
|
||||||
|
# ...
|
||||||
|
7:15PM INF test | computing environment=ci
|
||||||
|
7:15PM INF lint | computing environment=ci
|
||||||
|
# ...
|
||||||
|
```
|
||||||
|
|
||||||
|
Since `test` and `lint` do not depend on each other, they are executed in
|
||||||
|
parallel.
|
||||||
|
|
||||||
|
Running `dagger up` a second time will return almost immediately: since no
|
||||||
|
changes were made to `source`, Dagger will re-use the cached results for both `test` nor `lint`.
|
||||||
|
|
||||||
|
## Integrating with CI
|
||||||
|
|
||||||
|
All it takes to execute a Dagger workflow in CI is to run `dagger up`.
|
||||||
|
|
||||||
|
We provide a [GitHub Actions](../learn/1009-github-actions.md) to make
|
||||||
|
integration with GitHub easier.
|
||||||
|
|
||||||
|
## Monorepos
|
||||||
|
|
||||||
|
Dagger workflows scale really well with CI complexity.
|
||||||
|
|
||||||
|
The following example illustrates how to test two different projects in the same
|
||||||
|
repository: a *Node* frontend (located in *./frontend*) along with a *Go* backend (located in *./backend*).
|
||||||
|
|
||||||
|
From the project repository, update the file named `ci/main.cue` with the
|
||||||
|
following configuration.
|
||||||
|
|
||||||
|
```cue title="ci/main.cue"
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/dagger"
|
||||||
|
"alpha.dagger.io/os"
|
||||||
|
"alpha.dagger.io/docker"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Source directory of the repository. We'll connect this from the CLI using `dagger input`
|
||||||
|
source: dagger.#Artifact
|
||||||
|
|
||||||
|
backend: {
|
||||||
|
// We use `os.#Dir` to grab a sub-directory of `source`
|
||||||
|
code: os.#Dir & {
|
||||||
|
from: source
|
||||||
|
path: "."
|
||||||
|
}
|
||||||
|
|
||||||
|
test: os.#Container & {
|
||||||
|
image: docker.#Pull & {
|
||||||
|
from: "golang:1.16-alpine"
|
||||||
|
}
|
||||||
|
mount: "/app": from: code
|
||||||
|
command: "go test -v ./..."
|
||||||
|
dir: "/app"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
frontend: {
|
||||||
|
// We use `os.#Dir` to grab a sub-directory of `source`
|
||||||
|
code: os.#Dir & {
|
||||||
|
from: source
|
||||||
|
path: "./frontend"
|
||||||
|
}
|
||||||
|
|
||||||
|
test: os.#Container & {
|
||||||
|
image: docker.#Pull & {
|
||||||
|
from: "node:16-alpine"
|
||||||
|
}
|
||||||
|
mount: "/app": from: code
|
||||||
|
command: """
|
||||||
|
# Install Dependencies
|
||||||
|
yarn
|
||||||
|
|
||||||
|
# Run the test script
|
||||||
|
yarn test
|
||||||
|
"""
|
||||||
|
dir: "/app"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
:::tip
|
||||||
|
Larger configurations can be split into multiple files, for example `backend.cue` and `frontend.cue`
|
||||||
|
:::
|
||||||
|
|
||||||
|
The configuration above defines a *frontend* and *backend* structure, each
|
||||||
|
containing:
|
||||||
|
|
||||||
|
- A **code** directory, defined as a subdirectory of **source**
|
||||||
|
- A language specific **test** task using either `yarn` or `go`
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ dagger up
|
||||||
|
7:15PM INF frontend.test | computing environment=ci
|
||||||
|
7:15PM INF backend.test | computing environment=ci
|
||||||
|
7:15PM INF frontend.test | #8 0.370 yarn install v1.22.5 environment=ci
|
||||||
|
7:15PM INF frontend.test | #8 0.689 [1/4] Resolving packages... environment=ci
|
||||||
|
7:15PM INF frontend.test | #8 1.626 [2/4] Fetching packages... environment=ci
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
`frontend.test` and `backend.test` are running in parallel since there are no
|
||||||
|
dependencies between each other.
|
||||||
|
|
||||||
|
If you were to make changes to the *./frontend* directory, only
|
||||||
|
`frontend.test` will be executed.
|
5
docs/use-cases/_category_.json
Normal file
5
docs/use-cases/_category_.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"label": "Use Cases",
|
||||||
|
"position": 3,
|
||||||
|
"collapsed": false
|
||||||
|
}
|
@ -3,7 +3,6 @@ package environment
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/fs"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -29,33 +28,38 @@ type Environment struct {
|
|||||||
// Layer 2: user inputs
|
// Layer 2: user inputs
|
||||||
input *compiler.Value
|
input *compiler.Value
|
||||||
|
|
||||||
|
// plan + inputs
|
||||||
|
src *compiler.Value
|
||||||
|
|
||||||
// Layer 3: computed values
|
// Layer 3: computed values
|
||||||
computed *compiler.Value
|
computed *compiler.Value
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(st *state.State) (*Environment, error) {
|
func New(st *state.State) (*Environment, error) {
|
||||||
|
var err error
|
||||||
|
|
||||||
e := &Environment{
|
e := &Environment{
|
||||||
state: st,
|
state: st,
|
||||||
|
|
||||||
plan: compiler.NewValue(),
|
|
||||||
input: compiler.NewValue(),
|
|
||||||
computed: compiler.NewValue(),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare inputs
|
e.plan, err = st.CompilePlan(context.TODO())
|
||||||
for key, input := range st.Inputs {
|
if err != nil {
|
||||||
v, err := input.Compile(key, st)
|
return nil, err
|
||||||
if err != nil {
|
}
|
||||||
return nil, err
|
|
||||||
}
|
e.input, err = st.CompileInputs()
|
||||||
if key == "" {
|
if err != nil {
|
||||||
err = e.input.FillPath(cue.MakePath(), v)
|
return nil, err
|
||||||
} else {
|
}
|
||||||
err = e.input.FillPath(cue.ParsePath(key), v)
|
|
||||||
}
|
e.computed = compiler.NewValue()
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
e.src = compiler.NewValue()
|
||||||
}
|
if err := e.src.FillPath(cue.MakePath(), e.plan); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := e.src.FillPath(cue.MakePath(), e.input); err != nil {
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return e, nil
|
return e, nil
|
||||||
@ -65,64 +69,10 @@ func (e *Environment) Name() string {
|
|||||||
return e.state.Name
|
return e.state.Name
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Environment) Plan() *compiler.Value {
|
|
||||||
return e.plan
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *Environment) Input() *compiler.Value {
|
|
||||||
return e.input
|
|
||||||
}
|
|
||||||
|
|
||||||
func (e *Environment) Computed() *compiler.Value {
|
func (e *Environment) Computed() *compiler.Value {
|
||||||
return e.computed
|
return e.computed
|
||||||
}
|
}
|
||||||
|
|
||||||
// LoadPlan loads the plan
|
|
||||||
func (e *Environment) LoadPlan(ctx context.Context, s solver.Solver) error {
|
|
||||||
tr := otel.Tracer("environment")
|
|
||||||
ctx, span := tr.Start(ctx, "environment.LoadPlan")
|
|
||||||
defer span.End()
|
|
||||||
|
|
||||||
// FIXME: universe vendoring
|
|
||||||
// This is already done on `dagger init` and shouldn't be done here too.
|
|
||||||
// However:
|
|
||||||
// 1) As of right now, there's no way to update universe through the
|
|
||||||
// CLI, so we are lazily updating on `dagger up` using the embedded `universe`
|
|
||||||
// 2) For backward compatibility: if the workspace was `dagger
|
|
||||||
// init`-ed before we added support for vendoring universe, it might not
|
|
||||||
// contain a `cue.mod`.
|
|
||||||
if err := e.state.VendorUniverse(ctx); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
planSource, err := e.state.Source().Compile("", e.state)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
p := NewPipeline(planSource, s).WithCustomName("[internal] source")
|
|
||||||
// execute updater script
|
|
||||||
if err := p.Run(ctx); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Build a Cue config by overlaying the source with the stdlib
|
|
||||||
sources := map[string]fs.FS{
|
|
||||||
"/": p.FS(),
|
|
||||||
}
|
|
||||||
args := []string{}
|
|
||||||
if pkg := e.state.Plan.Package; pkg != "" {
|
|
||||||
args = append(args, pkg)
|
|
||||||
}
|
|
||||||
plan, err := compiler.Build(sources, args...)
|
|
||||||
if err != nil {
|
|
||||||
return fmt.Errorf("plan config: %w", compiler.Err(err))
|
|
||||||
}
|
|
||||||
e.plan = plan
|
|
||||||
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Scan all scripts in the environment for references to local directories (do:"local"),
|
// Scan all scripts in the environment for references to local directories (do:"local"),
|
||||||
// and return all referenced directory names.
|
// and return all referenced directory names.
|
||||||
// This is used by clients to grant access to local directories when they are referenced
|
// This is used by clients to grant access to local directories when they are referenced
|
||||||
@ -168,58 +118,33 @@ func (e *Environment) LocalDirs() map[string]string {
|
|||||||
localdirs(v.Lookup("#up"))
|
localdirs(v.Lookup("#up"))
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. Scan the plan
|
|
||||||
plan, err := e.state.Source().Compile("", e.state)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
localdirs(plan)
|
|
||||||
return dirs
|
return dirs
|
||||||
}
|
}
|
||||||
|
|
||||||
// prepare initializes the Environment with inputs and plan code
|
|
||||||
func (e *Environment) prepare(ctx context.Context) (*compiler.Value, error) {
|
|
||||||
tr := otel.Tracer("environment")
|
|
||||||
_, span := tr.Start(ctx, "environment.Prepare")
|
|
||||||
defer span.End()
|
|
||||||
|
|
||||||
// Reset the computed values
|
|
||||||
e.computed = compiler.NewValue()
|
|
||||||
|
|
||||||
src := compiler.NewValue()
|
|
||||||
if err := src.FillPath(cue.MakePath(), e.plan); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if err := src.FillPath(cue.MakePath(), e.input); err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return src, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Up missing values in environment configuration, and write them to state.
|
// Up missing values in environment configuration, and write them to state.
|
||||||
func (e *Environment) Up(ctx context.Context, s solver.Solver) error {
|
func (e *Environment) Up(ctx context.Context, s solver.Solver) error {
|
||||||
tr := otel.Tracer("environment")
|
tr := otel.Tracer("environment")
|
||||||
ctx, span := tr.Start(ctx, "environment.Up")
|
ctx, span := tr.Start(ctx, "environment.Up")
|
||||||
defer span.End()
|
defer span.End()
|
||||||
|
|
||||||
// Set user inputs and plan code
|
|
||||||
src, err := e.prepare(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
// Orchestrate execution with cueflow
|
// Orchestrate execution with cueflow
|
||||||
flow := cueflow.New(
|
flow := cueflow.New(
|
||||||
&cueflow.Config{},
|
&cueflow.Config{},
|
||||||
src.Cue(),
|
e.src.Cue(),
|
||||||
newTaskFunc(newPipelineRunner(e.computed, s)),
|
newTaskFunc(newPipelineRunner(e.computed, s)),
|
||||||
)
|
)
|
||||||
if err := flow.Run(ctx); err != nil {
|
if err := flow.Run(ctx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
// FIXME: canceling the context makes flow return `nil`
|
||||||
|
// Check explicitly if the context is canceled.
|
||||||
|
select {
|
||||||
|
case <-ctx.Done():
|
||||||
|
return ctx.Err()
|
||||||
|
default:
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type DownOpts struct{}
|
type DownOpts struct{}
|
||||||
@ -328,20 +253,18 @@ func (e *Environment) ScanInputs(ctx context.Context, mergeUserInputs bool) ([]*
|
|||||||
src := e.plan
|
src := e.plan
|
||||||
|
|
||||||
if mergeUserInputs {
|
if mergeUserInputs {
|
||||||
// Set user inputs and plan code
|
src = e.src
|
||||||
var err error
|
|
||||||
src, err = e.prepare(ctx)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ScanInputs(ctx, src), nil
|
return ScanInputs(ctx, src), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Environment) ScanOutputs(ctx context.Context) ([]*compiler.Value, error) {
|
func (e *Environment) ScanOutputs(ctx context.Context) ([]*compiler.Value, error) {
|
||||||
src, err := e.prepare(ctx)
|
src := compiler.NewValue()
|
||||||
if err != nil {
|
if err := src.FillPath(cue.MakePath(), e.plan); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if err := src.FillPath(cue.MakePath(), e.input); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
package environment
|
|
||||||
|
|
||||||
import (
|
|
||||||
"testing"
|
|
||||||
|
|
||||||
"github.com/stretchr/testify/require"
|
|
||||||
"go.dagger.io/dagger/state"
|
|
||||||
)
|
|
||||||
|
|
||||||
func TestLocalDirs(t *testing.T) {
|
|
||||||
st := &state.State{
|
|
||||||
Path: "/tmp/source",
|
|
||||||
Plan: state.Plan{
|
|
||||||
Module: "/tmp/source/plan",
|
|
||||||
},
|
|
||||||
}
|
|
||||||
require.NoError(t, st.SetInput("www.source", state.DirInput("/", []string{}, []string{})))
|
|
||||||
|
|
||||||
environment, err := New(st)
|
|
||||||
require.NoError(t, err)
|
|
||||||
|
|
||||||
localdirs := environment.LocalDirs()
|
|
||||||
require.Len(t, localdirs, 2)
|
|
||||||
require.Contains(t, localdirs, "/")
|
|
||||||
require.Contains(t, localdirs, "/tmp/source/plan")
|
|
||||||
}
|
|
@ -4,7 +4,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
"cuelang.org/go/cue"
|
"cuelang.org/go/cue"
|
||||||
"github.com/rs/zerolog/log"
|
|
||||||
"go.dagger.io/dagger/compiler"
|
"go.dagger.io/dagger/compiler"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -43,13 +42,11 @@ func isReference(val cue.Value) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ScanInputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
func ScanInputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
||||||
lg := log.Ctx(ctx)
|
|
||||||
inputs := []*compiler.Value{}
|
inputs := []*compiler.Value{}
|
||||||
|
|
||||||
value.Walk(
|
value.Walk(
|
||||||
func(val *compiler.Value) bool {
|
func(val *compiler.Value) bool {
|
||||||
if isReference(val.Cue()) {
|
if isReference(val.Cue()) {
|
||||||
lg.Debug().Str("value.Path", val.Path().String()).Msg("found reference, stop walk")
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +54,6 @@ func ScanInputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
lg.Debug().Str("value.Path", val.Path().String()).Msg("found input")
|
|
||||||
inputs = append(inputs, val)
|
inputs = append(inputs, val)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
@ -68,7 +64,6 @@ func ScanInputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func ScanOutputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
func ScanOutputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
||||||
lg := log.Ctx(ctx)
|
|
||||||
inputs := []*compiler.Value{}
|
inputs := []*compiler.Value{}
|
||||||
|
|
||||||
value.Walk(
|
value.Walk(
|
||||||
@ -77,7 +72,6 @@ func ScanOutputs(ctx context.Context, value *compiler.Value) []*compiler.Value {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
lg.Debug().Str("value.Path", val.Path().String()).Msg("found output")
|
|
||||||
inputs = append(inputs, val)
|
inputs = append(inputs, val)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
@ -512,6 +512,10 @@ func (p *Pipeline) mount(ctx context.Context, dest string, mnt *compiler.Value)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// eg. mount: "/foo": { from: www.source }
|
// eg. mount: "/foo": { from: www.source }
|
||||||
|
if !mnt.Lookup("from").Exists() {
|
||||||
|
return nil, fmt.Errorf("invalid mount: should have %s structure",
|
||||||
|
"{from: _, path: string | *\"/\"}")
|
||||||
|
}
|
||||||
from := NewPipeline(mnt.Lookup("from"), p.s)
|
from := NewPipeline(mnt.Lookup("from"), p.s)
|
||||||
if err := from.Run(ctx); err != nil {
|
if err := from.Run(ctx); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
5
go.mod
5
go.mod
@ -6,7 +6,8 @@ require (
|
|||||||
cuelang.org/go v0.4.0
|
cuelang.org/go v0.4.0
|
||||||
filippo.io/age v1.0.0-rc.3
|
filippo.io/age v1.0.0-rc.3
|
||||||
github.com/KromDaniel/jonson v0.0.0-20180630143114-d2f9c3c389db
|
github.com/KromDaniel/jonson v0.0.0-20180630143114-d2f9c3c389db
|
||||||
github.com/containerd/console v1.0.2
|
github.com/containerd/console v1.0.3
|
||||||
|
github.com/docker/buildx v0.6.1
|
||||||
github.com/docker/distribution v2.7.1+incompatible
|
github.com/docker/distribution v2.7.1+incompatible
|
||||||
github.com/emicklei/proto v1.9.0 // indirect
|
github.com/emicklei/proto v1.9.0 // indirect
|
||||||
github.com/go-git/go-git/v5 v5.4.2
|
github.com/go-git/go-git/v5 v5.4.2
|
||||||
@ -35,7 +36,7 @@ require (
|
|||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1
|
||||||
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
|
golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e
|
||||||
google.golang.org/grpc v1.39.0
|
google.golang.org/grpc v1.40.0
|
||||||
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
|
||||||
)
|
)
|
||||||
|
|
||||||
|
78
go.sum
78
go.sum
@ -184,8 +184,10 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMx
|
|||||||
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
|
||||||
github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk=
|
github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk=
|
||||||
github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4=
|
github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4=
|
||||||
|
github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||||
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
|
||||||
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
|
||||||
|
github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412/go.mod h1:WPjqKcmVOxf0XSf3YxCJs6N6AOSrOx3obionmG7T0y0=
|
||||||
github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=
|
github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE=
|
||||||
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
|
||||||
@ -202,6 +204,10 @@ github.com/apex/log v1.3.0/go.mod h1:jd8Vpsr46WAe3EZSQ/IUMs2qQD/GOycT5rPWCO1yGcs
|
|||||||
github.com/apex/logs v0.0.4/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo=
|
github.com/apex/logs v0.0.4/go.mod h1:XzxuLZ5myVHDy9SAmYpamKKRNApGj54PfYLcFrXqDwo=
|
||||||
github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=
|
github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy8kCu4PNA+aP7WUV72eXWJeP9/r3/K9aLE=
|
||||||
github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys=
|
github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys=
|
||||||
|
github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc=
|
||||||
|
github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
|
||||||
|
github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk=
|
||||||
|
github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
|
||||||
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
|
||||||
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
|
||||||
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
|
||||||
@ -219,6 +225,7 @@ github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN
|
|||||||
github.com/aws/aws-sdk-go v1.25.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.25.11/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo=
|
||||||
github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
github.com/aws/aws-sdk-go v1.31.6/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||||
|
github.com/aws/aws-sdk-go v1.34.9/go.mod h1:5zCpMtNQVjRREroY7sYe8lOMRSxkhG6MZveU8YkpAk0=
|
||||||
github.com/aws/aws-sdk-go v1.37.18 h1:SRdWLg+DqMFWX8HB3UvXyAoZpw9IDIUYnSTwgzOYbqg=
|
github.com/aws/aws-sdk-go v1.37.18 h1:SRdWLg+DqMFWX8HB3UvXyAoZpw9IDIUYnSTwgzOYbqg=
|
||||||
github.com/aws/aws-sdk-go v1.37.18/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
github.com/aws/aws-sdk-go v1.37.18/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro=
|
||||||
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
|
github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I=
|
||||||
@ -227,6 +234,7 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24
|
|||||||
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
|
||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||||
|
github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k=
|
||||||
github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
|
github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA=
|
||||||
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
|
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
|
||||||
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
|
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
|
||||||
@ -235,6 +243,7 @@ github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnweb
|
|||||||
github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
github.com/blang/semver v3.5.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
|
||||||
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
|
||||||
|
github.com/bmatcuk/doublestar v1.1.5/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
|
||||||
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
|
github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4=
|
||||||
github.com/bombsimon/wsl/v2 v2.0.0/go.mod h1:mf25kr/SqFEPhhcxW1+7pxzGlW+hIl/hYTKY95VwV8U=
|
github.com/bombsimon/wsl/v2 v2.0.0/go.mod h1:mf25kr/SqFEPhhcxW1+7pxzGlW+hIl/hYTKY95VwV8U=
|
||||||
github.com/bombsimon/wsl/v2 v2.2.0/go.mod h1:Azh8c3XGEJl9LyX0/sFC+CKMc7Ssgua0g+6abzXN4Pg=
|
github.com/bombsimon/wsl/v2 v2.2.0/go.mod h1:Azh8c3XGEJl9LyX0/sFC+CKMc7Ssgua0g+6abzXN4Pg=
|
||||||
@ -242,13 +251,17 @@ github.com/bombsimon/wsl/v3 v3.0.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2
|
|||||||
github.com/bombsimon/wsl/v3 v3.1.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc=
|
github.com/bombsimon/wsl/v3 v3.1.0/go.mod h1:st10JtZYLE4D5sC7b8xV4zTKZwAQjCH/Hy2Pm1FNZIc=
|
||||||
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
|
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
|
||||||
github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
|
github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
|
||||||
|
github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk=
|
||||||
github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
|
github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
|
||||||
github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
|
github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
|
||||||
|
github.com/bugsnag/bugsnag-go v1.4.1/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8=
|
||||||
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
|
github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50=
|
||||||
github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
|
github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
|
||||||
|
github.com/bugsnag/panicwrap v1.2.0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE=
|
||||||
github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=
|
github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=
|
||||||
github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=
|
github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=
|
||||||
github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod h1:oDpT4efm8tSYHXV5tHSdRvBet/b/QzxZ+XyyPehvm3A=
|
github.com/cavaliercoder/go-cpio v0.0.0-20180626203310-925f9528c45e/go.mod h1:oDpT4efm8tSYHXV5tHSdRvBet/b/QzxZ+XyyPehvm3A=
|
||||||
|
github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
||||||
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
|
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
|
||||||
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
|
||||||
github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
|
github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw=
|
||||||
@ -265,6 +278,7 @@ github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLI
|
|||||||
github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
|
github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs=
|
||||||
github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
|
github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
|
||||||
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
|
||||||
|
github.com/cloudflare/cfssl v0.0.0-20181213083726-b94e044bb51e/go.mod h1:yMWuSON2oQp+43nFtAV/uvKQIFpSPerB57DCt9t8sSA=
|
||||||
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
|
||||||
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||||
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
|
||||||
@ -275,6 +289,7 @@ github.com/cockroachdb/apd/v2 v2.0.1 h1:y1Rh3tEU89D+7Tgbw+lp52T6p/GJLpDmNvr10UWq
|
|||||||
github.com/cockroachdb/apd/v2 v2.0.1/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw=
|
github.com/cockroachdb/apd/v2 v2.0.1/go.mod h1:DDxRlzC2lo3/vSlmSoS7JkqbbrARPuFOGr0B9pvN3Gw=
|
||||||
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
|
||||||
github.com/codahale/hdrhistogram v0.0.0-20160425231609-f8ad88b59a58/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
|
github.com/codahale/hdrhistogram v0.0.0-20160425231609-f8ad88b59a58/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
|
||||||
|
github.com/compose-spec/compose-go v0.0.0-20210729195839-de56f4f0cb3c/go.mod h1:5V65rPnTvvQagtoMxTneJ2QicLq6ZRQQ7fOgPN226fo=
|
||||||
github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=
|
github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE=
|
||||||
github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU=
|
github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU=
|
||||||
github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
|
github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU=
|
||||||
@ -295,8 +310,9 @@ github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on
|
|||||||
github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
|
github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
|
||||||
github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
|
github.com/containerd/console v1.0.0/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE=
|
||||||
github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw=
|
github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw=
|
||||||
github.com/containerd/console v1.0.2 h1:Pi6D+aZXM+oUw1czuKgH5IJ+y0jhYcwBJfx5/Ghn9dE=
|
|
||||||
github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
|
github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ=
|
||||||
|
github.com/containerd/console v1.0.3 h1:lIr7SlA5PxZyMV30bDW0MGbiOPXwc63yRuCP0ARubLw=
|
||||||
|
github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U=
|
||||||
github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA=
|
||||||
@ -313,8 +329,9 @@ github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09Zvgq
|
|||||||
github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
|
github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s=
|
||||||
github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
|
github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
|
||||||
github.com/containerd/containerd v1.5.2/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
|
github.com/containerd/containerd v1.5.2/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
|
||||||
github.com/containerd/containerd v1.5.3 h1:mfKOepNDIJ3EiBTEyHFpEqB6YSOSkGcjPDIu7cD+YzY=
|
|
||||||
github.com/containerd/containerd v1.5.3/go.mod h1:sx18RgvW6ABJ4iYUw7Q5x7bgFOAB9B6G7+yO0XBc4zw=
|
github.com/containerd/containerd v1.5.3/go.mod h1:sx18RgvW6ABJ4iYUw7Q5x7bgFOAB9B6G7+yO0XBc4zw=
|
||||||
|
github.com/containerd/containerd v1.5.4 h1:uPF0og3ByFzDnaStfiQj3fVGTEtaSNyU+bW7GR/nqGA=
|
||||||
|
github.com/containerd/containerd v1.5.4/go.mod h1:sx18RgvW6ABJ4iYUw7Q5x7bgFOAB9B6G7+yO0XBc4zw=
|
||||||
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y=
|
||||||
@ -402,10 +419,12 @@ github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1S
|
|||||||
github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
|
github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s=
|
||||||
github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
|
github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8=
|
||||||
github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I=
|
github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I=
|
||||||
|
github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg=
|
||||||
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
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 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/denisenkom/go-mssqldb v0.0.0-20190315220205-a8ed825ac853/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc=
|
||||||
github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
|
github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0=
|
||||||
github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY=
|
github.com/devigned/tab v0.1.1/go.mod h1:XG9mPq0dFghrYvoBF3xdRrJzSTX1b7IQrvaL9mzjeJY=
|
||||||
github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
|
||||||
@ -413,13 +432,17 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm
|
|||||||
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
|
||||||
github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4=
|
github.com/dimchansky/utfbom v1.1.0 h1:FcM3g+nofKgUteL8dm/UpdRXNC9KmADgTpLKsu0TRo4=
|
||||||
github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
|
github.com/dimchansky/utfbom v1.1.0/go.mod h1:rO41eb7gLfo8SF1jd9F8HplJm1Fewwi4mQvIirEdv+8=
|
||||||
|
github.com/distribution/distribution/v3 v3.0.0-20210316161203-a01c71e2477e/go.mod h1:xpWTC2KnJMiDLkoawhsPQcXjvwATEBcbq0xevG2YR9M=
|
||||||
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
|
github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E=
|
||||||
|
github.com/docker/buildx v0.6.1 h1:NMWmVT2rs4/MZ1+l56LpCzkjRtPiLQy2LwHY6lS19AU=
|
||||||
|
github.com/docker/buildx v0.6.1/go.mod h1:7gkFFXWFWo+vfXMNijFRBO0KwEDITP10TUWty5ZJNz0=
|
||||||
github.com/docker/cli v0.0.0-20190925022749-754388324470/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
github.com/docker/cli v0.0.0-20190925022749-754388324470/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||||
github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||||
github.com/docker/cli v20.10.0-beta1.0.20201029214301-1d20b15adc38+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
github.com/docker/cli v20.10.0-beta1.0.20201029214301-1d20b15adc38+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||||
github.com/docker/cli v20.10.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
github.com/docker/cli v20.10.6+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||||
github.com/docker/cli v20.10.7+incompatible h1:pv/3NqibQKphWZiAskMzdz8w0PRbtTaEB+f6NwdU7Is=
|
github.com/docker/cli v20.10.7+incompatible h1:pv/3NqibQKphWZiAskMzdz8w0PRbtTaEB+f6NwdU7Is=
|
||||||
github.com/docker/cli v20.10.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
github.com/docker/cli v20.10.7+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
|
||||||
|
github.com/docker/compose-on-kubernetes v0.4.19-0.20190128150448-356b2919c496/go.mod h1:iT2pYfi580XlpaV4KmK0T6+4/9+XoKmk/fhoDod1emE=
|
||||||
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
|
github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY=
|
||||||
github.com/docker/distribution v2.6.0-rc.1.0.20180327202408-83389a148052+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.6.0-rc.1.0.20180327202408-83389a148052+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
|
||||||
@ -436,6 +459,8 @@ github.com/docker/docker v20.10.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05b
|
|||||||
github.com/docker/docker v20.10.7+incompatible h1:Z6O9Nhsjv+ayUEeI1IojKbYcsGdgYSNqxe1s2MYzUhQ=
|
github.com/docker/docker v20.10.7+incompatible h1:Z6O9Nhsjv+ayUEeI1IojKbYcsGdgYSNqxe1s2MYzUhQ=
|
||||||
github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
github.com/docker/docker v20.10.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
|
||||||
github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
|
github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y=
|
||||||
|
github.com/docker/docker-credential-helpers v0.6.4-0.20210125172408-38bea2ce277a/go.mod h1:ofX3UI0Gz1TteYBjtgs07O36Pyasyp66D2uKT7H8W1c=
|
||||||
|
github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c/go.mod h1:CADgU4DSXK5QUlFslkQu2yW2TKzFZcXq/leZfM0UH5Q=
|
||||||
github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ=
|
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-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec=
|
||||||
github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
|
github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA=
|
||||||
@ -449,7 +474,9 @@ github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDD
|
|||||||
github.com/docker/libnetwork v0.8.0-dev.2.0.20200917202933-d0951081b35f h1:jC/ZXgYdzCUuKFkKGNiekhnIkGfUrdelEqvg4Miv440=
|
github.com/docker/libnetwork v0.8.0-dev.2.0.20200917202933-d0951081b35f h1:jC/ZXgYdzCUuKFkKGNiekhnIkGfUrdelEqvg4Miv440=
|
||||||
github.com/docker/libnetwork v0.8.0-dev.2.0.20200917202933-d0951081b35f/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=
|
github.com/docker/libnetwork v0.8.0-dev.2.0.20200917202933-d0951081b35f/go.mod h1:93m0aTqz6z+g32wla4l4WxTrdtvBRmVzYRkYvasA5Z8=
|
||||||
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
|
github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
|
||||||
|
github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE=
|
||||||
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
||||||
|
github.com/docker/spdystream v0.0.0-20181023171402-6480d4af844c/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
|
||||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE=
|
||||||
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
|
||||||
@ -458,6 +485,8 @@ github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1
|
|||||||
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
|
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
|
||||||
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
|
||||||
|
github.com/elazarl/goproxy v0.0.0-20191011121108-aa519ddbe484/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
|
||||||
|
github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8=
|
||||||
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
|
||||||
github.com/emicklei/proto v1.6.15/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A=
|
github.com/emicklei/proto v1.6.15/go.mod h1:rn1FgRS/FANiZdD2djyH7TMA9jdRDcYQ9IEN9yvjX0A=
|
||||||
@ -473,12 +502,14 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m
|
|||||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
|
github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ=
|
||||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||||
|
github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0=
|
||||||
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.2.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
|
||||||
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
|
||||||
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
github.com/fatih/color v1.9.0 h1:8xPHl4/q1VyqGIPif1F+1V3Y3lSmrq01EabUW3CoW5s=
|
||||||
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
|
||||||
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
|
github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M=
|
||||||
|
github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
|
||||||
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
|
||||||
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
github.com/form3tech-oss/jwt-go v3.2.2+incompatible h1:TcekIExNqud5crz4xD2pavyTgWiPvpYe4Xau31I0PRk=
|
||||||
@ -490,6 +521,7 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
|
|||||||
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
|
||||||
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
|
||||||
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
|
github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA=
|
||||||
|
github.com/fvbommel/sortorder v1.0.1/go.mod h1:uk88iVf1ovNn1iLfgUVU2F9o5eO30ui720w+kxuqRs0=
|
||||||
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY=
|
||||||
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
|
||||||
@ -536,6 +568,7 @@ github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG
|
|||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||||
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
|
||||||
github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
github.com/go-test/deep v1.0.2-0.20181118220953-042da051cf31/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
||||||
|
github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
|
||||||
github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4=
|
github.com/go-toolsmith/astcast v1.0.0/go.mod h1:mt2OdQTeAQcY4DQgPSArJjHCcOwlX+Wl/kwN+LbLGQ4=
|
||||||
github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ=
|
github.com/go-toolsmith/astcopy v1.0.0/go.mod h1:vrgyG+5Bxrnz4MZWPF+pI4R8h3qKRjjyvV/DSez4WVQ=
|
||||||
github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
|
github.com/go-toolsmith/astequal v0.0.0-20180903214952-dcb477bfacd6/go.mod h1:H+xSiq0+LtiDC11+h1G32h7Of5O3CYFJ99GVbS5lDKY=
|
||||||
@ -560,6 +593,7 @@ github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5x
|
|||||||
github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
github.com/gofrs/flock v0.0.0-20190320160742-5135e617513b/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
||||||
github.com/gofrs/flock v0.7.3 h1:I0EKY9l8HZCXTMYC4F80vwT6KNypV9uYKP3Alm/hjmQ=
|
github.com/gofrs/flock v0.7.3 h1:I0EKY9l8HZCXTMYC4F80vwT6KNypV9uYKP3Alm/hjmQ=
|
||||||
github.com/gofrs/flock v0.7.3/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
github.com/gofrs/flock v0.7.3/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
|
||||||
|
github.com/gofrs/uuid v3.3.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
|
||||||
github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
|
github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU=
|
||||||
github.com/gogo/googleapis v1.3.2/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
|
github.com/gogo/googleapis v1.3.2/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c=
|
||||||
github.com/gogo/googleapis v1.4.0 h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI=
|
github.com/gogo/googleapis v1.4.0 h1:zgVt4UpGxcqVOw97aRGxT4svlcmdK35fynLNctY32zI=
|
||||||
@ -589,6 +623,7 @@ github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt
|
|||||||
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
|
||||||
github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
|
github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
|
||||||
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v0.0.0-20161109072736-4bd1920723d7/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
|
github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
|
||||||
@ -631,9 +666,11 @@ github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21/go.mod h1:tf5+bz
|
|||||||
github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4=
|
github.com/golangci/revgrep v0.0.0-20180526074752-d9c87f5ffaf0/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4=
|
||||||
github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4=
|
github.com/golangci/revgrep v0.0.0-20180812185044-276a5c0a1039/go.mod h1:qOQCunEYvmd/TLamH+7LlVccLvUH5kZNhbCgTHoBbp4=
|
||||||
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ=
|
github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ=
|
||||||
|
github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0=
|
||||||
github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180124185431-e89373fe6b4a/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
|
||||||
|
github.com/google/certificate-transparency-go v1.0.21/go.mod h1:QeJfpSbVSfYc7RgB3gJFj9cbuQMMchQxrWXz8Ruopmg=
|
||||||
github.com/google/crfs v0.0.0-20191108021818-71d77da419c9/go.mod h1:etGhoOqfwPkooV6aqoX3eBGQOJblqdoc9XvWOeuxpPw=
|
github.com/google/crfs v0.0.0-20191108021818-71d77da419c9/go.mod h1:etGhoOqfwPkooV6aqoX3eBGQOJblqdoc9XvWOeuxpPw=
|
||||||
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
|
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.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
|
||||||
@ -706,6 +743,7 @@ github.com/goreleaser/nfpm v1.2.1/go.mod h1:TtWrABZozuLOttX2uDlYyECfQX7x5XYkVxhj
|
|||||||
github.com/goreleaser/nfpm v1.3.0/go.mod h1:w0p7Kc9TAUgWMyrub63ex3M2Mgw88M4GZXoTq5UCb40=
|
github.com/goreleaser/nfpm v1.3.0/go.mod h1:w0p7Kc9TAUgWMyrub63ex3M2Mgw88M4GZXoTq5UCb40=
|
||||||
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg=
|
||||||
github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
|
github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ=
|
||||||
|
github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q=
|
||||||
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=
|
||||||
@ -733,6 +771,7 @@ github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t
|
|||||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
|
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
|
||||||
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
|
||||||
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645/go.mod h1:6iZfnjpejD4L/4DwD7NryNaJyCQdzwWwH2MWhCA90Kw=
|
||||||
|
github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4=
|
||||||
github.com/hanwen/go-fuse v1.0.0/go.mod h1:unqXarDXqzAk0rt98O2tVndEPIpUgLD9+rwFisZH3Ok=
|
github.com/hanwen/go-fuse v1.0.0/go.mod h1:unqXarDXqzAk0rt98O2tVndEPIpUgLD9+rwFisZH3Ok=
|
||||||
github.com/hanwen/go-fuse/v2 v2.0.3/go.mod h1:0EQM6aH2ctVpvZ6a+onrQ/vaykxh2GH7hy3e13vzTUY=
|
github.com/hanwen/go-fuse/v2 v2.0.3/go.mod h1:0EQM6aH2ctVpvZ6a+onrQ/vaykxh2GH7hy3e13vzTUY=
|
||||||
github.com/hanwen/go-fuse/v2 v2.1.0/go.mod h1:oRyA5eK+pvJyv5otpO/DgccS8y/RvYMaO00GgRLGryc=
|
github.com/hanwen/go-fuse/v2 v2.1.0/go.mod h1:oRyA5eK+pvJyv5otpO/DgccS8y/RvYMaO00GgRLGryc=
|
||||||
@ -744,6 +783,7 @@ github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv
|
|||||||
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM=
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
|
||||||
|
github.com/hashicorp/go-cty-funcs v0.0.0-20200930094925-2721b1e36840/go.mod h1:Abjk0jbRkDaNCzsRhOv2iDCofYpX1eVsjozoiK63qLA=
|
||||||
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
|
github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI=
|
||||||
github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
|
github.com/hashicorp/go-hclog v0.8.0/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ=
|
||||||
github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=
|
github.com/hashicorp/go-hclog v0.9.2 h1:CG6TE5H9/JXsFWJCfoIVpKFIkFe6ysEuHirp4DxCsHI=
|
||||||
@ -776,6 +816,7 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
|
|||||||
github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
github.com/hashicorp/golang-lru v0.5.3/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
|
||||||
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
|
||||||
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
|
||||||
|
github.com/hashicorp/hcl/v2 v2.8.2/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY=
|
||||||
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
|
||||||
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
|
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
|
||||||
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
|
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
|
||||||
@ -810,6 +851,9 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i
|
|||||||
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
|
github.com/jellevandenhooff/dkim v0.0.0-20150330215556-f50fe3d243e1/go.mod h1:E0B/fFc00Y+Rasa88328GlI/XbtyysCtTHZS8h7IrBU=
|
||||||
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
|
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
|
||||||
github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:xRskid8CManxVta/ALEhJha/pweKBaVG6fWgc0yH25s=
|
github.com/jingyugao/rowserrcheck v0.0.0-20191204022205-72ab7603b68a/go.mod h1:xRskid8CManxVta/ALEhJha/pweKBaVG6fWgc0yH25s=
|
||||||
|
github.com/jinzhu/gorm v1.9.2/go.mod h1:Vla75njaFJ8clLU1W44h34PjIkijhjHIYnZxMqCdxqo=
|
||||||
|
github.com/jinzhu/inflection v0.0.0-20180308033659-04140366298a/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
|
||||||
|
github.com/jinzhu/now v1.0.0/go.mod h1:oHTiXerJ20+SfYcrdlBO7rzZRJWGwSTQ0iUY2jI6Gfc=
|
||||||
github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
|
github.com/jirfag/go-printf-func-name v0.0.0-20191110105641-45db9963cdd3/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
|
||||||
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
|
github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0=
|
||||||
github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k=
|
||||||
@ -837,6 +881,7 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X
|
|||||||
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=
|
||||||
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
|
||||||
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
|
||||||
|
github.com/kardianos/osext v0.0.0-20190222173326-2bc1f35cddc0/go.mod h1:1NbS8ALrpOvjt0rHPNLyCIeMtbizbir8U//inJ+zuB8=
|
||||||
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck=
|
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 h1:DowS9hvgyYSX4TO5NpyC606/Z4SxnNYbT+WX27or6Ck=
|
||||||
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
|
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
|
||||||
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||||
@ -872,8 +917,9 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
|
|||||||
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
|
||||||
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=
|
|
||||||
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||||
|
github.com/lib/pq v1.10.0 h1:Zx5DJFEYQXio93kgXnQ09fXNiUKsqv4OUEu2UtGcB1E=
|
||||||
|
github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||||
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
github.com/logrusorgru/aurora v0.0.0-20181002194514-a7b3b318ed4e/go.mod h1:7rIyQOR62GCctdiQpZ/zOJlFyk6y+94wXzv6RNZgaR4=
|
||||||
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
|
||||||
@ -908,7 +954,9 @@ github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Ky
|
|||||||
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
|
github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o=
|
||||||
github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
|
github.com/mattn/go-shellwords v1.0.10/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
|
||||||
|
github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y=
|
||||||
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||||
|
github.com/mattn/go-sqlite3 v1.10.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||||
github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=
|
github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo=
|
||||||
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
|
github.com/mattn/goveralls v0.0.2/go.mod h1:8d1ZMHsd7fW6IRPKQh46F2WRpyib5/X4FOpevwGNQEw=
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
|
||||||
@ -928,6 +976,7 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk
|
|||||||
github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk=
|
github.com/mitchellh/go-ps v0.0.0-20190716172923-621e5597135b/go.mod h1:r1VsdOzOPt1ZSrGZWFoNhsAedKnEd6r9Np1+5blZCWk=
|
||||||
github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
|
github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
|
||||||
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
|
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
|
||||||
|
github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
||||||
github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=
|
github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4=
|
||||||
github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
|
||||||
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
|
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
|
||||||
@ -941,6 +990,7 @@ github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR
|
|||||||
github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
|
github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A=
|
||||||
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
|
||||||
github.com/moby/buildkit v0.8.1/go.mod h1:/kyU1hKy/aYCuP39GZA9MaKioovHku57N6cqlKZIaiQ=
|
github.com/moby/buildkit v0.8.1/go.mod h1:/kyU1hKy/aYCuP39GZA9MaKioovHku57N6cqlKZIaiQ=
|
||||||
|
github.com/moby/buildkit v0.8.2-0.20210702160134-1a7543a10527/go.mod h1:5aezz3QnP1mhzkju3GbsjN0Sh/awZ8AxmH7vLLmJj0M=
|
||||||
github.com/moby/buildkit v0.9.0 h1:PcdyqIOidDySJnMNaWh96ZMKtrRWuu4QEpFGjIXhC+E=
|
github.com/moby/buildkit v0.9.0 h1:PcdyqIOidDySJnMNaWh96ZMKtrRWuu4QEpFGjIXhC+E=
|
||||||
github.com/moby/buildkit v0.9.0/go.mod h1:S9ceObCS/yMHsJD7FQx4fUCe3E7HHYjYVvk0CtynxOw=
|
github.com/moby/buildkit v0.9.0/go.mod h1:S9ceObCS/yMHsJD7FQx4fUCe3E7HHYjYVvk0CtynxOw=
|
||||||
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
|
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
|
||||||
@ -1112,6 +1162,7 @@ github.com/remyoudompheng/bigfft v0.0.0-20170806203942-52369c62f446/go.mod h1:uY
|
|||||||
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
|
||||||
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
|
||||||
|
github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc=
|
||||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||||
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||||
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
|
github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8=
|
||||||
@ -1179,6 +1230,7 @@ github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKv
|
|||||||
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=
|
||||||
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE=
|
||||||
|
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
|
||||||
github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
|
github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw=
|
||||||
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
|
github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk=
|
||||||
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
|
||||||
@ -1187,6 +1239,7 @@ github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0
|
|||||||
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
|
github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
|
||||||
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
|
||||||
@ -1222,6 +1275,7 @@ github.com/tdakkota/asciicheck v0.0.0-20200416190851-d7f85be797a2/go.mod h1:yHp0
|
|||||||
github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
|
github.com/tdakkota/asciicheck v0.0.0-20200416200610-e657995f937b/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM=
|
||||||
github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0=
|
github.com/tetafro/godot v0.3.7/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0=
|
||||||
github.com/tetafro/godot v0.4.2/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0=
|
github.com/tetafro/godot v0.4.2/go.mod h1:/7NLHhv08H1+8DNj0MElpAACw1ajsCuf3TKNQxA5S+0=
|
||||||
|
github.com/theupdateframework/notary v0.6.1/go.mod h1:MOfgIfmox8s7/7fduvB2xyPPMJCrjRLRizA8OFwpnKY=
|
||||||
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
github.com/timakin/bodyclose v0.0.0-20190930140734-f7f2e9bca95e/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||||
github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
github.com/timakin/bodyclose v0.0.0-20200424151742-cb6215831a94/go.mod h1:Qimiffbc6q9tBWlVV6x0P9sat/ao1xEkREYPPj9hphk=
|
||||||
github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
|
github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0=
|
||||||
@ -1266,6 +1320,9 @@ github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:tw
|
|||||||
github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
|
github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
|
||||||
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
|
github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU=
|
||||||
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
|
github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
|
||||||
|
github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
|
||||||
|
github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
|
||||||
|
github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
|
||||||
github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
|
github.com/vmware/govmomi v0.20.3/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU=
|
||||||
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
|
||||||
github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE=
|
github.com/willf/bitset v1.1.11 h1:N7Z7E9UvjW+sGsEl7k/SJrvY2reP1A07MrGuCjIOjRE=
|
||||||
@ -1277,6 +1334,7 @@ github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6e
|
|||||||
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
|
||||||
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
|
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ=
|
||||||
github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
|
github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs=
|
||||||
|
github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y=
|
||||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
|
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8/go.mod h1:HUYIGzjTL3rfEspMxjDjgmT5uz5wzYJKVo23qUhYTos=
|
||||||
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
|
||||||
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
|
||||||
@ -1287,6 +1345,9 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
|
|||||||
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
|
github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs=
|
||||||
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
|
github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA=
|
||||||
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
|
github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg=
|
||||||
|
github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
|
||||||
|
github.com/zclconf/go-cty v1.4.0/go.mod h1:nHzOclRkoj++EU9ZjSrZvRG0BXIWt8c7loYc0qXAFGQ=
|
||||||
|
github.com/zclconf/go-cty v1.7.1/go.mod h1:VDR4+I79ubFBGm1uJac1226K5yANQFHeauxPBoP54+o=
|
||||||
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
|
||||||
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ=
|
||||||
@ -1370,8 +1431,10 @@ golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8U
|
|||||||
golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||||
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200128174031-69ecbb4d6d5d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200220183623-bac4c82f6975/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200323165209-0ec3e9974c59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
|
golang.org/x/crypto v0.0.0-20200422194213-44a606286825/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||||
@ -1424,6 +1487,7 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
|
golang.org/x/net v0.0.0-20180811021610-c39426892332/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-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
golang.org/x/net v0.0.0-20180911220305-26e67e76b6c3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||||
@ -1531,6 +1595,7 @@ golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7w
|
|||||||
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
|
golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||||
@ -1792,8 +1857,8 @@ google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG
|
|||||||
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU=
|
||||||
google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.37.1/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM=
|
||||||
google.golang.org/grpc v1.39.0 h1:Klz8I9kdtkIN6EpHHUOMLCYhTn/2WAe5a0s1hcBkdTI=
|
google.golang.org/grpc v1.40.0 h1:AGJ0Ih4mHjSeibYkFGh1dD9KJ/eOtZ93I6hoHhukQ5Q=
|
||||||
google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE=
|
google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34=
|
||||||
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
|
||||||
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
|
||||||
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM=
|
||||||
@ -1817,10 +1882,13 @@ gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8
|
|||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
|
gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw=
|
||||||
|
gopkg.in/dancannon/gorethink.v3 v3.0.5/go.mod h1:GXsi1e3N2OcKhcP6nsYABTiUejbWMFO4GY5a4pEaeEc=
|
||||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||||
|
gopkg.in/fatih/pool.v2 v2.0.0/go.mod h1:8xVGeu1/2jr2wm5V9SPuMht2H5AEmf5aFMGSQixtjTY=
|
||||||
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys=
|
||||||
gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
|
gopkg.in/gcfg.v1 v1.2.0/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o=
|
||||||
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
|
gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo=
|
||||||
|
gopkg.in/gorethink/gorethink.v3 v3.0.5/go.mod h1:+3yIIHJUGMBK+wyPH+iN5TP+88ikFDfZdqTlK3Y9q8I=
|
||||||
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
|
||||||
gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.44.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||||
|
@ -139,10 +139,16 @@ func (git gitInput) Compile(_ string, _ *State) (*compiler.Value, error) {
|
|||||||
ref = git.Ref
|
ref = git.Ref
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dir := ""
|
||||||
|
if git.Dir != "" {
|
||||||
|
dir = fmt.Sprintf(`,{do:"subdir", dir:"%s"}`, git.Dir)
|
||||||
|
}
|
||||||
|
|
||||||
return compiler.Compile("", fmt.Sprintf(
|
return compiler.Compile("", fmt.Sprintf(
|
||||||
`#up: [{do:"fetch-git", remote:"%s", ref:"%s"}]`,
|
`#up: [{do:"fetch-git", remote:"%s", ref:"%s"}%s]`,
|
||||||
git.Remote,
|
git.Remote,
|
||||||
ref,
|
ref,
|
||||||
|
dir,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,9 @@ package state
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
|
"cuelang.org/go/cue"
|
||||||
|
"go.dagger.io/dagger/compiler"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Contents of an environment serialized to a file
|
// Contents of an environment serialized to a file
|
||||||
@ -29,13 +32,53 @@ type State struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Cue module containing the environment plan
|
// Cue module containing the environment plan
|
||||||
func (s *State) Source() Input {
|
func (s *State) CompilePlan(ctx context.Context) (*compiler.Value, error) {
|
||||||
w := s.Workspace
|
w := s.Workspace
|
||||||
// FIXME: backward compatibility
|
// FIXME: backward compatibility
|
||||||
if mod := s.Plan.Module; mod != "" {
|
if mod := s.Plan.Module; mod != "" {
|
||||||
w = path.Join(w, mod)
|
w = path.Join(w, mod)
|
||||||
}
|
}
|
||||||
return DirInput(w, []string{}, []string{})
|
|
||||||
|
// FIXME: universe vendoring
|
||||||
|
// This is already done on `dagger init` and shouldn't be done here too.
|
||||||
|
// However:
|
||||||
|
// 1) As of right now, there's no way to update universe through the
|
||||||
|
// CLI, so we are lazily updating on `dagger up` using the embedded `universe`
|
||||||
|
// 2) For backward compatibility: if the workspace was `dagger
|
||||||
|
// init`-ed before we added support for vendoring universe, it might not
|
||||||
|
// contain a `cue.mod`.
|
||||||
|
if err := vendorUniverse(ctx, w); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
args := []string{}
|
||||||
|
if pkg := s.Plan.Package; pkg != "" {
|
||||||
|
args = append(args, pkg)
|
||||||
|
}
|
||||||
|
|
||||||
|
return compiler.Build(w, nil, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *State) CompileInputs() (*compiler.Value, error) {
|
||||||
|
v := compiler.NewValue()
|
||||||
|
|
||||||
|
// Prepare inputs
|
||||||
|
for key, input := range s.Inputs {
|
||||||
|
i, err := input.Compile(key, s)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
if key == "" {
|
||||||
|
err = v.FillPath(cue.MakePath(), i)
|
||||||
|
} else {
|
||||||
|
err = v.FillPath(cue.ParsePath(key), i)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return v, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// VendorUniverse vendors the latest (built-in) version of the universe into the
|
// VendorUniverse vendors the latest (built-in) version of the universe into the
|
||||||
|
2
stdlib/.dagger/env/azure-resourcegroup/.gitignore
vendored
Normal file
2
stdlib/.dagger/env/azure-resourcegroup/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
# dagger state
|
||||||
|
state/**
|
23
stdlib/.dagger/env/azure-resourcegroup/values.yaml
vendored
Normal file
23
stdlib/.dagger/env/azure-resourcegroup/values.yaml
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
plan:
|
||||||
|
package: ./azure/resourcegroup/tests
|
||||||
|
name: azure-resourcegroup
|
||||||
|
sops:
|
||||||
|
kms: []
|
||||||
|
gcp_kms: []
|
||||||
|
azure_kv: []
|
||||||
|
hc_vault: []
|
||||||
|
age:
|
||||||
|
- recipient: age1gxwmtwahzwdmrskhf90ppwlnze30lgpm056kuesrxzeuyclrwvpsupwtpk
|
||||||
|
enc: |
|
||||||
|
-----BEGIN AGE ENCRYPTED FILE-----
|
||||||
|
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcVNxbzdlRHczM3hoSlFB
|
||||||
|
OCtid2ZyNDZsMmRYeXRJM0hmY09rUWFjanpFClNjUnFXT09yb3BJMmJKNXN1MUIw
|
||||||
|
eTNIcmZKTG5YR0h6a0UxL0lIeFRBQkEKLS0tIHk4TFRYZkdmVGFWM3lWQ0pwcmx1
|
||||||
|
TWlwSE9KTFlod21qbm5jQUdsZXVTT3cK7HMCg+rmRPy3d+uihLMPg7SvxVI7Xyr5
|
||||||
|
Jv6BZJovEyX8PaB/dozzCwGMsGB4fALG2TRNbgskjR0LTGUgzv+yhQ==
|
||||||
|
-----END AGE ENCRYPTED FILE-----
|
||||||
|
lastmodified: "2021-08-11T13:13:45Z"
|
||||||
|
mac: ENC[AES256_GCM,data:lldSGzZoJV4V56chs0Iue+gCBqvwViRY4ZeY4MajyeNBTH6i/k3YXGEZ1lI4suXLyf4BABILMQz0Y34G9oPk8cBWgPx4ZP0iCpvVa/H06xVkBVfntym7p/GWkNsOGiU3KpdGwD/0LLdjDOmL3vKbxNrpS7RvvTgQQtI4+jXtKEc=,iv:vB6P7SPT77ZOEAjTyOO6oSWRWUUWTrC4ekgT5kXvofQ=,tag:ucfzyP9V6HIfIlI8pMDROg==,type:str]
|
||||||
|
pgp: []
|
||||||
|
encrypted_suffix: secret
|
||||||
|
version: 3.7.1
|
@ -28,6 +28,9 @@ import (
|
|||||||
// Always write the object to S3
|
// Always write the object to S3
|
||||||
always: *true | false @dagger(input)
|
always: *true | false @dagger(input)
|
||||||
|
|
||||||
|
// Upload method
|
||||||
|
uploadMethod: *"cp" | "sync"
|
||||||
|
|
||||||
// URL of the uploaded S3 object
|
// URL of the uploaded S3 object
|
||||||
url: {
|
url: {
|
||||||
string
|
string
|
||||||
@ -49,6 +52,7 @@ import (
|
|||||||
if delete {
|
if delete {
|
||||||
OPT_DELETE: "1"
|
OPT_DELETE: "1"
|
||||||
}
|
}
|
||||||
|
UPLOAD_METHOD: uploadMethod
|
||||||
}
|
}
|
||||||
|
|
||||||
mount: "/source": from: source
|
mount: "/source": from: source
|
||||||
@ -62,12 +66,22 @@ import (
|
|||||||
"-c",
|
"-c",
|
||||||
#"""
|
#"""
|
||||||
opts=()
|
opts=()
|
||||||
if [ -d /source ]; then
|
case "$UPLOAD_METHOD" in
|
||||||
op=sync
|
sync)
|
||||||
fi
|
[ -n "$OPT_DELETE" ] && opts+="--delete"
|
||||||
|
opts+="--exact-timestamps"
|
||||||
|
;;
|
||||||
|
cp)
|
||||||
|
opts+="--recursive"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "not supported command"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
[ -n "$OPT_CONTENT_TYPE" ] && opts+="--content-type $OPT_CONTENT_TYPE"
|
[ -n "$OPT_CONTENT_TYPE" ] && opts+="--content-type $OPT_CONTENT_TYPE"
|
||||||
[ -n "$OPT_DELETE" ] && opts+="--delete"
|
[ -n "$OPT_DELETE" ] && opts+="--delete"
|
||||||
aws s3 sync ${opts[@]} /source "$TARGET"
|
aws s3 "$UPLOAD_METHOD" ${opts[@]} /source "$TARGET"
|
||||||
echo -n "$TARGET" \
|
echo -n "$TARGET" \
|
||||||
| sed -E 's=^s3://([^/]*)/=https://\1.s3.amazonaws.com/=' \
|
| sed -E 's=^s3://([^/]*)/=https://\1.s3.amazonaws.com/=' \
|
||||||
> /url
|
> /url
|
||||||
|
53
stdlib/azure/azure.cue
Normal file
53
stdlib/azure/azure.cue
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
// Azure base package
|
||||||
|
package azure
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/dagger"
|
||||||
|
"alpha.dagger.io/docker"
|
||||||
|
"alpha.dagger.io/os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Default Azure CLI version
|
||||||
|
let defaultVersion = "2.27.1@sha256:1e117183100c9fce099ebdc189d73e506e7b02d2b73d767d3fc07caee72f9fb1"
|
||||||
|
|
||||||
|
//Azure Config shared by all Azure packages
|
||||||
|
#Config: {
|
||||||
|
// AZURE tenant id
|
||||||
|
tenantId: dagger.#Secret & dagger.#Input
|
||||||
|
// AZURE subscription id
|
||||||
|
subscriptionId: dagger.#Secret & dagger.#Input
|
||||||
|
// AZURE app id for the service principal used
|
||||||
|
appId: dagger.#Secret & dagger.#Input
|
||||||
|
// AZURE password for the service principal used
|
||||||
|
password: dagger.#Secret & dagger.#Input
|
||||||
|
}
|
||||||
|
|
||||||
|
// Azure Cli to be used by all Azure packages
|
||||||
|
#CLI: {
|
||||||
|
// Azure Config
|
||||||
|
config: #Config
|
||||||
|
|
||||||
|
// Azure CLI version to install
|
||||||
|
version: string | *defaultVersion
|
||||||
|
|
||||||
|
// Container image
|
||||||
|
os.#Container & {
|
||||||
|
image: docker.#Pull & {
|
||||||
|
from: "mcr.microsoft.com/azure-cli:\(version)"
|
||||||
|
}
|
||||||
|
|
||||||
|
always: true
|
||||||
|
|
||||||
|
command: """
|
||||||
|
az login --service-principal -u "$(cat /run/secrets/appId)" -p "$(cat /run/secrets/password)" -t "$(cat /run/secrets/tenantId)"
|
||||||
|
az account set -s "$(cat /run/secrets/subscriptionId)"
|
||||||
|
"""
|
||||||
|
|
||||||
|
secret: {
|
||||||
|
"/run/secrets/appId": config.appId
|
||||||
|
"/run/secrets/password": config.password
|
||||||
|
"/run/secrets/tenantId": config.tenantId
|
||||||
|
"/run/secrets/subscriptionId": config.subscriptionId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
48
stdlib/azure/resourcegroup/rg.cue
Normal file
48
stdlib/azure/resourcegroup/rg.cue
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package resourcegroup
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/azure"
|
||||||
|
"alpha.dagger.io/os"
|
||||||
|
"alpha.dagger.io/dagger"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create a resource group
|
||||||
|
#ResourceGroup: {
|
||||||
|
// Azure Config
|
||||||
|
config: azure.#Config
|
||||||
|
|
||||||
|
// ResourceGroup name
|
||||||
|
rgName: string & dagger.#Input
|
||||||
|
|
||||||
|
// ResourceGroup location
|
||||||
|
rgLocation: string & dagger.#Input
|
||||||
|
|
||||||
|
// ResourceGroup Id
|
||||||
|
id: string & dagger.#Output
|
||||||
|
|
||||||
|
// Container image
|
||||||
|
ctr: os.#Container & {
|
||||||
|
image: azure.#CLI & {
|
||||||
|
"config": config
|
||||||
|
}
|
||||||
|
always: true
|
||||||
|
|
||||||
|
command: """
|
||||||
|
az group create -l "$AZURE_DEFAULTS_LOCATION" -n "$AZURE_DEFAULTS_GROUP"
|
||||||
|
az group show -n "$AZURE_DEFAULTS_GROUP" --query "id" -o json | jq -r . | tr -d "\n" > /resourceGroupId
|
||||||
|
"""
|
||||||
|
|
||||||
|
env: {
|
||||||
|
AZURE_DEFAULTS_GROUP: rgName
|
||||||
|
AZURE_DEFAULTS_LOCATION: rgLocation
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Resource Id
|
||||||
|
id: ({
|
||||||
|
os.#File & {
|
||||||
|
from: ctr
|
||||||
|
path: "/resourceGroupId"
|
||||||
|
}
|
||||||
|
}).contents
|
||||||
|
}
|
17
stdlib/azure/resourcegroup/tests/rg.cue
Normal file
17
stdlib/azure/resourcegroup/tests/rg.cue
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package resourcegroup
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/azure"
|
||||||
|
"alpha.dagger.io/azure/resourcegroup"
|
||||||
|
"alpha.dagger.io/random"
|
||||||
|
)
|
||||||
|
|
||||||
|
TestSuffix: random.#String & {
|
||||||
|
seed: "azrg"
|
||||||
|
}
|
||||||
|
|
||||||
|
TestRG: resourcegroup.#ResourceGroup & {
|
||||||
|
config: azure.#Config
|
||||||
|
rgName: "rg-test-\(TestSuffix.out)"
|
||||||
|
rgLocation: "eastus2"
|
||||||
|
}
|
52
stdlib/azure/storage/st.cue
Normal file
52
stdlib/azure/storage/st.cue
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
package storage
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/azure"
|
||||||
|
"alpha.dagger.io/os"
|
||||||
|
"alpha.dagger.io/dagger"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Create a storage account
|
||||||
|
#StorageAccount: {
|
||||||
|
// Azure Config
|
||||||
|
config: azure.#Config
|
||||||
|
|
||||||
|
// ResourceGroup name
|
||||||
|
rgName: string & dagger.#Input
|
||||||
|
|
||||||
|
// StorageAccount location
|
||||||
|
stLocation: string & dagger.#Input
|
||||||
|
|
||||||
|
// StorageAccount name
|
||||||
|
stName: string & dagger.#Input
|
||||||
|
|
||||||
|
// StorageAccount Id
|
||||||
|
id: string & dagger.#Output
|
||||||
|
|
||||||
|
// Container image
|
||||||
|
ctr: os.#Container & {
|
||||||
|
image: azure.#CLI & {
|
||||||
|
"config": config
|
||||||
|
}
|
||||||
|
always: true
|
||||||
|
|
||||||
|
command: """
|
||||||
|
az storage account create -n "$AZURE_STORAGE_ACCOUNT" -g "$AZURE_DEFAULTS_GROUP" -l "$AZURE_DEFAULTS_LOCATION"
|
||||||
|
az storage account show -n "$AZURE_STORAGE_ACCOUNT" -g "$AZURE_DEFAULTS_GROUP" --query "id" -o json | jq -r . | tr -d "\n" > /storageAccountId
|
||||||
|
"""
|
||||||
|
|
||||||
|
env: {
|
||||||
|
AZURE_DEFAULTS_GROUP: rgName
|
||||||
|
AZURE_DEFAULTS_LOCATION: stLocation
|
||||||
|
AZURE_STORAGE_ACCOUNT: stName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// StorageAccount Id
|
||||||
|
id: ({
|
||||||
|
os.#File & {
|
||||||
|
from: ctr
|
||||||
|
path: "/storageAccountId"
|
||||||
|
}
|
||||||
|
}).contents
|
||||||
|
}
|
28
stdlib/azure/storage/tests/st.cue
Normal file
28
stdlib/azure/storage/tests/st.cue
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
package storage
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/azure"
|
||||||
|
"alpha.dagger.io/azure/resourcegroup"
|
||||||
|
"alpha.dagger.io/azure/storage"
|
||||||
|
"alpha.dagger.io/random"
|
||||||
|
)
|
||||||
|
|
||||||
|
TestConfig: azureConfig: azure.#Config & {
|
||||||
|
}
|
||||||
|
|
||||||
|
TestSuffix: random.#String & {
|
||||||
|
seed: "azst"
|
||||||
|
}
|
||||||
|
|
||||||
|
TestRG: resourcegroup.#ResourceGroup & {
|
||||||
|
config: TestConfig.azureConfig
|
||||||
|
rgName: "rg-test-\(TestSuffix.out)"
|
||||||
|
rgLocation: "eastus2"
|
||||||
|
}
|
||||||
|
|
||||||
|
TestStorage: storage.#StorageAccount & {
|
||||||
|
config: TestConfig.azureConfig
|
||||||
|
rgName: "rg-test-ahkkzwyoaucw"
|
||||||
|
stLocation: "eastus2"
|
||||||
|
stName: "st\(TestSuffix.out)001"
|
||||||
|
}
|
@ -50,7 +50,13 @@ package op
|
|||||||
// `true` means also ignoring the mount cache volumes
|
// `true` means also ignoring the mount cache volumes
|
||||||
always?: true | *false
|
always?: true | *false
|
||||||
dir: string | *"/"
|
dir: string | *"/"
|
||||||
mount: [string]: "tmpfs" | "cache" | {from: _, path: string | *"/"} | {secret: _}
|
// HACK: FIXME later [Performance related]
|
||||||
|
// mount: [string]: "tmpfs" | "cache" | {from: _, path: string | *"/"} | {secret: _}
|
||||||
|
// https://github.com/dagger/dagger/issues/856
|
||||||
|
mount: [string]: {
|
||||||
|
_
|
||||||
|
...
|
||||||
|
}
|
||||||
// Map of hostnames to ip
|
// Map of hostnames to ip
|
||||||
hosts?: [string]: string
|
hosts?: [string]: string
|
||||||
// User to exec with (if left empty, will default to the set user in the image)
|
// User to exec with (if left empty, will default to the set user in the image)
|
||||||
|
@ -11,19 +11,25 @@ import (
|
|||||||
#Repository: {
|
#Repository: {
|
||||||
// Git remote.
|
// Git remote.
|
||||||
// Example: `"https://github.com/dagger/dagger"`
|
// Example: `"https://github.com/dagger/dagger"`
|
||||||
remote: string @dagger(input)
|
remote: string & dagger.#Input
|
||||||
|
|
||||||
// Git ref: can be a commit, tag or branch.
|
// Git ref: can be a commit, tag or branch.
|
||||||
// Example: "main"
|
// Example: "main"
|
||||||
ref: string @dagger(input)
|
ref: string & dagger.#Input
|
||||||
|
|
||||||
// (optional) Subdirectory
|
// (optional) Subdirectory
|
||||||
subdir: string | *null @dagger(input)
|
subdir: *null | string & dagger.#Input
|
||||||
|
|
||||||
|
// (optional) Keep .git directory
|
||||||
|
keepGitDir: *false | bool
|
||||||
|
|
||||||
#up: [
|
#up: [
|
||||||
op.#FetchGit & {
|
op.#FetchGit & {
|
||||||
"remote": remote
|
"remote": remote
|
||||||
"ref": ref
|
"ref": ref
|
||||||
|
if (keepGitDir) {
|
||||||
|
keepGitDir: true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
if subdir != null {
|
if subdir != null {
|
||||||
op.#Subdir & {
|
op.#Subdir & {
|
||||||
|
@ -6,18 +6,19 @@ import (
|
|||||||
"alpha.dagger.io/git"
|
"alpha.dagger.io/git"
|
||||||
"alpha.dagger.io/alpine"
|
"alpha.dagger.io/alpine"
|
||||||
"alpha.dagger.io/os"
|
"alpha.dagger.io/os"
|
||||||
"alpha.dagger.io/dagger/op"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
repo: git.#Repository & {
|
repo: git.#Repository & {
|
||||||
remote: "https://github.com/blocklayerhq/acme-clothing.git"
|
remote: "https://github.com/blocklayerhq/acme-clothing.git"
|
||||||
ref: "master"
|
ref: "master"
|
||||||
|
keepGitDir: true
|
||||||
|
}
|
||||||
|
|
||||||
#up: [
|
repoSubDir: git.#Repository & {
|
||||||
op.#FetchGit & {
|
remote: "https://github.com/dagger/examples.git"
|
||||||
keepGitDir: true
|
ref: "main"
|
||||||
},
|
subdir: "todoapp"
|
||||||
]
|
keepGitDir: true
|
||||||
}
|
}
|
||||||
|
|
||||||
branch: git.#CurrentBranch & {
|
branch: git.#CurrentBranch & {
|
||||||
@ -40,6 +41,18 @@ TestRepository: os.#Container & {
|
|||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TestSubRepository: os.#Container & {
|
||||||
|
image: alpine.#Image & {
|
||||||
|
package: bash: "=5.1.0-r0"
|
||||||
|
package: git: true
|
||||||
|
}
|
||||||
|
mount: "/repo1": from: repoSubDir
|
||||||
|
dir: "/repo1"
|
||||||
|
command: """
|
||||||
|
[ -d src ]
|
||||||
|
"""
|
||||||
|
}
|
||||||
|
|
||||||
TestCurrentBranch: os.#Container & {
|
TestCurrentBranch: os.#Container & {
|
||||||
image: alpine.#Image & {
|
image: alpine.#Image & {
|
||||||
package: bash: "=5.1.0-r0"
|
package: bash: "=5.1.0-r0"
|
||||||
|
@ -34,9 +34,6 @@ import (
|
|||||||
let cachePath = "/root/.cache/gocache"
|
let cachePath = "/root/.cache/gocache"
|
||||||
cache: "\(cachePath)": true
|
cache: "\(cachePath)": true
|
||||||
env: GOMODCACHE: cachePath
|
env: GOMODCACHE: cachePath
|
||||||
|
|
||||||
// Add go to search path (FIXME: should be inherited from image metadata)
|
|
||||||
shell: search: "/usr/local/go/bin": true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package os
|
package os
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strings"
|
|
||||||
|
|
||||||
"alpha.dagger.io/dagger"
|
"alpha.dagger.io/dagger"
|
||||||
"alpha.dagger.io/dagger/op"
|
"alpha.dagger.io/dagger/op"
|
||||||
|
|
||||||
@ -68,20 +66,7 @@ import (
|
|||||||
path: string | *"/bin/sh"
|
path: string | *"/bin/sh"
|
||||||
// Arguments to pass to the shell prior to the command
|
// Arguments to pass to the shell prior to the command
|
||||||
args: [...string] | *["-c"]
|
args: [...string] | *["-c"]
|
||||||
// Map of directories to search for commands
|
|
||||||
// In POSIX shells this is used to generate the $PATH
|
|
||||||
// environment variable.
|
|
||||||
search: [string]: bool
|
|
||||||
search: {
|
|
||||||
"/sbin": true
|
|
||||||
"/bin": true
|
|
||||||
"/usr/sbin": true
|
|
||||||
"/usr/bin": true
|
|
||||||
"/usr/local/sbin": true
|
|
||||||
"/usr/local/bin": true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
env: PATH: string | *strings.Join([ for p, v in shell.search if v {p}], ":")
|
|
||||||
|
|
||||||
#up: [
|
#up: [
|
||||||
op.#Load & {from: image},
|
op.#Load & {from: image},
|
||||||
|
@ -63,7 +63,6 @@ setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "docker push and pull" {
|
@test "docker push and pull" {
|
||||||
skip "An occasional data race condition happen in the CI. Must be fix before execute that test"
|
|
||||||
# Push image
|
# Push image
|
||||||
dagger -e docker-push up
|
dagger -e docker-push up
|
||||||
|
|
||||||
@ -75,7 +74,6 @@ setup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "docker push: multi registry" {
|
@test "docker push: multi registry" {
|
||||||
skip "An occasional data race condition happen in the CI. Must be fix before execute that test"
|
|
||||||
run dagger -e docker-push-multi-registry up
|
run dagger -e docker-push-multi-registry up
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -184,3 +182,13 @@ setup() {
|
|||||||
run dagger -w "$DAGGER_SANDBOX" -e terraform input unset TestTerraform.apply.tfvars.input
|
run dagger -w "$DAGGER_SANDBOX" -e terraform input unset TestTerraform.apply.tfvars.input
|
||||||
assert_success
|
assert_success
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "azure-resourcegroup" {
|
||||||
|
skip "Azure CI infra not implemented yet - manually tested and working"
|
||||||
|
#dagger -e azure-resourcegroup up
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "azure-storage" {
|
||||||
|
skip "Azure CI infra not implemented yet - manually tested and working"
|
||||||
|
#dagger -e azure-storage up
|
||||||
|
}
|
@ -336,12 +336,15 @@ setup() {
|
|||||||
@test "dagger input git" {
|
@test "dagger input git" {
|
||||||
"$DAGGER" init
|
"$DAGGER" init
|
||||||
|
|
||||||
dagger_new_with_plan input "$TESTDIR"/cli/input/artifact
|
## Test simple input git
|
||||||
|
dagger_new_with_plan "input-simple-git" "$TESTDIR"/cli/input/artifact
|
||||||
|
|
||||||
# input git
|
# input git
|
||||||
"$DAGGER" input -e "input" git "source" https://github.com/samalba/dagger-test-simple.git
|
"$DAGGER" -e "input-simple-git" input list
|
||||||
"$DAGGER" up -e "input"
|
"$DAGGER" -e "input-simple-git" input git source "https://github.com/samalba/dagger-test-simple"
|
||||||
run "$DAGGER" -l error query -e "input"
|
"$DAGGER" -e "input-simple-git" input list
|
||||||
|
"$DAGGER" -e "input-simple-git" up --no-cache
|
||||||
|
run "$DAGGER" -l error query -e "input-simple-git"
|
||||||
assert_output '{
|
assert_output '{
|
||||||
"bar": "testgit\n",
|
"bar": "testgit\n",
|
||||||
"foo": "bar",
|
"foo": "bar",
|
||||||
@ -349,12 +352,21 @@ setup() {
|
|||||||
}'
|
}'
|
||||||
|
|
||||||
# unset input git
|
# unset input git
|
||||||
"$DAGGER" input -e "input" unset "source"
|
"$DAGGER" input -e "input-simple-git" unset "source"
|
||||||
"$DAGGER" up -e "input"
|
"$DAGGER" up -e "input-simple-git"
|
||||||
run "$DAGGER" -l error query -e "input"
|
run "$DAGGER" -l error query -e "input-simple-git"
|
||||||
assert_output '{
|
assert_output '{
|
||||||
"foo": "bar"
|
"foo": "bar"
|
||||||
}'
|
}'
|
||||||
|
|
||||||
|
## Test input git with subdir
|
||||||
|
dagger_new_with_plan "input-subdir-git" "$TESTDIR"/cli/input/git
|
||||||
|
|
||||||
|
# input git
|
||||||
|
"$DAGGER" -e "input-subdir-git" input git TestRepo "https://github.com/dagger/examples" "main" "todoapp"
|
||||||
|
|
||||||
|
# Assert success (test is directly in the cue file)
|
||||||
|
"$DAGGER" -e "input-subdir-git" up
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "dagger input list" {
|
@test "dagger input list" {
|
||||||
@ -364,28 +376,41 @@ setup() {
|
|||||||
"$DAGGER" input text cfg.str "foobar" -e "list"
|
"$DAGGER" input text cfg.str "foobar" -e "list"
|
||||||
|
|
||||||
out="$("$DAGGER" input list -e "list")"
|
out="$("$DAGGER" input list -e "list")"
|
||||||
|
outOpt="$("$DAGGER" input list --show-optional -e "list")"
|
||||||
outAll="$("$DAGGER" input list --all -e "list")"
|
outAll="$("$DAGGER" input list --all -e "list")"
|
||||||
|
|
||||||
#note: this is the recommended way to use pipes with bats
|
#note: this is the recommended way to use pipes with bats
|
||||||
run bash -c "echo \"$out\" | grep awsConfig.accessKey | grep 'dagger.#Secret' | grep 'AWS access key'"
|
run bash -c "echo \"$out\" | grep awsConfig.accessKey | grep 'dagger.#Secret' | grep false | grep 'AWS access key'"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
run bash -c "echo \"$out\" | grep cfgInline.source | grep 'dagger.#Artifact' | grep false | grep 'source dir'"
|
run bash -c "echo \"$out\" | grep cfgInline.source | grep 'dagger.#Artifact' | grep false | grep 'source dir'"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
|
run bash -c "echo \"$outOpt\" | grep awsConfig.accessKey | grep 'dagger.#Secret' | grep 'AWS access key'"
|
||||||
|
assert_success
|
||||||
|
|
||||||
|
run bash -c "echo \"$outOpt\" | grep cfgInline.source | grep 'dagger.#Artifact' | grep false | grep 'source dir'"
|
||||||
|
assert_success
|
||||||
|
|
||||||
run bash -c "echo \"$outAll\" | grep cfg2"
|
run bash -c "echo \"$outAll\" | grep cfg2"
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|
||||||
run bash -c "echo \"$out\" | grep cfgInline.strDef | grep '*yolo | string' | grep false"
|
run bash -c "echo \"$out\" | grep cfgInline.strDef | grep '*yolo | string' | grep false"
|
||||||
|
assert_failure
|
||||||
|
|
||||||
|
run bash -c "echo \"$outOpt\" | grep cfgInline.strDef | grep '*yolo | string' | grep false"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
run bash -c "echo \"$out\" | grep cfg.num"
|
run bash -c "echo \"$out\" | grep cfg.num"
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|
||||||
|
run bash -c "echo \"$outOpt\" | grep cfg.num"
|
||||||
|
assert_failure
|
||||||
|
|
||||||
run bash -c "echo \"$outAll\" | grep cfg.num | grep 21 | grep -v int"
|
run bash -c "echo \"$outAll\" | grep cfg.num | grep 21 | grep -v int"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
run bash -c "echo \"$out\" | grep cfg.strSet"
|
run bash -c "echo \"$outOpt\" | grep cfg.strSet"
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|
||||||
run bash -c "echo \"$outAll\" | grep cfg.strSet | grep pipo"
|
run bash -c "echo \"$outAll\" | grep cfg.strSet | grep pipo"
|
||||||
|
18
tests/cli/input/git/main.cue
Normal file
18
tests/cli/input/git/main.cue
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package testing
|
||||||
|
|
||||||
|
import (
|
||||||
|
"alpha.dagger.io/dagger"
|
||||||
|
"alpha.dagger.io/os"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Input https://github.com/dagger/examples/tree/main/todoapp
|
||||||
|
TestRepo: dagger.#Input & {dagger.#Artifact}
|
||||||
|
|
||||||
|
// Check README.md
|
||||||
|
TestFolder: os.#Container & {
|
||||||
|
always: true
|
||||||
|
command: #"""
|
||||||
|
grep -q "Todo APP" /input/repo/README.md
|
||||||
|
"""#
|
||||||
|
mount: "/input/repo": from: TestRepo
|
||||||
|
}
|
@ -20,7 +20,7 @@ setup() {
|
|||||||
dagger_new_with_plan test-core "$TESTDIR"/core/inputs-outputs
|
dagger_new_with_plan test-core "$TESTDIR"/core/inputs-outputs
|
||||||
|
|
||||||
# List available inputs
|
# List available inputs
|
||||||
run dagger -e test-core input list
|
run dagger -e test-core input list --show-optional
|
||||||
assert_success
|
assert_success
|
||||||
assert_output --partial 'name'
|
assert_output --partial 'name'
|
||||||
assert_output --partial 'dir'
|
assert_output --partial 'dir'
|
||||||
|
39
website/docsearch.config.json
Normal file
39
website/docsearch.config.json
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
{
|
||||||
|
"index_name": "Dagger_docs",
|
||||||
|
"start_urls": ["https://docs.dagger.io/", "https://devel.docs.dagger.io/"],
|
||||||
|
"sitemap_urls": [
|
||||||
|
"https://docs.dagger.io/sitemap.xml",
|
||||||
|
"https://devel.docs.dagger.io/sitemap.xml"
|
||||||
|
],
|
||||||
|
"sitemap_alternate_links": true,
|
||||||
|
"stop_urls": [],
|
||||||
|
"selectors": {
|
||||||
|
"lvl0": {
|
||||||
|
"selector": "(//ul[contains(@class,'menu__list')]//a[contains(@class, 'menu__link menu__link--sublist menu__link--active')]/text() | //nav[contains(@class, 'navbar')]//a[contains(@class, 'navbar__link--active')]/text())[last()]",
|
||||||
|
"type": "xpath",
|
||||||
|
"global": true,
|
||||||
|
"default_value": "Documentation"
|
||||||
|
},
|
||||||
|
"lvl1": "header h1",
|
||||||
|
"lvl2": "article h2",
|
||||||
|
"lvl3": "article h3",
|
||||||
|
"lvl4": "article h4",
|
||||||
|
"lvl5": "article h5, article td:first-child",
|
||||||
|
"text": "article p, article li, article td:last-child"
|
||||||
|
},
|
||||||
|
"strip_chars": " .,;:#",
|
||||||
|
"custom_settings": {
|
||||||
|
"separatorsToIndex": "_",
|
||||||
|
"attributesForFaceting": ["language", "version", "type", "docusaurus_tag"],
|
||||||
|
"attributesToRetrieve": [
|
||||||
|
"hierarchy",
|
||||||
|
"content",
|
||||||
|
"anchor",
|
||||||
|
"url",
|
||||||
|
"url_without_anchor",
|
||||||
|
"type"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"conversation_id": ["1531673588"],
|
||||||
|
"nb_hits": 128
|
||||||
|
}
|
@ -27,8 +27,12 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
algolia: {
|
algolia: {
|
||||||
apiKey: "b2324f1ac8932ab80916382521473115",
|
apiKey: "559dcddb4378b889baa48352394616ec",
|
||||||
indexName: "daggosaurus",
|
indexName: "Dagger_docs",
|
||||||
|
appId: 'XSSC1LRN4S',
|
||||||
|
},
|
||||||
|
hotjar: {
|
||||||
|
siteId: "2541514",
|
||||||
},
|
},
|
||||||
colorMode: {
|
colorMode: {
|
||||||
// "light" | "dark"
|
// "light" | "dark"
|
||||||
@ -40,7 +44,7 @@ module.exports = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
gtag: {
|
gtag: {
|
||||||
trackingID: 'G-RDXG80F635',
|
trackingID: "G-RDXG80F635",
|
||||||
anonymizeIP: true,
|
anonymizeIP: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -63,10 +67,12 @@ module.exports = {
|
|||||||
plugins: [
|
plugins: [
|
||||||
"docusaurus-plugin-sass",
|
"docusaurus-plugin-sass",
|
||||||
[
|
[
|
||||||
"docusaurus2-dotenv", {
|
"docusaurus2-dotenv",
|
||||||
|
{
|
||||||
systemvars: true,
|
systemvars: true,
|
||||||
expand: true,
|
expand: true,
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
|
path.resolve(__dirname, "plugins/docusaurus-plugin-hotjar"),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
@ -16,19 +16,19 @@
|
|||||||
"write-heading-ids": "docusaurus write-heading-ids"
|
"write-heading-ids": "docusaurus write-heading-ids"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@docusaurus/core": "2.0.0-beta.2",
|
"@docusaurus/core": "2.0.0-beta.4",
|
||||||
"@docusaurus/preset-classic": "2.0.0-beta.2",
|
"@docusaurus/preset-classic": "2.0.0-beta.2",
|
||||||
"@mdx-js/react": "^1.6.21",
|
"@mdx-js/react": "^1.6.21",
|
||||||
"@svgr/webpack": "^5.5.0",
|
"@svgr/webpack": "^5.5.0",
|
||||||
"amplitude-js": "^8.3.1",
|
"amplitude-js": "^8.5.0",
|
||||||
"clsx": "^1.1.1",
|
"clsx": "^1.1.1",
|
||||||
"docusaurus-plugin-sass": "^0.2.1",
|
"docusaurus-plugin-sass": "^0.2.1",
|
||||||
"docusaurus2-dotenv": "^1.4.0",
|
"docusaurus2-dotenv": "^1.4.0",
|
||||||
"file-loader": "^6.2.0",
|
"file-loader": "^6.2.0",
|
||||||
"react": "^17.0.1",
|
"react": "^17.0.1",
|
||||||
"react-dom": "^17.0.1",
|
"react-dom": "^17.0.1",
|
||||||
"react-social-login-buttons": "^3.5.0",
|
"react-social-login-buttons": "^3.5.1",
|
||||||
"sass": "^1.35.2",
|
"sass": "^1.38.0",
|
||||||
"url-loader": "^4.1.1"
|
"url-loader": "^4.1.1"
|
||||||
},
|
},
|
||||||
"browserslist": {
|
"browserslist": {
|
||||||
|
46
website/plugins/docusaurus-plugin-hotjar/index.js
Normal file
46
website/plugins/docusaurus-plugin-hotjar/index.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
module.exports = function (context) {
|
||||||
|
const { siteConfig } = context;
|
||||||
|
const { themeConfig } = siteConfig;
|
||||||
|
const { hotjar } = themeConfig || {};
|
||||||
|
|
||||||
|
if (!hotjar) {
|
||||||
|
throw new Error(
|
||||||
|
`Create a 'hotjar' object containing a 'siteId' property in 'themeConfig'.`
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const { siteId } = hotjar;
|
||||||
|
|
||||||
|
if (!siteId) {
|
||||||
|
throw new Error(
|
||||||
|
"Error in `themeConfig`. `hotjar` object found but `siteId` prop is missing."
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: "docusaurus-plugin-hotjar",
|
||||||
|
|
||||||
|
injectHtmlTags() {
|
||||||
|
return {
|
||||||
|
headTags: [
|
||||||
|
{
|
||||||
|
tagName: "script",
|
||||||
|
innerHTML: `
|
||||||
|
<!-- Hotjar Tracking Code -->
|
||||||
|
(function(h,o,t,j,a,r){
|
||||||
|
h.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};
|
||||||
|
h._hjSettings={hjid:${siteId},hjsv:6};
|
||||||
|
a=o.getElementsByTagName('head')[0];
|
||||||
|
r=o.createElement('script');r.async=1;
|
||||||
|
r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
|
||||||
|
a.appendChild(r);
|
||||||
|
})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
};
|
@ -129,15 +129,15 @@ p {
|
|||||||
line-height: 24px;
|
line-height: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
a[target="_blank"]:not(.edit-this-page) {
|
a.menu__link[target="_blank"] {
|
||||||
svg {
|
svg {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
&:after {
|
&:after {
|
||||||
background: var(--ifm-color-primary-darker);
|
background: var(--ifm-color-primary-darker);
|
||||||
mask: url("/img/Dagger_Icons_External-link.svg") no-repeat;
|
mask: url("/img/Dagger_Icons_External-link.svg") no-repeat;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
content:'';
|
content: "";
|
||||||
right: var(--ifm-menu-link-padding-horizontal);
|
right: var(--ifm-menu-link-padding-horizontal);
|
||||||
top: var(--ifm-menu-link-padding-vertical);
|
top: var(--ifm-menu-link-padding-vertical);
|
||||||
height: 1.25rem;
|
height: 1.25rem;
|
||||||
|
@ -170,6 +170,10 @@ function DocPage(props) {
|
|||||||
apiEndpoint: `${window.location.hostname}/t`
|
apiEndpoint: `${window.location.hostname}/t`
|
||||||
});
|
});
|
||||||
amplitude.getInstance().logEvent('Docs Viewed', { "hostname": window.location.hostname, "path": location.pathname });
|
amplitude.getInstance().logEvent('Docs Viewed', { "hostname": window.location.hostname, "path": location.pathname });
|
||||||
|
|
||||||
|
if (window?.hj) {
|
||||||
|
window.hj("identify", userAccessStatus?.login.toLowerCase(), {});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}, [location.pathname, userAccessStatus])
|
}, [location.pathname, userAccessStatus])
|
||||||
|
@ -1262,6 +1262,90 @@
|
|||||||
webpack-merge "^5.8.0"
|
webpack-merge "^5.8.0"
|
||||||
webpackbar "^5.0.0-3"
|
webpackbar "^5.0.0-3"
|
||||||
|
|
||||||
|
"@docusaurus/core@2.0.0-beta.4":
|
||||||
|
version "2.0.0-beta.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.4.tgz#b41c5064c8737405cfceb1a373c9c5aa3410fd95"
|
||||||
|
integrity sha512-ITa976MPFl9KbYchMOWCCX6SU6EFDSdGeGOHtpaNcrJ9e9Sj7o77fKmMH/ciShwz1g8brTm3VxZ0FwleU8lTig==
|
||||||
|
dependencies:
|
||||||
|
"@babel/core" "^7.12.16"
|
||||||
|
"@babel/generator" "^7.12.15"
|
||||||
|
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
||||||
|
"@babel/plugin-transform-runtime" "^7.12.15"
|
||||||
|
"@babel/preset-env" "^7.12.16"
|
||||||
|
"@babel/preset-react" "^7.12.13"
|
||||||
|
"@babel/preset-typescript" "^7.12.16"
|
||||||
|
"@babel/runtime" "^7.12.5"
|
||||||
|
"@babel/runtime-corejs3" "^7.12.13"
|
||||||
|
"@babel/traverse" "^7.12.13"
|
||||||
|
"@docusaurus/cssnano-preset" "2.0.0-beta.4"
|
||||||
|
"@docusaurus/react-loadable" "5.5.0"
|
||||||
|
"@docusaurus/types" "2.0.0-beta.4"
|
||||||
|
"@docusaurus/utils" "2.0.0-beta.4"
|
||||||
|
"@docusaurus/utils-common" "2.0.0-beta.4"
|
||||||
|
"@docusaurus/utils-validation" "2.0.0-beta.4"
|
||||||
|
"@slorber/static-site-generator-webpack-plugin" "^4.0.0"
|
||||||
|
"@svgr/webpack" "^5.5.0"
|
||||||
|
autoprefixer "^10.2.5"
|
||||||
|
babel-loader "^8.2.2"
|
||||||
|
babel-plugin-dynamic-import-node "2.3.0"
|
||||||
|
boxen "^5.0.1"
|
||||||
|
chalk "^4.1.1"
|
||||||
|
chokidar "^3.5.1"
|
||||||
|
clean-css "^5.1.2"
|
||||||
|
commander "^5.1.0"
|
||||||
|
copy-webpack-plugin "^9.0.0"
|
||||||
|
core-js "^3.9.1"
|
||||||
|
css-loader "^5.1.1"
|
||||||
|
css-minimizer-webpack-plugin "^3.0.1"
|
||||||
|
cssnano "^5.0.4"
|
||||||
|
del "^6.0.0"
|
||||||
|
detect-port "^1.3.0"
|
||||||
|
escape-html "^1.0.3"
|
||||||
|
eta "^1.12.1"
|
||||||
|
express "^4.17.1"
|
||||||
|
file-loader "^6.2.0"
|
||||||
|
fs-extra "^10.0.0"
|
||||||
|
github-slugger "^1.3.0"
|
||||||
|
globby "^11.0.2"
|
||||||
|
html-minifier-terser "^5.1.1"
|
||||||
|
html-tags "^3.1.0"
|
||||||
|
html-webpack-plugin "^5.3.2"
|
||||||
|
import-fresh "^3.3.0"
|
||||||
|
is-root "^2.1.0"
|
||||||
|
leven "^3.1.0"
|
||||||
|
lodash "^4.17.20"
|
||||||
|
mini-css-extract-plugin "^1.6.0"
|
||||||
|
module-alias "^2.2.2"
|
||||||
|
nprogress "^0.2.0"
|
||||||
|
postcss "^8.2.15"
|
||||||
|
postcss-loader "^5.3.0"
|
||||||
|
prompts "^2.4.1"
|
||||||
|
react-dev-utils "^11.0.1"
|
||||||
|
react-error-overlay "^6.0.9"
|
||||||
|
react-helmet "^6.1.0"
|
||||||
|
react-loadable "^5.5.0"
|
||||||
|
react-loadable-ssr-addon-v5-slorber "^1.0.1"
|
||||||
|
react-router "^5.2.0"
|
||||||
|
react-router-config "^5.1.1"
|
||||||
|
react-router-dom "^5.2.0"
|
||||||
|
resolve-pathname "^3.0.0"
|
||||||
|
rtl-detect "^1.0.3"
|
||||||
|
semver "^7.3.4"
|
||||||
|
serve-handler "^6.1.3"
|
||||||
|
shelljs "^0.8.4"
|
||||||
|
std-env "^2.2.1"
|
||||||
|
strip-ansi "^6.0.0"
|
||||||
|
terser-webpack-plugin "^5.1.3"
|
||||||
|
tslib "^2.2.0"
|
||||||
|
update-notifier "^5.1.0"
|
||||||
|
url-loader "^4.1.1"
|
||||||
|
wait-on "^5.3.0"
|
||||||
|
webpack "^5.40.0"
|
||||||
|
webpack-bundle-analyzer "^4.4.2"
|
||||||
|
webpack-dev-server "^3.11.2"
|
||||||
|
webpack-merge "^5.8.0"
|
||||||
|
webpackbar "^5.0.0-3"
|
||||||
|
|
||||||
"@docusaurus/cssnano-preset@2.0.0-beta.2":
|
"@docusaurus/cssnano-preset@2.0.0-beta.2":
|
||||||
version "2.0.0-beta.2"
|
version "2.0.0-beta.2"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.2.tgz#2da6ef240c7842f9a56575c8e8c3293c6e857213"
|
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.2.tgz#2da6ef240c7842f9a56575c8e8c3293c6e857213"
|
||||||
@ -1271,6 +1355,15 @@
|
|||||||
postcss "^8.2.15"
|
postcss "^8.2.15"
|
||||||
postcss-sort-media-queries "^3.10.11"
|
postcss-sort-media-queries "^3.10.11"
|
||||||
|
|
||||||
|
"@docusaurus/cssnano-preset@2.0.0-beta.4":
|
||||||
|
version "2.0.0-beta.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.4.tgz#a40c0bee39143a531ca4dde05bb3a84bec416668"
|
||||||
|
integrity sha512-KsmFEob0ElffnFFbz93wcYH4IncU4LDnKBerdomU0Wdg/vXTLo3Q7no8df9yjbcBXVRaSX+/tNFapY9Iu/4Cew==
|
||||||
|
dependencies:
|
||||||
|
cssnano-preset-advanced "^5.1.1"
|
||||||
|
postcss "^8.2.15"
|
||||||
|
postcss-sort-media-queries "^3.10.11"
|
||||||
|
|
||||||
"@docusaurus/mdx-loader@2.0.0-beta.2":
|
"@docusaurus/mdx-loader@2.0.0-beta.2":
|
||||||
version "2.0.0-beta.2"
|
version "2.0.0-beta.2"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.2.tgz#6bd42ea069bd0ba57fa0ab5b2b65357c9fa1e88f"
|
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.2.tgz#6bd42ea069bd0ba57fa0ab5b2b65357c9fa1e88f"
|
||||||
@ -1492,6 +1585,17 @@
|
|||||||
webpack "^5.40.0"
|
webpack "^5.40.0"
|
||||||
webpack-merge "^5.8.0"
|
webpack-merge "^5.8.0"
|
||||||
|
|
||||||
|
"@docusaurus/types@2.0.0-beta.4":
|
||||||
|
version "2.0.0-beta.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.4.tgz#9eef0a88b008ebd65bb9870b7ff0050de0e620c4"
|
||||||
|
integrity sha512-2aMCliUCBYhZO8UiiPIKpRu2KECtqt0nRu44EbN6rj1STf695AIOhJC1Zo5TiuW2WbiljSbkJTgG3XdBZ3FUBw==
|
||||||
|
dependencies:
|
||||||
|
commander "^5.1.0"
|
||||||
|
joi "^17.4.0"
|
||||||
|
querystring "0.2.0"
|
||||||
|
webpack "^5.40.0"
|
||||||
|
webpack-merge "^5.8.0"
|
||||||
|
|
||||||
"@docusaurus/utils-common@2.0.0-beta.2":
|
"@docusaurus/utils-common@2.0.0-beta.2":
|
||||||
version "2.0.0-beta.2"
|
version "2.0.0-beta.2"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.2.tgz#b3c7ab1bae138ce0c99963e2ff0f276c2a2a4108"
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.2.tgz#b3c7ab1bae138ce0c99963e2ff0f276c2a2a4108"
|
||||||
@ -1500,6 +1604,14 @@
|
|||||||
"@docusaurus/types" "2.0.0-beta.2"
|
"@docusaurus/types" "2.0.0-beta.2"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
|
"@docusaurus/utils-common@2.0.0-beta.4":
|
||||||
|
version "2.0.0-beta.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.4.tgz#eb2e5876f5f79d037fa7e1867177658661b9c1c2"
|
||||||
|
integrity sha512-QaKs96/95ztKgZqHMUS/vNl+GzZ/6vKVEPjBXWt7Fdhg2soT1Iu4cShnibEO5HaVlwSfnJbVmDLVm8phQRdr0A==
|
||||||
|
dependencies:
|
||||||
|
"@docusaurus/types" "2.0.0-beta.4"
|
||||||
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@docusaurus/utils-validation@2.0.0-beta.2":
|
"@docusaurus/utils-validation@2.0.0-beta.2":
|
||||||
version "2.0.0-beta.2"
|
version "2.0.0-beta.2"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.2.tgz#4254a0dfd91c5a1fe00cbd1f8e134d8cd5dd963d"
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.2.tgz#4254a0dfd91c5a1fe00cbd1f8e134d8cd5dd963d"
|
||||||
@ -1510,6 +1622,16 @@
|
|||||||
joi "^17.4.0"
|
joi "^17.4.0"
|
||||||
tslib "^2.1.0"
|
tslib "^2.1.0"
|
||||||
|
|
||||||
|
"@docusaurus/utils-validation@2.0.0-beta.4":
|
||||||
|
version "2.0.0-beta.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.4.tgz#417ff389d61aab4c6544f169e31bb86573b518df"
|
||||||
|
integrity sha512-t1sxSeyVU02NkcFhPvE7eQFA0CFUst68hTnie6ZS3ToY3nlzdbYRPOAZY5MPr3zRMwum6yFAXgqVA+5fnR0OGg==
|
||||||
|
dependencies:
|
||||||
|
"@docusaurus/utils" "2.0.0-beta.4"
|
||||||
|
chalk "^4.1.1"
|
||||||
|
joi "^17.4.0"
|
||||||
|
tslib "^2.1.0"
|
||||||
|
|
||||||
"@docusaurus/utils@2.0.0-beta.2":
|
"@docusaurus/utils@2.0.0-beta.2":
|
||||||
version "2.0.0-beta.2"
|
version "2.0.0-beta.2"
|
||||||
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.2.tgz#7746b371d813ed3fc7928de3e524914c0abfd20c"
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.2.tgz#7746b371d813ed3fc7928de3e524914c0abfd20c"
|
||||||
@ -1525,6 +1647,23 @@
|
|||||||
resolve-pathname "^3.0.0"
|
resolve-pathname "^3.0.0"
|
||||||
tslib "^2.2.0"
|
tslib "^2.2.0"
|
||||||
|
|
||||||
|
"@docusaurus/utils@2.0.0-beta.4":
|
||||||
|
version "2.0.0-beta.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.4.tgz#6e572371b0a59360b49102d014579f5364f1d8da"
|
||||||
|
integrity sha512-6nI3ETBp0ZSt5yp5Fc5nthQjR1MmLgl2rXC3hcscrSUZx0QvzJFzTiRgD9EAIJtR/i2JkUK18eaFiBjMBoXEbQ==
|
||||||
|
dependencies:
|
||||||
|
"@docusaurus/types" "2.0.0-beta.4"
|
||||||
|
"@types/github-slugger" "^1.3.0"
|
||||||
|
chalk "^4.1.1"
|
||||||
|
escape-string-regexp "^4.0.0"
|
||||||
|
fs-extra "^10.0.0"
|
||||||
|
globby "^11.0.4"
|
||||||
|
gray-matter "^4.0.3"
|
||||||
|
lodash "^4.17.20"
|
||||||
|
micromatch "^4.0.4"
|
||||||
|
resolve-pathname "^3.0.0"
|
||||||
|
tslib "^2.2.0"
|
||||||
|
|
||||||
"@hapi/hoek@^9.0.0":
|
"@hapi/hoek@^9.0.0":
|
||||||
version "9.2.0"
|
version "9.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131"
|
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.2.0.tgz#f3933a44e365864f4dad5db94158106d511e8131"
|
||||||
@ -2060,10 +2199,10 @@ alphanum-sort@^1.0.2:
|
|||||||
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
|
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
|
||||||
integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
|
integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
|
||||||
|
|
||||||
amplitude-js@^8.3.1:
|
amplitude-js@^8.5.0:
|
||||||
version "8.3.1"
|
version "8.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/amplitude-js/-/amplitude-js-8.3.1.tgz#8ce73aa0e5bf327eae571b93602b25cc82d3a1f4"
|
resolved "https://registry.yarnpkg.com/amplitude-js/-/amplitude-js-8.5.0.tgz#17f75ca84f5ebee7dab212f4a0a100d606dbd989"
|
||||||
integrity sha512-mo1qm3h5vkKkSNJQqvcg/2d06ay348BBi0ma94nx239iMlzlL3XQJ16xgg4a2z62cOsoqn91CRJDmjD39dx9aQ==
|
integrity sha512-qRt5JghdluTGyaSGJ4Ae1DKX5ObZj46OJPTlI66ewxFCyOPbkxeO22LybIfxDoL6ZylnXVIuICNp0BbzZ6A4tg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@amplitude/ua-parser-js" "0.7.24"
|
"@amplitude/ua-parser-js" "0.7.24"
|
||||||
"@amplitude/utils" "^1.0.5"
|
"@amplitude/utils" "^1.0.5"
|
||||||
@ -4278,10 +4417,10 @@ globby@11.0.1:
|
|||||||
merge2 "^1.3.0"
|
merge2 "^1.3.0"
|
||||||
slash "^3.0.0"
|
slash "^3.0.0"
|
||||||
|
|
||||||
globby@^11.0.1, globby@^11.0.2, globby@^11.0.3:
|
globby@^11.0.1, globby@^11.0.2, globby@^11.0.3, globby@^11.0.4:
|
||||||
version "11.0.3"
|
version "11.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb"
|
resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5"
|
||||||
integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==
|
integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
|
||||||
dependencies:
|
dependencies:
|
||||||
array-union "^2.1.0"
|
array-union "^2.1.0"
|
||||||
dir-glob "^3.0.1"
|
dir-glob "^3.0.1"
|
||||||
@ -5665,7 +5804,7 @@ micromatch@^3.1.10, micromatch@^3.1.4:
|
|||||||
snapdragon "^0.8.1"
|
snapdragon "^0.8.1"
|
||||||
to-regex "^3.0.2"
|
to-regex "^3.0.2"
|
||||||
|
|
||||||
micromatch@^4.0.2:
|
micromatch@^4.0.2, micromatch@^4.0.4:
|
||||||
version "4.0.4"
|
version "4.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
|
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
|
||||||
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
|
integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
|
||||||
@ -6982,10 +7121,10 @@ react-side-effect@^2.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3"
|
resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3"
|
||||||
integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==
|
integrity sha512-2FoTQzRNTncBVtnzxFOk2mCpcfxQpenBMbk5kSVBg5UcPqV9fRbgY2zhb7GTWWOlpFmAxhClBDlIq8Rsubz1yQ==
|
||||||
|
|
||||||
react-social-login-buttons@^3.5.0:
|
react-social-login-buttons@^3.5.1:
|
||||||
version "3.5.0"
|
version "3.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/react-social-login-buttons/-/react-social-login-buttons-3.5.0.tgz#079b3aebcd5d92ccfdcd38fe80d2c56a7fa765c3"
|
resolved "https://registry.yarnpkg.com/react-social-login-buttons/-/react-social-login-buttons-3.5.1.tgz#10c08885fb0c5280e2ca74d49734ac1f66ab8765"
|
||||||
integrity sha512-4oDkEpY3M8h3+MkqYq6xpfzvumnVE4DDars0xNCLJNZ7MikT+YN/IaZRFXCM0vV250iPrHpk+b6juw1HXOmWsw==
|
integrity sha512-3TjHYARN9cOfEEl6uQeeB1oMV/dJ2lyxqK98Y+HuvP0E9Q0HJoFvNps6h6EYKE6Yw6LMllUeR5264tSqalM/ww==
|
||||||
|
|
||||||
react-textarea-autosize@^8.3.2:
|
react-textarea-autosize@^8.3.2:
|
||||||
version "8.3.2"
|
version "8.3.2"
|
||||||
@ -7409,10 +7548,10 @@ sass-loader@^10.1.1:
|
|||||||
schema-utils "^3.0.0"
|
schema-utils "^3.0.0"
|
||||||
semver "^7.3.2"
|
semver "^7.3.2"
|
||||||
|
|
||||||
sass@^1.35.2:
|
sass@^1.38.0:
|
||||||
version "1.35.2"
|
version "1.38.0"
|
||||||
resolved "https://registry.yarnpkg.com/sass/-/sass-1.35.2.tgz#b732314fcdaf7ef8d0f1698698adc378043cb821"
|
resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.0.tgz#2f3e60a1efdcdc910586fa79dc89d3399a145b4f"
|
||||||
integrity sha512-jhO5KAR+AMxCEwIH3v+4zbB2WB0z67V1X0jbapfVwQQdjHZUGUyukpnoM6+iCMfsIUC016w9OPKQ5jrNOS9uXw==
|
integrity sha512-WBccZeMigAGKoI+NgD7Adh0ab1HUq+6BmyBUEaGxtErbUtWUevEbdgo5EZiJQofLUGcKtlNaO2IdN73AHEua5g==
|
||||||
dependencies:
|
dependencies:
|
||||||
chokidar ">=3.0.0 <4.0.0"
|
chokidar ">=3.0.0 <4.0.0"
|
||||||
|
|
||||||
@ -8182,12 +8321,7 @@ tslib@^1.9.0, tslib@^1.9.3:
|
|||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||||
|
|
||||||
tslib@^2.0.3, tslib@^2.1.0:
|
tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0:
|
||||||
version "2.2.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.2.0.tgz#fb2c475977e35e241311ede2693cee1ec6698f5c"
|
|
||||||
integrity sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==
|
|
||||||
|
|
||||||
tslib@^2.2.0:
|
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
|
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
|
||||||
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
|
integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
|
||||||
@ -8443,9 +8577,9 @@ url-parse-lax@^3.0.0:
|
|||||||
prepend-http "^2.0.0"
|
prepend-http "^2.0.0"
|
||||||
|
|
||||||
url-parse@^1.4.3, url-parse@^1.5.1:
|
url-parse@^1.4.3, url-parse@^1.5.1:
|
||||||
version "1.5.1"
|
version "1.5.3"
|
||||||
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b"
|
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862"
|
||||||
integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==
|
integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
querystringify "^2.1.1"
|
querystringify "^2.1.1"
|
||||||
requires-port "^1.0.0"
|
requires-port "^1.0.0"
|
||||||
|
Reference in New Issue
Block a user