Skip to content

Commit 851582c

Browse files
authored
feat: add initial implementation (#4)
1 parent 49ae498 commit 851582c

File tree

13 files changed

+1986
-0
lines changed

13 files changed

+1986
-0
lines changed

.github/workflows/ci.yaml

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
6+
workflow_dispatch:
7+
8+
permissions:
9+
actions: none
10+
checks: none
11+
contents: read
12+
deployments: none
13+
issues: none
14+
packages: none
15+
pull-requests: none
16+
repository-projects: none
17+
security-events: none
18+
statuses: none
19+
20+
# Cancel in-progress runs for pull requests when developers push
21+
# additional changes
22+
concurrency:
23+
group: ${{ github.workflow }}-${{ github.ref }}
24+
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
25+
26+
jobs:
27+
test:
28+
runs-on: ubuntu-latest
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v3
32+
33+
- name: Echo Go Cache Paths
34+
id: go-cache-paths
35+
run: |
36+
echo "GOCACHE=$(go env GOCACHE)" >> ${{ runner.os == 'Windows' && '$env:' || '$' }}GITHUB_OUTPUT
37+
echo "GOMODCACHE=$(go env GOMODCACHE)" >> ${{ runner.os == 'Windows' && '$env:' || '$' }}GITHUB_OUTPUT
38+
39+
- name: Go Build Cache
40+
uses: actions/cache@v3
41+
with:
42+
path: ${{ steps.go-cache-paths.outputs.GOCACHE }}
43+
key: ${{ runner.os }}-go-build-${{ hashFiles('**/go.**', '**.go') }}
44+
45+
# Install Go!
46+
- uses: actions/setup-go@v3
47+
with:
48+
go-version: "~1.21"
49+
50+
- name: Test
51+
run: go test ./...

go.mod

+250
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
module github.com/coder/xray
2+
3+
go 1.21
4+
5+
replace tailscale.com => github.com/coder/tailscale v1.1.1-0.20231205095743-61c97bad8c8b
6+
7+
replace github.com/gliderlabs/ssh => github.com/coder/ssh v0.0.0-20230621095435-9a7e23486f1c
8+
9+
require (
10+
cdr.dev/slog v1.6.2-0.20240126064726-20367d4aede6
11+
github.com/coder/coder/v2 v2.7.2-0.20240130231137-0c30dde9b581
12+
github.com/google/go-containerregistry v0.14.0
13+
github.com/google/uuid v1.6.0
14+
github.com/jfrog/jfrog-client-go v1.31.6
15+
github.com/spf13/cobra v1.8.0
16+
github.com/stretchr/testify v1.8.4
17+
go.uber.org/mock v0.4.0
18+
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2
19+
k8s.io/api v0.29.1
20+
k8s.io/apimachinery v0.29.1
21+
k8s.io/client-go v0.29.1
22+
)
23+
24+
require (
25+
cloud.google.com/go/compute v1.23.3 // indirect
26+
cloud.google.com/go/compute/metadata v0.2.3 // indirect
27+
dario.cat/mergo v1.0.0 // indirect
28+
filippo.io/edwards25519 v1.0.0 // indirect
29+
github.com/CycloneDX/cyclonedx-go v0.7.1 // indirect
30+
github.com/DataDog/appsec-internal-go v1.0.0 // indirect
31+
github.com/DataDog/datadog-agent/pkg/obfuscate v0.48.0 // indirect
32+
github.com/DataDog/datadog-agent/pkg/remoteconfig/state v0.48.1 // indirect
33+
github.com/DataDog/datadog-go/v5 v5.3.0 // indirect
34+
github.com/DataDog/go-libddwaf v1.5.0 // indirect
35+
github.com/DataDog/go-tuf v1.0.2-0.5.2 // indirect
36+
github.com/DataDog/gostackparse v0.7.0 // indirect
37+
github.com/DataDog/sketches-go v1.4.2 // indirect
38+
github.com/Microsoft/go-winio v0.6.1 // indirect
39+
github.com/ProtonMail/go-crypto v0.0.0-20230717121422-5aa5874ade95 // indirect
40+
github.com/acomagu/bufpipe v1.0.4 // indirect
41+
github.com/agext/levenshtein v1.2.3 // indirect
42+
github.com/akutz/memconn v0.1.0 // indirect
43+
github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 // indirect
44+
github.com/andybalholm/brotli v1.1.0 // indirect
45+
github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
46+
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
47+
github.com/aws/aws-sdk-go-v2 v1.20.3 // indirect
48+
github.com/aws/aws-sdk-go-v2/config v1.18.32 // indirect
49+
github.com/aws/aws-sdk-go-v2/credentials v1.13.31 // indirect
50+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.7 // indirect
51+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.40 // indirect
52+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.34 // indirect
53+
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.38 // indirect
54+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.34 // indirect
55+
github.com/aws/aws-sdk-go-v2/service/ssm v1.37.1 // indirect
56+
github.com/aws/aws-sdk-go-v2/service/sso v1.13.1 // indirect
57+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.15.1 // indirect
58+
github.com/aws/aws-sdk-go-v2/service/sts v1.21.1 // indirect
59+
github.com/aws/smithy-go v1.19.0 // indirect
60+
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
61+
github.com/benbjohnson/clock v1.3.5 // indirect
62+
github.com/beorn7/perks v1.0.1 // indirect
63+
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
64+
github.com/cespare/xxhash/v2 v2.2.0 // indirect
65+
github.com/charmbracelet/lipgloss v0.8.0 // indirect
66+
github.com/cloudflare/circl v1.3.7 // indirect
67+
github.com/coder/retry v1.5.1 // indirect
68+
github.com/coder/terraform-provider-coder v0.13.0 // indirect
69+
github.com/coreos/go-iptables v0.6.0 // indirect
70+
github.com/coreos/go-oidc/v3 v3.9.0 // indirect
71+
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
72+
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect
73+
github.com/dustin/go-humanize v1.0.1 // indirect
74+
github.com/ebitengine/purego v0.5.0-alpha.1 // indirect
75+
github.com/emicklei/go-restful/v3 v3.11.0 // indirect
76+
github.com/emirpasic/gods v1.18.1 // indirect
77+
github.com/evanphx/json-patch v5.6.0+incompatible // indirect
78+
github.com/fatih/color v1.16.0 // indirect
79+
github.com/forPelevin/gomoji v1.1.8 // indirect
80+
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
81+
github.com/go-chi/chi/v5 v5.0.10 // indirect
82+
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
83+
github.com/go-git/go-billy/v5 v5.4.1 // indirect
84+
github.com/go-git/go-git/v5 v5.8.1 // indirect
85+
github.com/go-jose/go-jose/v3 v3.0.1 // indirect
86+
github.com/go-logr/logr v1.4.1 // indirect
87+
github.com/go-logr/stdr v1.2.2 // indirect
88+
github.com/go-ole/go-ole v1.2.6 // indirect
89+
github.com/go-openapi/jsonpointer v0.19.6 // indirect
90+
github.com/go-openapi/jsonreference v0.20.2 // indirect
91+
github.com/go-openapi/swag v0.22.4 // indirect
92+
github.com/godbus/dbus/v5 v5.1.0 // indirect
93+
github.com/gogo/protobuf v1.3.2 // indirect
94+
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
95+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
96+
github.com/golang/protobuf v1.5.3 // indirect
97+
github.com/golang/snappy v0.0.4 // indirect
98+
github.com/google/btree v1.1.2 // indirect
99+
github.com/google/gnostic-models v0.6.8 // indirect
100+
github.com/google/go-cmp v0.6.0 // indirect
101+
github.com/google/gofuzz v1.2.0 // indirect
102+
github.com/google/nftables v0.1.1-0.20230115205135-9aa6fdf5a28c // indirect
103+
github.com/google/pprof v0.0.0-20230817174616-7a8ec2ada47b // indirect
104+
github.com/gookit/color v1.5.4 // indirect
105+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
106+
github.com/hashicorp/errwrap v1.1.0 // indirect
107+
github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect
108+
github.com/hashicorp/go-hclog v1.5.0 // indirect
109+
github.com/hashicorp/go-multierror v1.1.1 // indirect
110+
github.com/hashicorp/go-uuid v1.0.3 // indirect
111+
github.com/hashicorp/go-version v1.6.0 // indirect
112+
github.com/hashicorp/hcl/v2 v2.17.0 // indirect
113+
github.com/hashicorp/logutils v1.0.0 // indirect
114+
github.com/hashicorp/terraform-plugin-go v0.12.0 // indirect
115+
github.com/hashicorp/terraform-plugin-log v0.7.0 // indirect
116+
github.com/hashicorp/terraform-plugin-sdk/v2 v2.20.0 // indirect
117+
github.com/hashicorp/yamux v0.1.1 // indirect
118+
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
119+
github.com/illarion/gonotify v1.0.1 // indirect
120+
github.com/imdario/mergo v0.3.15 // indirect
121+
github.com/inconshreveable/mousetrap v1.1.0 // indirect
122+
github.com/insomniacslk/dhcp v0.0.0-20231206064809-8c70d406f6d2 // indirect
123+
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
124+
github.com/jfrog/build-info-go v1.9.8 // indirect
125+
github.com/jfrog/gofrog v1.3.0 // indirect
126+
github.com/jmespath/go-jmespath v0.4.0 // indirect
127+
github.com/josharian/intern v1.0.0 // indirect
128+
github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86 // indirect
129+
github.com/jsimonetti/rtnetlink v1.3.5 // indirect
130+
github.com/json-iterator/go v1.1.12 // indirect
131+
github.com/kevinburke/ssh_config v1.2.0 // indirect
132+
github.com/klauspost/compress v1.17.4 // indirect
133+
github.com/klauspost/cpuid/v2 v2.2.5 // indirect
134+
github.com/klauspost/pgzip v1.2.5 // indirect
135+
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
136+
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
137+
github.com/mailru/easyjson v0.7.7 // indirect
138+
github.com/mattn/go-colorable v0.1.13 // indirect
139+
github.com/mattn/go-isatty v0.0.20 // indirect
140+
github.com/mattn/go-runewidth v0.0.15 // indirect
141+
github.com/mdlayher/genetlink v1.3.2 // indirect
142+
github.com/mdlayher/netlink v1.7.2 // indirect
143+
github.com/mdlayher/sdnotify v1.0.0 // indirect
144+
github.com/mdlayher/socket v0.5.0 // indirect
145+
github.com/mholt/archiver/v3 v3.5.1 // indirect
146+
github.com/miekg/dns v1.1.55 // indirect
147+
github.com/minio/sha256-simd v1.0.1 // indirect
148+
github.com/mitchellh/copystructure v1.2.0 // indirect
149+
github.com/mitchellh/go-ps v1.0.0 // indirect
150+
github.com/mitchellh/go-testing-interface v1.14.1 // indirect
151+
github.com/mitchellh/go-wordwrap v1.0.1 // indirect
152+
github.com/mitchellh/mapstructure v1.5.0 // indirect
153+
github.com/mitchellh/reflectwalk v1.0.2 // indirect
154+
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
155+
github.com/modern-go/reflect2 v1.0.2 // indirect
156+
github.com/muesli/reflow v0.3.0 // indirect
157+
github.com/muesli/termenv v0.15.2 // indirect
158+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
159+
github.com/nwaples/rardecode v1.1.0 // indirect
160+
github.com/opencontainers/go-digest v1.0.0 // indirect
161+
github.com/outcaste-io/ristretto v0.2.3 // indirect
162+
github.com/philhofer/fwd v1.1.2 // indirect
163+
github.com/pierrec/lz4/v4 v4.1.21 // indirect
164+
github.com/pion/transport v0.14.1 // indirect
165+
github.com/pion/udp v0.1.2 // indirect
166+
github.com/pjbgf/sha1cd v0.3.0 // indirect
167+
github.com/pkg/errors v0.9.1 // indirect
168+
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
169+
github.com/prometheus/client_golang v1.18.0 // indirect
170+
github.com/prometheus/client_model v0.5.0 // indirect
171+
github.com/prometheus/common v0.46.0 // indirect
172+
github.com/prometheus/procfs v0.12.0 // indirect
173+
github.com/richardartoul/molecule v1.0.1-0.20221107223329-32cfee06a052 // indirect
174+
github.com/rivo/uniseg v0.4.4 // indirect
175+
github.com/robfig/cron/v3 v3.0.1 // indirect
176+
github.com/secure-systems-lab/go-securesystemslib v0.7.0 // indirect
177+
github.com/sergi/go-diff v1.3.1 // indirect
178+
github.com/skeema/knownhosts v1.2.0 // indirect
179+
github.com/spaolacci/murmur3 v1.1.0 // indirect
180+
github.com/spf13/pflag v1.0.5 // indirect
181+
github.com/tailscale/certstore v0.1.1-0.20220316223106-78d6e1c49d8d // indirect
182+
github.com/tailscale/golang-x-crypto v0.0.0-20230713185742-f0b76a10a08e // indirect
183+
github.com/tailscale/goupnp v1.0.1-0.20210804011211-c64d0f06ea05 // indirect
184+
github.com/tailscale/netlink v1.1.1-0.20211101221916-cabfb018fe85 // indirect
185+
github.com/tailscale/wireguard-go v0.0.0-20230710185534-bb2c8f22eccf // indirect
186+
github.com/tcnksm/go-httpstat v0.2.0 // indirect
187+
github.com/tinylib/msgp v1.1.8 // indirect
188+
github.com/u-root/uio v0.0.0-20230305220412-3e8cd9d6bf63 // indirect
189+
github.com/ulikunitz/xz v0.5.11 // indirect
190+
github.com/valyala/fasthttp v1.51.0 // indirect
191+
github.com/vishvananda/netlink v1.2.1-beta.2 // indirect
192+
github.com/vishvananda/netns v0.0.4 // indirect
193+
github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect
194+
github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect
195+
github.com/vmihailenco/tagparser v0.1.2 // indirect
196+
github.com/x448/float16 v0.8.4 // indirect
197+
github.com/xanzy/ssh-agent v0.3.3 // indirect
198+
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
199+
github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect
200+
github.com/zclconf/go-cty v1.14.1 // indirect
201+
github.com/zeebo/errs v1.3.0 // indirect
202+
go.nhat.io/otelsql v0.12.0 // indirect
203+
go.opentelemetry.io/otel v1.19.0 // indirect
204+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
205+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
206+
go.opentelemetry.io/otel/metric v1.19.0 // indirect
207+
go.opentelemetry.io/otel/sdk v1.19.0 // indirect
208+
go.opentelemetry.io/otel/trace v1.19.0 // indirect
209+
go.opentelemetry.io/proto/otlp v1.0.0 // indirect
210+
go.uber.org/atomic v1.11.0 // indirect
211+
go4.org/intern v0.0.0-20230525184215-6c62f75575cb // indirect
212+
go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect
213+
go4.org/netipx v0.0.0-20230728180743-ad4cb58a6516 // indirect
214+
go4.org/unsafe/assume-no-moving-gc v0.0.0-20230525183740-e7c30c78aeb2 // indirect
215+
golang.org/x/crypto v0.18.0 // indirect
216+
golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect
217+
golang.org/x/mod v0.14.0 // indirect
218+
golang.org/x/net v0.20.0 // indirect
219+
golang.org/x/oauth2 v0.16.0 // indirect
220+
golang.org/x/sync v0.6.0 // indirect
221+
golang.org/x/sys v0.16.0 // indirect
222+
golang.org/x/term v0.16.0 // indirect
223+
golang.org/x/text v0.14.0 // indirect
224+
golang.org/x/time v0.5.0 // indirect
225+
golang.org/x/tools v0.17.0 // indirect
226+
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
227+
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
228+
google.golang.org/appengine v1.6.8 // indirect
229+
google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect
230+
google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
231+
google.golang.org/grpc v1.61.0 // indirect
232+
google.golang.org/protobuf v1.32.0 // indirect
233+
gopkg.in/DataDog/dd-trace-go.v1 v1.57.0 // indirect
234+
gopkg.in/inf.v0 v0.9.1 // indirect
235+
gopkg.in/warnings.v0 v0.1.2 // indirect
236+
gopkg.in/yaml.v2 v2.4.0 // indirect
237+
gopkg.in/yaml.v3 v3.0.1 // indirect
238+
gvisor.dev/gvisor v0.0.0-20230504175454-7b0a1988a28f // indirect
239+
inet.af/netaddr v0.0.0-20230525184311-b8eac61e914a // indirect
240+
inet.af/peercred v0.0.0-20210906144145-0893ea02156a // indirect
241+
k8s.io/klog/v2 v2.110.1 // indirect
242+
k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00 // indirect
243+
k8s.io/utils v0.0.0-20230726121419-3b25d923346b // indirect
244+
nhooyr.io/websocket v1.8.7 // indirect
245+
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
246+
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
247+
sigs.k8s.io/yaml v1.4.0 // indirect
248+
storj.io/drpc v0.0.33-0.20230420154621-9716137f6037 // indirect
249+
tailscale.com v1.46.1 // indirect
250+
)

0 commit comments

Comments
 (0)