Skip to content

Commit 008963e

Browse files
committed
integrate gitopia go lib
1 parent 4369b23 commit 008963e

File tree

8 files changed

+99
-75
lines changed

8 files changed

+99
-75
lines changed

.vscode/launch.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@
1212
"mode": "auto",
1313
"program": "${workspaceFolder}/cmd/git-remote-gitopia",
1414
"buildFlags": "--tags testing",
15-
"cwd": "/Users/faza/Code/tmp/repo",
16-
"args": ["origin", "gitopia://user/repo"],
17-
"env": {"GIT_DIR": "/Users/faza/Code/tmp/repo/.git", "GITOPIA_WALLET": "/Users/faza/Downloads/test.json"},
15+
"cwd": "/private/tmp/repos/test3",
16+
"args": ["origin", "gitopia://u11/banana"],
17+
"env": {"GIT_DIR": "/private/tmp/repos/test3/.git", "GITOPIA_WALLET": "/Users/faza/Downloads/test.json"},
1818
"console": "integratedTerminal"
1919
}
2020
]

cmd/git-remote-gitopia/gitopia.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"context"
55
"encoding/base64"
66
"fmt"
7+
"io"
78
"math"
89
"os"
910
"path"
@@ -161,11 +162,14 @@ func (h *GitopiaHandler) Fetch(remote *core.Remote, sha, ref string) error {
161162
if force {
162163
args = append(args, "--force")
163164
}
164-
cmd, _ := core.GitCommand("git", args...)
165-
if err := cmd.Run(); err != nil {
166-
return errors.Wrap(err, "error fetching from remote repository")
165+
cmd, outPipe := core.GitCommand("git", args...)
166+
if err := cmd.Start(); err != nil {
167+
out, e := io.ReadAll(outPipe)
168+
return errors.Wrapf(err, `error fetching from remote repository.
169+
output %s, output read error %s`, string(out), e.Error())
167170
}
168171
defer core.CleanUpProcessGroup(cmd)
172+
cmd.Wait()
169173

170174
return nil
171175
}
@@ -209,7 +213,7 @@ func (h *GitopiaHandler) Push(remote *core.Remote, refsToPush []core.RefToPush)
209213
var setTags []gitopiaTypes.MsgMultiSetTag_Tag
210214
var deleteBranches, deleteTags []string
211215
var res []string
212-
216+
213217
for _, ref := range refsToPush {
214218
if ref.Local == "" {
215219
if strings.HasPrefix(ref.Remote, branchPrefix) {

config/config_dev.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package config
44

55
const (
6+
ChainId = "gitopia"
67
GRPCHost = "grpc.devnet.gitopia.com:9090"
78
GitServerHost = "https://server.devnet.gitopia.com"
89
TmAddr = "https://rpc.devnet.gitopia.com:443"

config/config_prod.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package config
44

55
const (
6+
ChainId = "gitopia"
67
GRPCHost = "grpc.gitopia.com:9090"
78
GitServerHost = "https://server.gitopia.com"
89
TmAddr = "https://rpc.gitopia.com:443"

config/config_testing.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package config
44

55
const (
6+
ChainId = "gitopia"
67
GRPCHost = "localhost:9090"
78
GitServerHost = "http://localhost:5001"
89
TmAddr = "http://localhost:26657"

core/wallet/os_keyring.go

Lines changed: 80 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,33 @@ import (
55
"fmt"
66
"os"
77

8+
"github.com/cosmos/cosmos-sdk/client"
9+
"github.com/cosmos/cosmos-sdk/client/flags"
10+
"github.com/cosmos/cosmos-sdk/client/tx"
811
"github.com/cosmos/cosmos-sdk/codec"
912
codectypes "github.com/cosmos/cosmos-sdk/codec/types"
1013
cryptocodec "github.com/cosmos/cosmos-sdk/crypto/codec"
1114
"github.com/cosmos/cosmos-sdk/crypto/keyring"
1215
sdkkeyring "github.com/cosmos/cosmos-sdk/crypto/keyring"
1316
cryptotypes "github.com/cosmos/cosmos-sdk/crypto/types"
1417
sdk "github.com/cosmos/cosmos-sdk/types"
15-
"github.com/cosmos/cosmos-sdk/x/feegrant"
18+
"github.com/cosmos/cosmos-sdk/version"
1619
"github.com/gitopia/git-remote-gitopia/config"
20+
glib "github.com/gitopia/gitopia-go"
21+
"github.com/gitopia/gitopia-go/logger"
1722
gitopia "github.com/gitopia/gitopia/v2/app"
1823
offchaintypes "github.com/gitopia/gitopia/v2/x/offchain/types"
1924
goGitConfig "github.com/go-git/go-git/v5/config"
20-
"github.com/ignite/cli/ignite/pkg/cosmosaccount"
21-
"github.com/ignite/cli/ignite/pkg/cosmosclient"
25+
"github.com/sirupsen/logrus"
26+
"github.com/spf13/pflag"
27+
28+
"github.com/cosmos/cosmos-sdk/std"
29+
authtx "github.com/cosmos/cosmos-sdk/x/auth/tx"
30+
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
31+
gtypes "github.com/gitopia/gitopia/v2/x/gitopia/types"
32+
otypes "github.com/gitopia/gitopia/v2/x/offchain/types"
33+
rtypes "github.com/gitopia/gitopia/v2/x/rewards/types"
34+
2235
"github.com/pkg/errors"
2336
"google.golang.org/grpc"
2437
)
@@ -39,23 +52,17 @@ var (
3952
type keyringBackend struct {
4053
key string
4154
backend string
42-
CC cosmosclient.Client
55+
CC glib.Client
4356
}
4457

45-
func newKeyringBackend(k string, b string, c cosmosclient.Client) keyringBackend {
46-
c.TxFactory = c.TxFactory.WithGasPrices(config.GasPrices)
58+
func newKeyringBackend(k string, b string, c glib.Client) keyringBackend {
4759
return keyringBackend{
4860
key: k,
4961
backend: b,
5062
CC: c,
5163
}
5264
}
5365

54-
func (k keyringBackend) address() (string, error) {
55-
address, err := k.CC.Address(k.key)
56-
return address, err
57-
}
58-
5966
type OSKeyring struct {
6067
kb keyringBackend
6168
address string
@@ -65,7 +72,6 @@ type OSKeyring struct {
6572
func InitOSKeyringWallet() (Wallet, error) {
6673
var key string
6774
var backend string
68-
var cc cosmosclient.Client
6975

7076
conf, err := goGitConfig.LoadConfig(goGitConfig.GlobalScope)
7177
if err != nil {
@@ -85,28 +91,78 @@ func InitOSKeyringWallet() (Wallet, error) {
8591
backend = keyring.BackendOS // default to OS. same as cosmos keys subcommand
8692
}
8793

88-
cc, err = cosmosclient.New(context.Background(),
89-
cosmosclient.WithNodeAddress(config.TmAddr),
90-
// same service name used in both helper and keys management app
91-
cosmosclient.WithKeyringServiceName(AppName), // not suported on macos
92-
cosmosclient.WithKeyringBackend(cosmosaccount.KeyringBackend(backend)), // not all backends supported by cosmos are supported by cosmos client
93-
cosmosclient.WithAddressPrefix(AccountAddressPrefix),
94-
)
94+
l := logrus.New()
95+
l.SetOutput(os.Stderr)
96+
ctx := logger.ContextWithValue(context.Background(), l)
97+
glib.WithGitopiaAddr(config.GRPCHost)
98+
// glib.WithFeeGranter(config.FeeGranterAddr)
99+
cc, err := NewContext(key)
100+
if err != nil {
101+
return nil, errors.Wrap(err, "error creating cosmos client context")
102+
}
103+
txf := tx.NewFactoryCLI(cc, &pflag.FlagSet{}).WithGasPrices(config.GasPrices)
104+
gc, err := glib.NewClient(ctx, cc, txf)
95105
if err != nil {
96106
return nil, errors.Wrap(err, "error creating cosmos client")
97107
}
98108

99109
o := OSKeyring{
100-
kb: newKeyringBackend(key, backend, cc),
110+
kb: newKeyringBackend(key, backend, gc),
101111
secType: KEYRING_BACKEND,
102112
}
103113

104-
o.address, err = o.kb.address()
114+
o.address = o.kb.CC.Address().String()
115+
116+
return o, nil
117+
}
118+
119+
func NewContext(from string) (client.Context, error) {
120+
version.Name = AppName
121+
clientCtx := client.Context{}
122+
123+
interfaceRegistry := codectypes.NewInterfaceRegistry()
124+
std.RegisterInterfaces(interfaceRegistry)
125+
cryptocodec.RegisterInterfaces(interfaceRegistry)
126+
authtypes.RegisterInterfaces(interfaceRegistry)
127+
gtypes.RegisterInterfaces(interfaceRegistry)
128+
rtypes.RegisterInterfaces(interfaceRegistry)
129+
otypes.RegisterInterfaces(interfaceRegistry)
130+
131+
marshaler := codec.NewProtoCodec(interfaceRegistry)
132+
txCfg := authtx.NewTxConfig(marshaler, authtx.DefaultSignModes)
133+
clientCtx = clientCtx.
134+
WithCodec(marshaler).
135+
WithInterfaceRegistry(interfaceRegistry).
136+
WithAccountRetriever(authtypes.AccountRetriever{}).
137+
WithTxConfig(txCfg).
138+
WithInput(os.Stdin)
139+
140+
clientCtx = clientCtx.WithChainID(config.ChainId)
141+
clientCtx = clientCtx.WithNodeURI(config.TmAddr)
142+
c, err := client.NewClientFromNode(clientCtx.NodeURI)
143+
if err != nil {
144+
return clientCtx, errors.Wrap(err, "error creatig tm client")
145+
}
146+
clientCtx = clientCtx.WithClient(c)
147+
clientCtx = clientCtx.WithBroadcastMode(flags.BroadcastSync)
148+
clientCtx = clientCtx.WithSkipConfirmation(true)
149+
150+
kr, err := client.NewKeyringFromBackend(clientCtx, keyring.BackendOS)
105151
if err != nil {
106-
return nil, err
152+
return clientCtx, errors.Wrap(err, "error creating keyring backend")
107153
}
154+
clientCtx = clientCtx.WithKeyring(kr)
108155

109-
return o, nil
156+
fromAddr, fromName, _, err := client.GetFromFields(clientCtx, kr, from)
157+
if err != nil {
158+
return clientCtx, errors.Wrap(err, "error parsing from Addr")
159+
}
160+
161+
clientCtx = clientCtx.WithFrom(from).WithFromAddress(fromAddr).WithFromName(fromName)
162+
163+
feeGranterAddr := sdk.MustAccAddressFromBech32(config.FeeGranterAddr)
164+
clientCtx = clientCtx.WithFeeGranterAddress(feeGranterAddr)
165+
return clientCtx, nil
110166
}
111167

112168
func (o OSKeyring) SignData(data []byte) (string, error) {
@@ -160,35 +216,7 @@ func (o OSKeyring) SignData(data []byte) (string, error) {
160216
}
161217

162218
func (o OSKeyring) SignAndBroadcast(grpcConn *grpc.ClientConn, msgs []sdk.Msg) error {
163-
account, err := o.kb.CC.Account(o.kb.key)
164-
if err != nil {
165-
return err
166-
}
167-
168-
// check fee grant exists
169-
fqc := feegrant.NewQueryClient(grpcConn)
170-
fr, _ := fqc.Allowance(context.Background(), &feegrant.QueryAllowanceRequest{
171-
Granter: config.FeeGranterAddr,
172-
Grantee: o.Address(),
173-
})
174-
175-
if fr != nil {
176-
feeGranterAddr, err := sdk.AccAddressFromBech32(config.FeeGranterAddr)
177-
if err != nil {
178-
return err
179-
}
180-
cosmosclient.WithFeeGranterAddress(feeGranterAddr)(&o.kb.CC)
181-
}
182-
183-
txResp, err := o.kb.CC.BroadcastTx(account, msgs...)
184-
if err != nil {
185-
return err
186-
}
187-
if txResp.TxResponse.Code != 0 {
188-
return errors.Wrap(err, "error broadcasting transaction")
189-
}
190-
191-
return nil
219+
return o.kb.CC.BroadcastTxAndWait(context.Background(), msgs...)
192220
}
193221

194222
func (o OSKeyring) Address() string {

go.mod

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ go 1.19
44

55
require (
66
github.com/cosmos/cosmos-sdk v0.46.12
7+
github.com/gitopia/gitopia-go v0.3.3
78
github.com/gitopia/gitopia/v2 v2.0.1
89
github.com/go-git/go-git/v5 v5.5.1
9-
github.com/ignite/cli v0.24.0
1010
github.com/pkg/errors v0.9.1
1111
github.com/sirupsen/logrus v1.9.0
1212
github.com/spf13/cobra v1.6.1
13+
github.com/spf13/pflag v1.0.5
1314
google.golang.org/grpc v1.53.0
1415
)
1516

@@ -33,9 +34,7 @@ require (
3334
github.com/beorn7/perks v1.0.1 // indirect
3435
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // indirect
3536
github.com/bgentry/speakeasy v0.1.0 // indirect
36-
github.com/blang/semver v3.5.1+incompatible // indirect
3737
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
38-
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
3938
github.com/cespare/xxhash v1.1.0 // indirect
4039
github.com/cespare/xxhash/v2 v2.2.0 // indirect
4140
github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e // indirect
@@ -60,7 +59,6 @@ require (
6059
github.com/emirpasic/gods v1.18.1 // indirect
6160
github.com/felixge/httpsnoop v1.0.1 // indirect
6261
github.com/fsnotify/fsnotify v1.5.4 // indirect
63-
github.com/ghodss/yaml v1.0.0 // indirect
6462
github.com/go-git/gcfg v1.5.0 // indirect
6563
github.com/go-git/go-billy/v5 v5.3.1 // indirect
6664
github.com/go-kit/kit v0.12.0 // indirect
@@ -133,14 +131,12 @@ require (
133131
github.com/rakyll/statik v0.1.7 // indirect
134132
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
135133
github.com/regen-network/cosmos-proto v0.3.1 // indirect
136-
github.com/rs/cors v1.8.2 // indirect
137134
github.com/sasha-s/go-deadlock v0.3.1 // indirect
138135
github.com/sergi/go-diff v1.2.0 // indirect
139136
github.com/skeema/knownhosts v1.1.0 // indirect
140137
github.com/spf13/afero v1.8.2 // indirect
141138
github.com/spf13/cast v1.5.0 // indirect
142139
github.com/spf13/jwalterweatherman v1.1.0 // indirect
143-
github.com/spf13/pflag v1.0.5 // indirect
144140
github.com/spf13/viper v1.13.0 // indirect
145141
github.com/stretchr/objx v0.5.0 // indirect
146142
github.com/stretchr/testify v1.8.1 // indirect
@@ -161,7 +157,6 @@ require (
161157
golang.org/x/mod v0.7.0 // indirect
162158
golang.org/x/net v0.7.0 // indirect
163159
golang.org/x/oauth2 v0.5.0 // indirect
164-
golang.org/x/sync v0.1.0 // indirect
165160
golang.org/x/sys v0.5.0 // indirect
166161
golang.org/x/term v0.5.0 // indirect
167162
golang.org/x/text v0.7.0 // indirect
@@ -182,4 +177,4 @@ replace github.com/gogo/protobuf => github.com/regen-network/protobuf v1.3.3-alp
182177

183178
replace github.com/tendermint/tendermint => github.com/cometbft/cometbft v0.34.27
184179

185-
replace github.com/ignite/cli => github.com/gitopia/ignite-cli v0.24.0-fee-grant.3
180+
replace github.com/ignite/cli => github.com/gitopia/ignite-cli v0.24.0-fee-grant.4

go.sum

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,13 @@ github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d h1:xDfNPAt8lFiC1U
9797
github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4=
9898
github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY=
9999
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
100-
github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ=
101-
github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk=
102100
github.com/btcsuite/btcd v0.22.1 h1:CnwP9LM/M9xuRrGSCGeMVs9iv09uMqwsVX7EeIpgV2c=
103101
github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=
104102
github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04=
105103
github.com/btcsuite/btcd/btcutil v1.1.2 h1:XLMbX8JQEiwMcYft2EGi8zPUkoa0abKIU6/BJSRsjzQ=
106104
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U=
107105
github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0=
108106
github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4=
109-
github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM=
110107
github.com/cenkalti/backoff/v4 v4.1.3 h1:cFAlzYUlVYDysBEH2T5hyJZMh3+5+WCBvSnK6Q8UtC4=
111108
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
112109
github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
@@ -206,12 +203,11 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo
206203
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
207204
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
208205
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
209-
github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk=
210206
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
207+
github.com/gitopia/gitopia-go v0.3.3 h1:hXPj00AJ9Rqfrvv8XoOUrcFGLT7Pkbz1fdt9b/LfkvM=
208+
github.com/gitopia/gitopia-go v0.3.3/go.mod h1:1in+bQqP/CFduTIvJbB8WowPGRBhvyFkp+ZhBddutt0=
211209
github.com/gitopia/gitopia/v2 v2.0.1 h1:SeHwKkUkA+bqEzsgVimsOb5v6A1wL6O0zqQg/PSSl5c=
212210
github.com/gitopia/gitopia/v2 v2.0.1/go.mod h1:ZEEo2wHSxjJL3tcGg+ZenFlYMhfqFzwJkGkNMkgA9lE=
213-
github.com/gitopia/ignite-cli v0.24.0-fee-grant.3 h1:ClWf30rg8Qr/Nfam5Lp4UyVA0uNlDPmJxt4RktcmEio=
214-
github.com/gitopia/ignite-cli v0.24.0-fee-grant.3/go.mod h1:XlqM9HK751rcKZg7RfrP9KiJRAVi4XfZskhGnHPgLr0=
215211
github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY=
216212
github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4=
217213
github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4=
@@ -551,7 +547,6 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L
551547
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
552548
github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XFkP+Eg=
553549
github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U=
554-
github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU=
555550
github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs=
556551
github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=
557552
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -774,7 +769,6 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
774769
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
775770
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
776771
golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
777-
golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
778772
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
779773
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
780774
golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=

0 commit comments

Comments
 (0)