@@ -23,10 +23,13 @@ type Service struct {
2323}
2424
2525type Config struct {
26- ProjectRoot string
27- GitBinPath string
28- UploadPack bool
29- ReceivePack bool
26+ AuthPassEnvVar string
27+ AuthUserEnvVar string
28+ DefaultEnv string
29+ ProjectRoot string
30+ GitBinPath string
31+ UploadPack bool
32+ ReceivePack bool
3033}
3134
3235type HandlerReq struct {
@@ -38,10 +41,13 @@ type HandlerReq struct {
3841}
3942
4043var config Config = Config {
41- ProjectRoot : "/tmp" ,
42- GitBinPath : "/usr/bin/git" ,
43- UploadPack : true ,
44- ReceivePack : true ,
44+ AuthPassEnvVar : "" ,
45+ AuthUserEnvVar : "" ,
46+ DefaultEnv : "" ,
47+ ProjectRoot : "/tmp" ,
48+ GitBinPath : "/usr/bin/git" ,
49+ UploadPack : true ,
50+ ReceivePack : true ,
4551}
4652
4753var services = map [string ]Service {
6369)
6470
6571func init () {
72+ flag .StringVar (& config .AuthPassEnvVar , "auth_pass_env_var" , config .AuthPassEnvVar , "set an env var to provide the basic auth pass as" )
73+ flag .StringVar (& config .AuthUserEnvVar , "auth_user_env_var" , config .AuthUserEnvVar , "set an env var to provide the basic auth user as" )
74+ flag .StringVar (& config .DefaultEnv , "default_env" , config .DefaultEnv , "set the default env" )
6675 flag .StringVar (& config .ProjectRoot , "project_root" , config .ProjectRoot , "set project root" )
6776 flag .StringVar (& config .GitBinPath , "git_bin_path" , config .GitBinPath , "set git bin path" )
6877 flag .StringVar (& address , "server_address" , address , "set server address" )
@@ -119,14 +128,20 @@ func serviceRpc(hr HandlerReq) {
119128 w .Header ().Set ("Content-Type" , fmt .Sprintf ("application/x-git-%s-result" , rpc ))
120129 w .WriteHeader (http .StatusOK )
121130
122- env := []string {
123- "SSH_USER=git-http-backend" ,
131+ env := []string {}
132+
133+ if config .DefaultEnv != "" {
134+ env = append (env , config .DefaultEnv )
124135 }
125136
126- user , _ , authok := r .BasicAuth ()
137+ user , password , authok := r .BasicAuth ()
127138 if authok {
128- env = append (env , fmt .Sprintf ("NAME=%s" , user ))
129- env = append (env , fmt .Sprintf ("SSH_NAME=%s" , user ))
139+ if config .AuthUserEnvVar != "" {
140+ env = append (env , fmt .Sprintf ("%s=%s" , config .AuthUserEnvVar , user ))
141+ }
142+ if config .AuthPassEnvVar != "" {
143+ env = append (env , fmt .Sprintf ("%s=%s" , config .AuthPassEnvVar , password ))
144+ }
130145 }
131146
132147 args := []string {rpc , "--stateless-rpc" , dir }
0 commit comments