From d8adcd58301f49d9251702c09938bb050f2aff5a Mon Sep 17 00:00:00 2001 From: Andy Doan Date: Mon, 14 Nov 2016 15:13:17 -0600 Subject: cgit: add a script that will show every repository a user can view This is needed for cgit to safely handle dev-private-git.linaro.org Change-Id: I66de59f797ddb5378855ba3de6ea290c54d009ea --- gitolite-tools/user_repos.pl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 gitolite-tools/user_repos.pl diff --git a/gitolite-tools/user_repos.pl b/gitolite-tools/user_repos.pl new file mode 100755 index 0000000..3274ab3 --- /dev/null +++ b/gitolite-tools/user_repos.pl @@ -0,0 +1,31 @@ +#!/usr/bin/perl + +## Lists every repository a given user can read + +use strict; +use warnings; + +$ENV{GL_USER} = $ARGV[0]; + +BEGIN { + $ENV{HOME} = "/home/git"; + $ENV{GL_BINDIR} = "/home/git/gitolite/src"; + $ENV{GL_LIBDIR} = "/home/git/gitolite/src/lib"; +}; + +# Pull in gitolite's perl API module. Among other things, this also sets the +# GL_REPO_BASE environment variable. +use lib $ENV{GL_LIBDIR}; +use Gitolite::Rc; +use Gitolite::Common; +use Gitolite::Conf::Load; +use Gitolite::Easy; + +_chdir( $rc{GL_REPO_BASE} ); +my $repos = list_phy_repos(1); + +for my $repo (@$repos) { + if (can_read($repo)) { + print $repo . ".git\n"; + } +} -- cgit v1.2.3