$c->stash->{Commit} = $c->stash->{Repository}->get_object($c->stash->{Repository}->head_hash);
};
+sub object : Chained('find') PathPart('') Args(1) {
+ my ($self, $c, $sha1) = @_;
+
+ my $repo = $c->stash->{Repository};
+ my $obj = $c->stash->{Commit} = $repo->get_object($sha1);
+ my($act) = (ref($obj) || '') =~ /::(\w+)$/;
+
+ $c->res->redirect($c->uri_for_action("/ref/\L$act", [$repo->name, $obj->sha1]));
+ $c->res->status(301);
+
+}
+
sub summary : Chained('find') PathPart('') Args(0) {}
sub heads : Chained('find') Args(0) {}
<span class='refs'>
[% FOREACH ref IN refs.${object.sha1} %]
<span class='[% ref.search('^remotes/') ? 'remote' : 'head' %]'>
- <a href='[% c.uri_for_action("/repository/shortlog", [ref.match('(\w+)$').0]) %]'>[% ref.replace('^(remote|head)s/', '') %]</a>
+ <a href='[% c.uri_for_action("/repository/shortlog", [Repository, object.sha1]) %]'>[% ref.replace('^(remote|head)s/', '') %]</a>
</span>
[% END %]
</span>
my $uri = $row->findnodes('.//a')->[0]->attr('href');
my ($repos_name) = $uri =~ m{^http://localhost/([\w\.]+)$};
ok $repos_name, "Repos name $repos_name";
- like $row->findnodes('.//a')->[1]->as_text, qr/^[\w\s;'\.]+$/, 'Have description'
+ like $row->findnodes('.//a')->[1]->as_text, qr{^[\w\s/;',\.]+$}, 'Have description'
unless $repos_name eq 'nodescription';
like $row->findnodes('.//td[@class="time-since"')->[0]->as_text, qr/^(never|\d\s+(years|months)\s+ago)$/,
'Last change looks ok';
my $request = "/$uri";
$request .= "?$qs" if defined $qs;
my $response = request($request);
- ok($response->is_success, "ok $request");
+ ok($response->is_success || $response->is_redirect, "ok $request");
if (MECH) {
my $res = MECH()->get($request);
ok $res->is_success, "ok mech $request (" . $res->code . ')';