git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: How to hide a git repository?

From
Jakub Narebski <jnareb@gmail.com>
Date
Nov 25, 2008, 20:10 UTC
Message-ID
<m3skpfk1mp.fsf@localhost.localdomain>
In-Reply-To
<200811252001.37259.thomas@koch.ro>
Thomas Koch <thomas@koch.ro> writes:
> Am Tuesday 25 November 2008 19:38:02 schrieb Daniel Barkalow:
> > On Mon, 24 Nov 2008, Gary Yang wrote:
Show 12 quoted lines
> > > Do I have to create two git servers? One is for public to download the
> > > released code. For example: gitpub.mycompany.com:/pub/linux/kernel.
> >
> > The public can't generally use this URL, because it's an ssh URL, and they
> > won't be able to connect with ssh. They can only really use
> > git://gitpub.mycompany.com/pub/linux/kernel or something similar.
> >
> > The normal pattern is to have R/W access with ssh and anonymous read
> > access via git://...; you can then have multiple repositories on the same
> > host, with the git server only serving the public one. All of them will be
> > accessible to the ssh methods (restricted by the user's UNIX permissions
> > on the files in those directories).

To control access via SSH protocol (which can be used both for fetching and for pushing), you can either configure accounts and user/groups permissions on repository directories, or you can use external tool like ssh_acl or Gitosis.

To control access via HTTP you can employ authorization and authentication from your web server; for push this would be matter of setting up WebDAV.

To control access via anonymous git:// protocol, you can use whitelist and blacklist mechanism built in git-daemon; by default only repositories with git-daemon-export-ok in them (in .git) are exported, if I understand correctly.

Additionally, if protocol is authenticated you can use hooks mechanism like example contrib/hooks/update-paranoid to restrict access (and with finer granularity too).

> Do you now of a way to show public repos with gitweb to the public and
> private repos to the staff with the same gitweb installation?

You can quite simply restrict access to some directories/repositories, or the fact that they are listed in list of all projects for _all_ clients quite easily (see description of GITWEB_EXPORT_OK in gitweb/README and gitweb/INSTALL).

If you have something more fancy, check out newest gitweb and take a
look at gitweb/INSTALL: you can now, thanks to commit dd7f5f1 by
Alexander Gavrilov, see
  http://permalink.gmane.org/gmane.comp.version-control.git/99962
HTH
-- 
Jakub Narebski
Poland
ShadeHawk on #git
Previous: Daniel BarkalowNext: Junio C Hamano
Message 10 of 13 in “How to hide a git repository?”
  1. Gary YangNov 25, 2008
  2. Heikki OrsilaNov 25, 2008
  3. Gary YangNov 25, 2008
  4. Bruno Cesar RibasNov 25, 2008
  5. Gary YangNov 25, 2008
  6. Nicolas Morey-ChaisemartinNov 25, 2008
  7. Daniel BarkalowNov 25, 2008
  8. Thomas KochNov 25, 2008
  9. Daniel BarkalowNov 25, 2008
  10. Jakub NarebskiNov 25, 2008
  11. Junio C HamanoNov 25, 2008
  12. Jakub NarebskiNov 25, 2008
  13. Junio C HamanoNov 25, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.