push @{$config{wrappers}}, {
wrapper => $config{git_wrapper},
wrappermode => (defined $config{git_wrappermode} ? $config{git_wrappermode} : "06755"),
+ wrapper_background_command => $config{git_wrapper_background_command},
};
}
if (defined $config{git_test_receive_wrapper} &&
- length $config{git_test_receive_wrapper}) {
+ length $config{git_test_receive_wrapper} &&
+ defined $config{untrusted_committers} &&
+ @{$config{untrusted_committers}}) {
push @{$config{wrappers}}, {
test_receive => 1,
wrapper => $config{git_test_receive_wrapper},
safe => 0, # file
rebuild => 0,
},
+ git_wrapper_background_command => {
+ type => "string",
+ example => "git push github",
+ description => "shell command for git_wrapper to run, in the background",
+ safe => 0, # command
+ rebuild => 0,
+ },
git_wrappermode => {
type => "string",
example => '06755',
},
historyurl => {
type => "string",
- example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=history;f=[[file]]",
+ example => "http://git.example.com/gitweb.cgi?p=wiki.git;a=history;f=[[file]];hb=HEAD",
description => "gitweb url to show file history ([[file]] substituted)",
safe => 1,
rebuild => 1,
# Update working directory.
if (length $config{gitorigin_branch}) {
- run_or_cry('git', 'pull', $config{gitorigin_branch});
+ run_or_cry('git', 'pull', '--prune', $config{gitorigin_branch});
}
}
$u=encode_utf8($u);
$ENV{GIT_AUTHOR_NAME}=$u;
}
- if (defined $params{session}->param("username")) {
- $u=encode_utf8($params{session}->param("username"));
+ if (defined $params{session}->param("nickname")) {
+ $u=encode_utf8($params{session}->param("nickname"));
+ $u=~s/\s+/_/g;
+ $u=~s/[^-_0-9[:alnum:]]+//g;
}
if (defined $u) {
$ENV{GIT_AUTHOR_EMAIL}="$u\@web";
push @messages, { line => $line };
}
- my $user=$ci->{'author_name'};
- my $usershort=$ci->{'author_username'};
+ my $user=$ci->{'author_username'};
my $web_commit = ($ci->{'author'} =~ /\@web>/);
-
- if ($usershort =~ /:\/\//) {
- $usershort=undef; # url; not really short
+ my $nickname;
+
+ # Set nickname only if a non-url author_username is available,
+ # and author_name is an url.
+ if ($user !~ /:\/\// && defined $ci->{'author_name'} &&
+ $ci->{'author_name'} =~ /:\/\//) {
+ $nickname=$user;
+ $user=$ci->{'author_name'};
}
# compatability code for old web commit messages
push @rets, {
rev => $sha1,
user => $user,
- usershort => $usershort,
+ nickname => $nickname,
committype => $web_commit ? "web" : "git",
when => $when,
message => [@messages],