new post about using gitolite rights in gitweb
This commit is contained in:
parent
f1e6062117
commit
e77b01c4da
44
content/post/use-gitolite-access-control-in-gitweb.md
Normal file
44
content/post/use-gitolite-access-control-in-gitweb.md
Normal file
@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Use Gitolite Access Control In Gitweb
|
||||
date: !!timestamp '2015-09-24 00:00:00'
|
||||
update: !!timestamp '2019-04-09 12:45:00'
|
||||
tags:
|
||||
- git
|
||||
---
|
||||
|
||||
Are you using gitolite and gitweb? Two nice and lightweight projects, but perhaps you are tired to manage access control in gitweb?
|
||||
|
||||
Here is some simple tricks to use gitolite access list directly into gitweb, automatically.
|
||||
|
||||
<!--more-->
|
||||
|
||||
As you may know, the configuration file
|
||||
[`/etc/gitweb.conf`](https://git.kernel.org/pub/scm/git/git.git/tree/Documentation/gitweb.conf.txt#n15)
|
||||
is in fact no less than a perl script fragment. As it is simply imported by
|
||||
gitweb, it is possible to include some code.
|
||||
|
||||
[Gitolite](https://gitolite.com/) is also a piece of software writen in
|
||||
Perl. So it is pretty easy to make gitweb relying on gitolite permissions. Here
|
||||
is what I append to my `/etc/gitweb.conf`:
|
||||
|
||||
```perl
|
||||
# Most of the code comes from https://gitolite.com/gitolite/gitweb.conf.html
|
||||
# where comments live.
|
||||
|
||||
BEGIN {
|
||||
$ENV{HOME} = "/var/lib/gitolite"; # Home of the gitolite user in gentoo
|
||||
$ENV{GL_BINDIR} = "/usr/libexec/gitolite";
|
||||
}
|
||||
|
||||
use Gitolite::Easy;
|
||||
|
||||
$ENV{GL_USER} = $cgi->remote_user || "gitweb";
|
||||
|
||||
$export_auth_hook = sub {
|
||||
my $repo = shift;
|
||||
|
||||
return unless $repo =~ s/^\Q$projectroot\E\/?(.+)\.git$/$1/;
|
||||
|
||||
return Gitolite::Easy::can_read($repo);
|
||||
};
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user