Skip to content

Commit c11d743

Browse files
committed
v0.0.20: initial windows support
1 parent 5038ff6 commit c11d743

31 files changed

Lines changed: 1156 additions & 217 deletions
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
name: Release Notify
2+
3+
on:
4+
release:
5+
types: [published]
6+
7+
jobs:
8+
discord:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: sarisia/actions-status-discord@v1
12+
with:
13+
webhook: ${{ secrets.DISCORD_WEBHOOK }}

.github/workflows/release.yml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,27 @@ concurrency: release
55
on:
66
push:
77
branches:
8-
- main
8+
- main
99

1010
jobs:
11-
goreleaser:
11+
release:
1212
runs-on: ubuntu-latest
1313
steps:
14-
-
15-
name: Checkout
14+
- name: Checkout
1615
uses: actions/checkout@v3
1716
with:
1817
fetch-depth: 0
19-
-
20-
name: Set up Go
18+
- name: Set up Go
2119
uses: actions/setup-go@v4
2220
with:
2321
go-version-file: go.mod
24-
-
25-
name: Run GoReleaser
22+
- name: Run GoReleaser
2623
uses: goreleaser/goreleaser-action@v4
2724
with:
28-
distribution: goreleaser
25+
distribution: goreleaser-pro
2926
version: latest
3027
args: release --clean
3128
workdir: cmd/anchor
3229
env:
3330
GITHUB_TOKEN: ${{ secrets._GITHUB_TOKEN }}
31+
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}

