gitolite/t/ssh-basic.t
Sitaram Chamarty 07cf7fedfe move triggers into their own subdir...
...otherwise 'gitolite help' was getting too confusing, mixing up stuff
that users should not be running directly (even on the server)

----

implementation notes:

those who are worried about the '../triggers/' in various parts of the
code here, remember you can only do that from a command line on the
server.  Remote users can only use commands that have been explicitly
listed in the COMMANDS hash in the rc file.  This means they can't even
access other commands in the same directory as, say, the 'info' command,
so a '../' is definitely not going to work.
2012-03-26 11:02:57 +05:30

58 lines
1.4 KiB
Perl
Executable file

#!/usr/bin/perl
use strict;
use warnings;
# this is hardcoded; change it if needed
use lib "src";
use Gitolite::Common;
use Gitolite::Test;
# basic tests using ssh
# ----------------------------------------------------------------------
my $bd = `gitolite query-rc -n GL_BINDIR`;
my $h = $ENV{HOME};
my $ab = `gitolite query-rc -n GL_ADMIN_BASE`;
umask 0077;
try "
plan 26
# reset stuff
rm -f $h/.ssh/authorized_keys; ok or die 1
cp $bd/../t/keys/u[1-6]* $h/.ssh; ok or die 2
cp $bd/../t/keys/admin* $h/.ssh; ok or die 3
cp $bd/../t/keys/config $h/.ssh; ok or die 4
cat $h/.ssh/config
perl s/%USER/$ENV{USER}/
put $h/.ssh/config
mkdir $ab/keydir; ok or die 5
cp $bd/../t/keys/*.pub $ab/keydir; ok or die 6
";
system("gitolite ../triggers/post-compile/ssh-authkeys");
# basic tests
# ----------------------------------------------------------------------
confreset; confadd '
@g1 = u1
@g2 = u2
repo foo
RW = @g1 u3
R = @g2 u4
';
try "ADMIN_PUSH set3; !/FATAL/" or die text();
try "
ssh u1 info; ok; /R W \tfoo/
ssh u2 info; ok; /R \tfoo/
ssh u3 info; ok; /R W \tfoo/
ssh u4 info; ok; /R \tfoo/
ssh u5 info; ok; !/foo/
ssh u6 info; ok; !/foo/
"