git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* push problem with anonymous access
@ 2011-07-01 22:32 Michele Marcionelli
  2011-07-02 15:19 ` Tay Ray Chuan
  0 siblings, 1 reply; 4+ messages in thread
From: Michele Marcionelli @ 2011-07-01 22:32 UTC (permalink / raw)
  To: git

Dear all

I configured apache as described on the man page:

SetEnv GIT_PROJECT_ROOT /var/www/vhosts/git/root
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /scratch/local/app/git/current/libexec/git-core/git-http-backend/

And then the following 2 repositories (also as described in the page):

# (1) authentication for both reads and writes
<LocationMatch /git/math/private_test.git>
   AuthType Basic
   AuthName "Git Access"
   Require user admin
   AuthUserFile /var/www/vhosts/git/htpasswd
</LocationMatch>

# (2) anonymous read access but authenticated write access
<LocationMatch "/git/math/public_test.git/git-receive-pack$">
   AuthType Basic
   AuthName "Git Access"
   Require user admin
   AuthUserFile /var/www/vhosts/git/htpasswd
</LocationMatch>

Now: with the repository (1) I can do everything, clone & push. With the repository (2) I can only clone and when I try to push as follow:

export GIT_SSL_NO_VERIFY=true
git clone https://git.math.ethz.ch/git/math/public_test.git
cd public_test
echo foo >> TODO
git commit TODO -m bar
git push

I get followin errors to "stderr":
error: Cannot access URL https://git.math.ethz.ch/git/math/public_test.git/, return code 22
fatal: git-http-push failed

An to the apache access_log & error_log files:
==> /var/log/httpd/git-ssl.access_log <==
85.1.201.213 - - [02/Jul/2011:00:13:32 +0200] "GET /git/math/public_test.git/info/refs?service=git-receive-pack HTTP/1.1" 403 - "-" "git/1.7.5.4"
85.1.201.213 - - [02/Jul/2011:00:13:33 +0200] "GET /git/math/public_test.git/info/refs HTTP/1.1" 200 59 "-" "git/1.7.5.4"
85.1.201.213 - - [02/Jul/2011:00:13:33 +0200] "GET /git/math/public_test.git/HEAD HTTP/1.1" 200 23 "-" "git/1.7.5.4"
85.1.201.213 - - [02/Jul/2011:00:13:33 +0200] "PROPFIND /git/math/public_test.git/ HTTP/1.1" 404 - "-" "git/1.7.5.4"
==> /var/log/httpd/git-ssl.error_log <==
[Sat Jul 02 00:13:33 2011] [error] [client 85.1.201.213] Request not supported: '/var/www/vhosts/git/root/math/public_test.git/'

Any Idea?

Thx, Michele


--
Michele Marcionelli · mm@ethz.ch · +41 44 632 6193
* Please consider the environment before printing

^ permalink raw reply	[flat|nested] 4+ messages in thread
* Re: push problem with anonymous access
@ 2011-07-04  7:13 Michele Marcionelli
  2011-07-04 10:02 ` Michele Marcionelli
  0 siblings, 1 reply; 4+ messages in thread
From: Michele Marcionelli @ 2011-07-04  7:13 UTC (permalink / raw)
  To: Tay Ray Chuan; +Cc: git

Hi Ray

I tried as you suggested (even if to clone I don't need a password):

$ git clone https://michele:******@git.math.ethz.ch/git/math/public_test.git
==>
Cloning into public_test...
remote: Counting objects: 15, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 15 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.

And in the apache logs:
129.132.147.190 - - [04/Jul/2011:08:14:40 +0200] "GET /git/math/public_test.git/info/refs?service=git-upload-pack HTTP/1.1" 200 264 "-" "git/1.7.5.4"
129.132.147.190 - - [04/Jul/2011:08:14:40 +0200] "POST /git/math/public_test.git/git-upload-pack HTTP/1.1" 200 1688 "-" "git/1.7.5.4"

But the when I push (and here is my problem):
$ cd public_test
$ echo foo >> TODO
$ git commit TODO -m bar
$ git push
==>
error: Cannot access URL https://michele:******@git.math.ethz.ch/git/math/public_test.git/, return code 22
fatal: git-http-push failed

I get following in the apache logs:

==> /var/log/httpd/git-ssl.access_log <==
129.132.147.190 - - [04/Jul/2011:08:17:45 +0200] "GET /git/math/public_test.git/info/refs?service=git-receive-pack HTTP/1.1" 403 - "-" "git/1.7.5.4"
129.132.147.190 - - [04/Jul/2011:08:17:45 +0200] "GET /git/math/public_test.git/info/refs HTTP/1.1" 200 59 "-" "git/1.7.5.4"
==> /var/log/httpd/git-ssl.error_log <==
[Mon Jul 04 08:17:45 2011] [error] [client 129.132.147.190] Service not enabled: 'receive-pack'
==> /var/log/httpd/git-ssl.access_log <==
129.132.147.190 - - [04/Jul/2011:08:17:45 +0200] "GET /git/math/public_test.git/HEAD HTTP/1.1" 200 23 "-" "git/1.7.5.4"
129.132.147.190 - - [04/Jul/2011:08:17:46 +0200] "PROPFIND /git/math/public_test.git/ HTTP/1.1" 404 - "-" "git/1.7.5.4"
==> /var/log/httpd/git-ssl.error_log <==
[Mon Jul 04 08:17:46 2011] [error] [client 129.132.147.190] Request not supported: '/var/www/vhosts/git/root/math/public_test.git/'


The problem that I see is that in the configuration (see also the "man git-http-backend") you have this

    <LocationMatch "^/git/.*/git-receive-pack$">

and "git push" do following request:

    /git/whatever/info/refs?service=git-receive-pack

which is not matched by the "LocationMarch".

Thx, Michele

PS: I'm not using WebDAV, since it is not documented in the man page.


On Jul 2, 2011, at 17:19 , Tay Ray Chuan wrote:

> On Sat, Jul 2, 2011 at 6:32 AM, Michele Marcionelli
> <michele.marcionelli <at> math.ethz.ch> wrote:
>> ==> /var/log/httpd/git-ssl.access_log <==
>> 85.1.201.213 - - [02/Jul/2011:00:13:32 +0200] "GET
> /git/math/public_test.git/info/refs?service=git-receive-pack HTTP/1.1" 403 - "-" "git/1.7.5.4"
> 
> Try
> 
>  $ git clone https://<user>:<pwd>@git.math.ethz.ch/git/math/public_test.git
> 
> or put it in ~/.netrc.
> 
> -- 
> Cheers,
> Ray Chuan

--
Michele Marcionelli · mm@ethz.ch · +41 44 632 6193
* Please consider the environment before printing

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-07-04 10:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-07-01 22:32 push problem with anonymous access Michele Marcionelli
2011-07-02 15:19 ` Tay Ray Chuan
  -- strict thread matches above, loose matches on Subject: below --
2011-07-04  7:13 Michele Marcionelli
2011-07-04 10:02 ` Michele Marcionelli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).