@@ -16,49 +16,58 @@ import (
1616 "github.com/loft-sh/devpod/pkg/agent/tunnel"
1717 locald "github.com/loft-sh/devpod/pkg/daemon/platform"
1818 workspaced "github.com/loft-sh/devpod/pkg/daemon/workspace"
19+ devpodlog "github.com/loft-sh/devpod/pkg/log"
1920 "github.com/loft-sh/devpod/pkg/ts"
2021 "github.com/loft-sh/log"
2122 "github.com/pkg/errors"
23+ "github.com/sirupsen/logrus"
2224)
2325
24- const DefaultPort = "12049"
25- const CredentialsServerPortEnv = "DEVPOD_CREDENTIALS_SERVER_PORT"
26+ const (
27+ DefaultPort = "12049"
28+ CredentialsServerPortEnv = "DEVPOD_CREDENTIALS_SERVER_PORT"
29+ CredentialsServerLogFile = "devpod-credentials-server.log"
30+ )
2631
2732// RunCredentialsServer starts a credentials server inside the DevPod workspace.
2833func RunCredentialsServer (
2934 ctx context.Context ,
3035 port int ,
3136 client tunnel.TunnelClient ,
3237 clientHost string ,
33- log log.Logger ,
38+ logger log.Logger ,
3439) error {
40+ logPath := filepath .Join ("/tmp" , CredentialsServerLogFile )
41+ fileLogger := log .NewFileLogger (logPath , logrus .DebugLevel )
42+ combinedLogger := devpodlog .NewCombinedLogger (logrus .DebugLevel , logger , fileLogger )
43+
3544 var handler http.Handler = http .HandlerFunc (func (writer http.ResponseWriter , request * http.Request ) {
36- log .Debugf ("Incoming client connection at %s" , request .URL .Path )
45+ combinedLogger .Debugf ("Incoming client connection at %s" , request .URL .Path )
3746 if request .URL .Path == "/git-credentials" {
38- err := handleGitCredentialsRequest (ctx , writer , request , client , clientHost , log )
47+ err := handleGitCredentialsRequest (ctx , writer , request , client , clientHost , combinedLogger )
3948 if err != nil {
4049 http .Error (writer , err .Error (), http .StatusInternalServerError )
4150 return
4251 }
4352 } else if request .URL .Path == "/docker-credentials" {
44- err := handleDockerCredentialsRequest (ctx , writer , request , client , log )
53+ err := handleDockerCredentialsRequest (ctx , writer , request , client , combinedLogger )
4554 if err != nil {
4655 http .Error (writer , err .Error (), http .StatusInternalServerError )
4756 return
4857 }
4958 } else if request .URL .Path == "/git-ssh-signature" {
50- err := handleGitSSHSignatureRequest (ctx , writer , request , client , log )
59+ err := handleGitSSHSignatureRequest (ctx , writer , request , client , combinedLogger )
5160 if err != nil {
5261 http .Error (writer , err .Error (), http .StatusInternalServerError )
5362 return
5463 }
5564 } else if request .URL .Path == "/loft-platform-credentials" {
56- err := handleLoftPlatformCredentialsRequest (ctx , writer , request , client , log )
65+ err := handleLoftPlatformCredentialsRequest (ctx , writer , request , client , combinedLogger )
5766 if err != nil {
5867 http .Error (writer , err .Error (), http .StatusInternalServerError )
5968 }
6069 } else if request .URL .Path == "/gpg-public-keys" {
61- err := handleGPGPublicKeysRequest (ctx , writer , request , client , log )
70+ err := handleGPGPublicKeysRequest (ctx , writer , request , client , combinedLogger )
6271 if err != nil {
6372 http .Error (writer , err .Error (), http .StatusInternalServerError )
6473 }
@@ -70,7 +79,7 @@ func RunCredentialsServer(
7079
7180 errChan := make (chan error , 1 )
7281 go func () {
73- log .Debugf ("Credentials server started on port %d..." , port )
82+ combinedLogger .Debugf ("Credentials server started on port %d..." , port )
7483
7584 // always returns error. ErrServerClosed on graceful close
7685 if err := srv .ListenAndServe (); err != http .ErrServerClosed {
@@ -192,7 +201,8 @@ func handleGitCredentialsOverTSNet(ctx context.Context, writer http.ResponseWrit
192201 log .Infof ("Response: %s" , string (respBody ))
193202
194203 // Write the response back to the original response.
195- writer .WriteHeader (resp .StatusCode )
204+ writer .Header ().Set ("Content-Type" , "application/json" )
205+ writer .WriteHeader (http .StatusOK )
196206 if _ , err := writer .Write (respBody ); err != nil {
197207 log .Errorf ("Error writing response to client: %v" , err )
198208 return errors .Wrap (err , "write response" )
0 commit comments