4a5c387bb045cb2285cc090a069509330cc7ec68

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

fix: respect private repos

only display private repos for users with read access

Fixes: https://github.com/charmbracelet/soft-serve/issues/81

Diff

 1diff --git a/go.mod b/go.mod
 2index b5b61ba8467e815e10ddc4f04ea1beeda441c675..56ee0a66a19687cbdb20baa78979fee5b653e147 100755
 3--- a/go.mod
 4+++ b/go.mod
 5@@ -11,7 +11,7 @@ require (
 6 	github.com/charmbracelet/lipgloss v0.4.0
 7 	github.com/charmbracelet/wish v0.3.1
 8 	github.com/dustin/go-humanize v1.0.0
 9-	github.com/gliderlabs/ssh v0.3.3
10+	github.com/gliderlabs/ssh v0.3.4
11 	github.com/go-git/go-billy/v5 v5.3.1
12 	github.com/go-git/go-git/v5 v5.4.3-0.20210630082519-b4368b2a2ca4
13 	github.com/matryer/is v1.4.0
14@@ -39,7 +39,7 @@ require (
15 	github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
16 	github.com/atotto/clipboard v0.1.4 // indirect
17 	github.com/aymerick/douceur v0.2.0 // indirect
18-	github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 // indirect
19+	github.com/caarlos0/sshmarshal v0.1.0 // indirect
20 	github.com/containerd/console v1.0.3 // indirect
21 	github.com/dlclark/regexp2 v1.4.0 // indirect
22 	github.com/emirpasic/gods v1.12.0 // indirect
23diff --git a/go.sum b/go.sum
24index f7bcd5cc562374a802e4bddd7bc1101ce0d85ff5..dac9b4f3d7cb663548e080e7778f1ac597ab0d49 100644
25--- a/go.sum
26+++ b/go.sum
27@@ -21,8 +21,9 @@ github.com/aymerick/douceur v0.2.0 h1:Mv+mAeH1Q+n9Fr+oyamOlAkUNPWPlA8PPGR0QAaYuP
28 github.com/aymerick/douceur v0.2.0/go.mod h1:wlT5vV2O3h55X9m7iVYN0TBM0NH/MmbLnd30/FjWUq4=
29 github.com/caarlos0/env/v6 v6.9.1 h1:zOkkjM0F6ltnQ5eBX6IPI41UP/KDGEK7rRPwGCNos8k=
30 github.com/caarlos0/env/v6 v6.9.1/go.mod h1:hvp/ryKXKipEkcuYjs9mI4bBCg+UI0Yhgm5Zu0ddvwc=
31-github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3 h1:w2ANoiT4ubmh4Nssa3/QW1M7lj3FZkma8f8V5aBDxXM=
32 github.com/caarlos0/sshmarshal v0.0.0-20220308164159-9ddb9f83c6b3/go.mod h1:7Pd/0mmq9x/JCzKauogNjSQEhivBclCQHfr9dlpDIyA=
33+github.com/caarlos0/sshmarshal v0.1.0 h1:zTCZrDORFfWh526Tsb7vCm3+Yg/SfW/Ub8aQDeosk0I=
34+github.com/caarlos0/sshmarshal v0.1.0/go.mod h1:7Pd/0mmq9x/JCzKauogNjSQEhivBclCQHfr9dlpDIyA=
35 github.com/charmbracelet/bubbles v0.10.4-0.20220302223835-88562515cf7b h1:o+LFpRn1fXtu1hDJLtBFjp7tMZ8AqwSpl84w1TnUj0Y=
36 github.com/charmbracelet/bubbles v0.10.4-0.20220302223835-88562515cf7b/go.mod h1:jOA+DUF1rjZm7gZHcNyIVW+YrBPALKfpGVdJu8UiJsA=
37 github.com/charmbracelet/bubbletea v0.19.3/go.mod h1:VuXF2pToRxDUHcBUcPmCRUHRvFATM4Ckb/ql1rBl3KA=
38@@ -53,8 +54,9 @@ github.com/emirpasic/gods v1.12.0 h1:QAUIPSaCu4G+POclxeqb3F+WPpdKqFGlw36+yOzGlrg
39 github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o=
40 github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
41 github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0=
42-github.com/gliderlabs/ssh v0.3.3 h1:mBQ8NiOgDkINJrZtoizkC3nDNYgSaWtxyem6S2XHBtA=
43 github.com/gliderlabs/ssh v0.3.3/go.mod h1:ZSS+CUoKHDrqVakTfTWUlKSr9MtMFkC4UvtQKD7O914=
44+github.com/gliderlabs/ssh v0.3.4 h1:+AXBtim7MTKaLVPgvE+3mhewYRawNLTd+jEEz/wExZw=
45+github.com/gliderlabs/ssh v0.3.4/go.mod h1:ZSS+CUoKHDrqVakTfTWUlKSr9MtMFkC4UvtQKD7O914=
46 github.com/go-git/gcfg v1.5.0 h1:Q5ViNfGF8zFgyJWPqYwA7qGFoMTEiBmdlkcfRmpIMa4=
47 github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E=
48 github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0=
49diff --git a/internal/tui/commands.go b/internal/tui/commands.go
50index 64c1ff4851dc3ec81f41babc2a758be065b600d3..5be3c9d17de291b7063d87290732a3710a721c19 100644
51--- a/internal/tui/commands.go
52+++ b/internal/tui/commands.go
53@@ -65,6 +65,9 @@ func (b *Bubble) menuEntriesFromSource() ([]MenuEntry, error) {
54 		if acc == gm.NoAccess && cr.Repo != "config" {
55 			continue
56 		}
57+		if cr.Private && acc < gm.ReadOnlyAccess {
58+			continue
59+		}
60 		me, err := b.newMenuEntry(cr.Name, cr.Repo)
61 		if err != nil {
62 			return nil, err
63diff --git a/server/middleware.go b/server/middleware.go
64index c45cfad4f61af95b5237d69b62547c8150911fec..7a6bc3674fc476865dc0ee21da5d600d9e067ee7 100644
65--- a/server/middleware.go
66+++ b/server/middleware.go
67@@ -19,9 +19,8 @@ func softMiddleware(ac *appCfg.Config) wish.Middleware {
68 				if active {
69 					return
70 				}
71-				ctx := s.Context()
72-				ctx = context.WithValue(ctx, "config", ac) //nolint:revive
73-				ctx = context.WithValue(ctx, "session", s) //nolint:revive
74+				ctx := context.WithValue(s.Context(), "config", ac) //nolint:revive
75+				ctx = context.WithValue(ctx, "session", s)          //nolint:revive
76 
77 				use := "ssh"
78 				port := ac.Port