Re: git-push through git protocol

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Sun, 21 Jan 2007, Jakub Narebski wrote:
> > 
> > It seems there should be a way to configure a repo or the git daemon
> > to say "Allow push operations".
> > 
> > I looked through the release notes Junio posted for 1.5.0-rc2, but
> > found no reference to the git daemon.
> 
> git:// protocol is not authenticated. git by design allow push only through
> authenticated protocols, i.e. local, ssh:// (git+ssh://), http(s):// with
> WebDAV, probably in the future ftps://. 

Well, it _should_ actually be truly fairly trivial to allow pushing over 
the git:// protocol, and while it's not authenticated, I could well 
imagine that it would make sense from within a firewalled setup (where 
nobody but trusted internal people can reach the git port anyway).

So in that sense, I do think Bill's request makes some amount of sense.

At the same time, I suspect it's not a great idea, unless you also add 
*some* kind of logging facility to git-daemon.

But here is a trivial patch that *MAY* do what Bill wants.

NOTE! "git-receive-pack" is disabled by default, so you need to enable it 
explicitly by starting git-daemon with the "--enable=receive-pack" command  
line argument, or by having your config enable it automatically.

And a second note: I obviously didn't test it. I'm Linus. I don't do no 
steenking testing..

		Linus

---
diff --git a/daemon.c b/daemon.c
index f039534..9590372 100644
--- a/daemon.c
+++ b/daemon.c
@@ -372,9 +372,16 @@ static int upload_archive(void)
 	return -1;
 }
 
+static int receive_pack(void)
+{
+	execl_git_cmd("receive-pack", ".", NULL);
+	return -1;
+}
+
 static struct daemon_service daemon_service[] = {
 	{ "upload-archive", "uploadarch", upload_archive, 0, 1 },
 	{ "upload-pack", "uploadpack", upload_pack, 1, 1 },
+	{ "receive-pack", "receivepack", receive_pack, 0, 1 },
 };
 
 static void enable_service(const char *name, int ena) {
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]