MCPcopy Index your code
hub / github.com/cli/cli / newMockrelayServer

Function newMockrelayServer

internal/codespaces/connection/tunnels_api_server_mock.go:240–276  ·  view source on GitHub ↗
(opts ...relayServerOption)

Source from the content-addressed store, hash-verified

238type channelHandler func(context.Context, ssh.NewChannel) error
239
240func newMockrelayServer(opts ...relayServerOption) (*relayServer, error) {
241 server := &relayServer{
242 errc: make(chan error),
243 sshConfig: &ssh.ServerConfig{
244 NoClientAuth: true,
245 },
246 }
247
248 // Create a private key with the crypto package
249 key, err := rsa.GenerateKey(rand.Reader, 2048)
250 if err != nil {
251 return nil, fmt.Errorf("failed to generate key: %w", err)
252 }
253
254 privateKeyPEM := pem.EncodeToMemory(
255 &pem.Block{
256 Type: "RSA PRIVATE KEY",
257 Bytes: x509.MarshalPKCS1PrivateKey(key),
258 },
259 )
260
261 // Parse the private key
262 sshPrivateKey, err := ssh.ParsePrivateKey(privateKeyPEM)
263 if err != nil {
264 return nil, fmt.Errorf("failed to parse private key: %w", err)
265 }
266
267 server.sshConfig.AddHostKey(ssh.Signer(sshPrivateKey))
268
269 server.httpServer = httptest.NewServer(http.HandlerFunc(makeConnection(server)))
270
271 for _, opt := range opts {
272 opt(server)
273 }
274
275 return server, nil
276}
277
278func withAccessToken(accessToken string) func(*relayServer) {
279 return func(server *relayServer) {

Callers 1

NewMockHttpClientFunction · 0.85

Calls 2

makeConnectionFunction · 0.85
ErrorfMethod · 0.65

Tested by

no test coverage detected