api/apitest/apitest.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package apitest
33
import (
44
"bytes"
55
"context"
6-
"errors"
76
"flag"
87
"path/filepath"
98
"strings"
@@ -14,7 +13,6 @@ import (
1413
"net/http"
1514
"os"
1615
"os/exec"
17-
"syscall"
1816
"time"
1917

2018
"github.com/creack/pty"
@@ -206,10 +204,10 @@ func (s *Server) startMock(ctx context.Context) (string, func() error, error) {
206204
func (s *Server) startCmd(ctx context.Context, args []string) (func() error, error) {
207205
cmd := exec.CommandContext(ctx, args[0], args[1:]...)
208206
cmd.Dir = s.RootDir
209-
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
207+
setpgid(cmd)
210208
cmd.Cancel = func() error {
211-
err := syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
212-
if err != nil && !errors.Is(err, syscall.ESRCH) {
209+
err := terminateProcess(cmd)
210+
if err != nil {
213211
return err
214212
}
215213
return nil
@@ -278,7 +276,7 @@ func (s *Server) waitTCP(addr string) error {
278276
if conn, err := net.Dial("tcp4", addr); err == nil {
279277
conn.Close()
280278
return nil
281-
} else if !errors.Is(err, syscall.ECONNREFUSED) {
279+
} else if !isConnRefused(err) {
282280
return err
283281
}
284282

api/apitest/apitest_unix.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//go:build !windows
2+
3+
package apitest
4+
5+
import (
6+
"errors"
7+
"os/exec"
8+
"syscall"
9+
)
10+
11+
func isConnRefused(err error) bool {
12+
return errors.Is(err, syscall.ECONNREFUSED)
13+
}
14+
15+
func setpgid(cmd *exec.Cmd) {
16+
cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true}
17+
// cmd.SysProcAttr = &syscall.SysProcAttr{}
18+
}
19+
20+
func terminateProcess(cmd *exec.Cmd) error {
21+
err := syscall.Kill(-cmd.Process.Pid, syscall.SIGKILL)
22+
if err != nil && !errors.Is(err, syscall.ESRCH) {
23+
return err
24+
}
25+
return nil
26+
}

api/apitest/apitest_windows.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
//go:build windows
2+
3+
package apitest
4+
5+
import (
6+
"errors"
7+
"os"
8+
"os/exec"
9+
"syscall"
10+
11+
"golang.org/x/sys/windows"
12+
)
13+
14+
// based on: https://github.com/go-cmd/cmd/blob/500562c204744af1802ae24316a7e0bf88dcc545/cmd_windows.go
15+
16+
func isConnRefused(err error) bool {
17+
return errors.Is(err, syscall.ECONNREFUSED) || errors.Is(err, windows.WSAECONNREFUSED)
18+
}
19+
20+
func setpgid(cmd *exec.Cmd) {
21+
cmd.SysProcAttr = &syscall.SysProcAttr{}
22+
}
23+
24+
func terminateProcess(cmd *exec.Cmd) error {
25+
p, err := os.FindProcess(cmd.Process.Pid)
26+
if err != nil {
27+
return err
28+
}
29+
return p.Kill()
30+
}

auth/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ func (c Client) Perform(ctx context.Context, drv *ui.Driver) (*api.Session, erro
3434
drv.Send(models.ClientProbed(true))
3535

3636
if newClientErr == nil {
37-
_, userInfoErr := c.Anc.UserInfo(ctx)
37+
_, userInfoErr = c.Anc.UserInfo(ctx)
3838
if userInfoErr != nil && !errors.Is(userInfoErr, api.ErrSignedOut) {
3939
return nil, userInfoErr
4040
}

auth/whoami_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package auth
22

33
import (
44
"context"
5+
"runtime"
56
"testing"
67

78
"github.com/anchordotdev/cli"
@@ -10,6 +11,10 @@ import (
1011
)
1112

1213
func TestWhoAmI(t *testing.T) {
14+
if runtime.GOOS == "windows" {
15+
t.Skip("no pty support on windows")
16+
}
17+
1318
ctx, cancel := context.WithCancel(context.Background())
1419
defer cancel()
1520

cert/provision.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ func (p *Provision) RunTUI(ctx context.Context, drv *ui.Driver, domains ...strin
4545
Bytes: cert.Certificate[0],
4646
}
4747

48-
if err := os.WriteFile(certFile, pem.EncodeToMemory(certBlock), 0644); err != nil {
49-
return err
48+
if !p.Config.Trust.MockMode {
49+
if err := os.WriteFile(certFile, pem.EncodeToMemory(certBlock), 0644); err != nil {
50+
return err
51+
}
5052
}
5153

5254
var chainData []byte
@@ -59,8 +61,10 @@ func (p *Provision) RunTUI(ctx context.Context, drv *ui.Driver, domains ...strin
5961
chainData = append(chainData, pem.EncodeToMemory(chainBlock)...)
6062
}
6163

62-
if err := os.WriteFile(chainFile, chainData, 0644); err != nil {
63-
return err
64+
if !p.Config.Trust.MockMode {
65+
if err := os.WriteFile(chainFile, chainData, 0644); err != nil {
66+
return err
67+
}
6468
}
6569

6670
keyDER, err := x509.MarshalPKCS8PrivateKey(cert.PrivateKey)
@@ -74,8 +78,10 @@ func (p *Provision) RunTUI(ctx context.Context, drv *ui.Driver, domains ...strin
7478
Bytes: keyDER,
7579
}
7680

77-
if err := os.WriteFile(keyFile, pem.EncodeToMemory(keyBlock), 0644); err != nil {
78-
return err
81+
if !p.Config.Trust.MockMode {
82+
if err := os.WriteFile(keyFile, pem.EncodeToMemory(keyBlock), 0644); err != nil {
83+
return err
84+
}
7985
}
8086

8187
drv.Send(models.ProvisionedFiles{certFile, chainFile, keyFile})

go.mod

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ require (
77
github.com/atotto/clipboard v0.1.4
88
github.com/charmbracelet/bubbles v0.18.0
99
github.com/charmbracelet/bubbletea v0.25.0
10-
github.com/charmbracelet/lipgloss v0.9.1
10+
github.com/charmbracelet/lipgloss v0.10.0
1111
github.com/charmbracelet/x/exp/teatest v0.0.0-20240222131549-03ee51df8bea
1212
github.com/cli/browser v1.3.0
1313
github.com/creack/pty v1.1.21
@@ -22,10 +22,11 @@ require (
2222
github.com/oapi-codegen/runtime v1.1.1
2323
github.com/spf13/cobra v1.8.0
2424
github.com/spf13/pflag v1.0.5
25-
github.com/zalando/go-keyring v0.2.3
26-
golang.org/x/crypto v0.20.0
27-
golang.org/x/exp v0.0.0-20231006140011-7918f672742d
25+
github.com/zalando/go-keyring v0.2.4
26+
golang.org/x/crypto v0.21.0
27+
golang.org/x/exp v0.0.0-20240318143956-a85f2c67cd81
2828
golang.org/x/sync v0.6.0
29+
golang.org/x/sys v0.18.0
2930
howett.net/plist v1.0.1
3031
)
3132

@@ -43,10 +44,10 @@ require (
4344
github.com/go-openapi/jsonpointer v0.20.0 // indirect
4445
github.com/go-openapi/swag v0.22.4 // indirect
4546
github.com/godbus/dbus/v5 v5.1.0 // indirect
46-
github.com/golang/protobuf v1.5.3 // indirect
47+
github.com/golang/protobuf v1.5.4 // indirect
4748
github.com/google/go-cmp v0.6.0 // indirect
4849
github.com/google/go-querystring v1.1.0 // indirect
49-
github.com/google/uuid v1.5.0 // indirect
50+
github.com/google/uuid v1.6.0 // indirect
5051
github.com/inconshreveable/mousetrap v1.1.0 // indirect
5152
github.com/invopop/yaml v0.1.0 // indirect
5253
github.com/josharian/intern v1.0.0 // indirect
@@ -60,16 +61,15 @@ require (
6061
github.com/muesli/reflow v0.3.0 // indirect
6162
github.com/perimeterx/marshmallow v1.1.4 // indirect
6263
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
63-
github.com/rivo/uniseg v0.4.6 // indirect
64+
github.com/rivo/uniseg v0.4.7 // indirect
6465
github.com/rogpeppe/go-internal v1.10.0 // indirect
6566
github.com/sahilm/fuzzy v0.1.1-0.20230530133925-c48e322e2a8f // indirect
6667
golang.org/x/mod v0.16.0 // indirect
67-
golang.org/x/net v0.21.0 // indirect
68-
golang.org/x/oauth2 v0.13.0 // indirect
69-
golang.org/x/sys v0.17.0 // indirect
70-
golang.org/x/term v0.17.0 // indirect
68+
golang.org/x/net v0.22.0 // indirect
69+
golang.org/x/oauth2 v0.16.0 // indirect
70+
golang.org/x/term v0.18.0 // indirect
7171
golang.org/x/text v0.14.0 // indirect
72-
golang.org/x/tools v0.16.0 // indirect
72+
golang.org/x/tools v0.19.0 // indirect
7373
google.golang.org/appengine v1.6.8 // indirect
7474
google.golang.org/protobuf v1.33.0 // indirect
7575
gopkg.in/yaml.v2 v2.4.0 // indirect

go.sum

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ github.com/charmbracelet/bubbles v0.18.0 h1:PYv1A036luoBGroX6VWjQIE9Syf2Wby2oOl/
1616
github.com/charmbracelet/bubbles v0.18.0/go.mod h1:08qhZhtIwzgrtBjAcJnij1t1H0ZRjwHyGsy6AL11PSw=
1717
github.com/charmbracelet/bubbletea v0.25.0 h1:bAfwk7jRz7FKFl9RzlIULPkStffg5k6pNt5dywy4TcM=
1818
github.com/charmbracelet/bubbletea v0.25.0/go.mod h1:EN3QDR1T5ZdWmdfDzYcqOCAps45+QIJbLOBxmVNWNNg=
19-
github.com/charmbracelet/lipgloss v0.9.1 h1:PNyd3jvaJbg4jRHKWXnCj1akQm4rh8dbEzN1p/u1KWg=
20-
github.com/charmbracelet/lipgloss v0.9.1/go.mod h1:1mPmG4cxScwUQALAAnacHaigiiHB9Pmr+v1VEawJl6I=
19+
github.com/charmbracelet/lipgloss v0.10.0 h1:KWeXFSexGcfahHX+54URiZGkBFazf70JNMtwg/AFW3s=
20+
github.com/charmbracelet/lipgloss v0.10.0/go.mod h1:Wig9DSfvANsxqkRsqj6x87irdy123SR4dOXlKa91ciE=
2121
github.com/charmbracelet/x/exp/golden v0.0.0-20240222125807-0344fda748f8 h1:kyT+aGp1z5jwlus3OY0cP6FuT05jYeeExx/4TYxnyrs=
2222
github.com/charmbracelet/x/exp/golden v0.0.0-20240222125807-0344fda748f8/go.mod h1:wDlXFlCrmJ8J+swcL/MnGUuYnqgQdW9rhSD61oNMb6U=
2323
github.com/charmbracelet/x/exp/teatest v0.0.0-20240222131549-03ee51df8bea h1:rMsCa4AcGApEidjhRpitA2HZds22ZSnAuVjx8SVF3yA=
@@ -56,8 +56,8 @@ github.com/gofrs/flock v0.8.1 h1:+gYjHKf32LDeiEEFhQaotPbLuUXjY5ZqxKgXy7n59aw=
5656
github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU=
5757
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
5858
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
59-
github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg=
60-
github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
59+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
60+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
6161
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
6262
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
6363
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
@@ -66,8 +66,8 @@ github.com/google/go-github/v54 v54.0.0 h1:OZdXwow4EAD5jEo5qg+dGFH2DpkyZvVsAehjv
6666
github.com/google/go-github/v54 v54.0.0/go.mod h1:Sw1LXWHhXRZtzJ9LI5fyJg9wbQzYvFhW8W5P2yaAQ7s=
6767
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
6868
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
69-
github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU=
70-
github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
69+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
70+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
7171
github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
7272
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
7373
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
@@ -124,8 +124,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
124124
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
125125
github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
126126
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
127-
github.com/rivo/uniseg v0.4.6 h1:Sovz9sDSwbOz9tgUy8JpT+KgCkPYJEN/oYzlJiYTNLg=
128-
github.com/rivo/uniseg v0.4.6/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
127+
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
128+
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
129129
github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
130130
github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
131131
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
@@ -151,14 +151,14 @@ github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95
151151
github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU=
152152
github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg=
153153
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
154-
github.com/zalando/go-keyring v0.2.3 h1:v9CUu9phlABObO4LPWycf+zwMG7nlbb3t/B5wa97yms=
155-
github.com/zalando/go-keyring v0.2.3/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk=
154+
github.com/zalando/go-keyring v0.2.4 h1:wi2xxTqdiwMKbM6TWwi+uJCG/Tum2UV0jqaQhCa9/68=
155+
github.com/zalando/go-keyring v0.2.4/go.mod h1:HL4k+OXQfJUWaMnqyuSOc0drfGPX2b51Du6K+MRgZMk=
156156
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
157157
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
158-
golang.org/x/crypto v0.20.0 h1:jmAMJJZXr5KiCw05dfYK9QnqaqKLYXijU23lsEdcQqg=
159-
golang.org/x/crypto v0.20.0/go.mod h1:Xwo95rrVNIoSMx9wa1JroENMToLWn3RNVrTBpLHgZPQ=
160-
golang.org/x/exp v0.0.0-20231006140011-7918f672742d h1:jtJma62tbqLibJ5sFQz8bKtEM8rJBtfilJ2qTU199MI=
161-
golang.org/x/exp v0.0.0-20231006140011-7918f672742d/go.mod h1:ldy0pHrwJyGW56pPQzzkH36rKxoZW1tw7ZJpeKx+hdo=
158+
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
159+
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
160+
golang.org/x/exp v0.0.0-20240318143956-a85f2c67cd81 h1:6R2FC06FonbXQ8pK11/PDFY6N6LWlf9KlzibaCapmqc=
161+
golang.org/x/exp v0.0.0-20240318143956-a85f2c67cd81/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ=
162162
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 h1:VLliZ0d+/avPrXXH+OakdXhpJuEoBZuwh1m2j7U6Iug=
163163
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY=
164164
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
@@ -167,10 +167,10 @@ golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
167167
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
168168
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
169169
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
170-
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
171-
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
172-
golang.org/x/oauth2 v0.13.0 h1:jDDenyj+WgFtmV3zYVoi8aE2BwtXFLWOA67ZfNWftiY=
173-
golang.org/x/oauth2 v0.13.0/go.mod h1:/JMhi4ZRXAf4HG9LiNmxvk+45+96RUlVThiH8FzNBn0=
170+
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
171+
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
172+
golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ=
173+
golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
174174
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
175175
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
176176
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
@@ -183,12 +183,12 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc
183183
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
184184
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
185185
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
186-
golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
187-
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
186+
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
187+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
188188
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
189189
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
190-
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
191-
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
190+
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
191+
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
192192
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
193193
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
194194
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
@@ -198,8 +198,8 @@ golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
198198
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
199199
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
200200
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
201-
golang.org/x/tools v0.16.0 h1:GO788SKMRunPIBCXiQyo2AaexLstOrVhuAL5YwsckQM=
202-
golang.org/x/tools v0.16.0/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0=
201+
golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw=
202+
golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc=
203203
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
204204
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
205205
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=

0 commit comments

Comments
 (0)