MCPcopy Create free account
hub / github.com/cli/cli / newMockrelayServer

Function newMockrelayServer

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

Source from the content-addressed store, hash-verified

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

Callers 1

NewMockHttpClientFunction · 0.85

Calls 2

makeConnectionFunction · 0.85
ErrorfMethod · 0.65

Tested by

no test coverage detected