Archived
1
0
Fork 0

New hooks version: allow ACU-* tags

This commit is contained in:
Mercier Pierre-Olivier 2013-12-02 21:11:17 +01:00
parent 868324e6e2
commit 45ba55a416
2 changed files with 98 additions and 58 deletions

View file

@ -30,25 +30,14 @@ exit(0) if (!$promo || !$id_project || !$repo_login);
for my $ref (@ARGV)
{
if ($ref =~ m<^refs/tags/(.+)$>)
if ($ref =~ m<^refs/tags/ACU-(.+)$> || $ref =~ m<^refs/tags/(.+)$>)
{
my $tag = $1;
log DEBUG, "Tag $tag on repository $ENV{GL_REPO} from IP $ENV{'SSH_CLIENT'} updated.";
# Get project informations
my $project;
eval {
$project = API::Projects::get($id_project, $promo);
};
if ($@ or !$project)
{
my $err = $@;
log TRACE, $err;
log ERROR, "Impossible d'envoyer de tags ; si le problème persiste, passez au laboratoire.";
exit 1;
}
my $project = get_project_info($tag);
# Extract lot of data
# Extract matching tag
my @rendus = grep {
exists $_->{vcs} and $_->{vcs}{tag} eq $tag;
} @{ $project->{submissions} };
@ -77,14 +66,14 @@ for my $ref (@ARGV)
# Send data to API
my $last_commit = `git log "refs/tags/$tag" -1 --decorate --tags`;
eval {
API::Submission::add($promo, $id_project, $tag, $repo_login, $last_commit);
};
eval {
API::Submission::add($promo, $id_project, $tag, $repo_login, $last_commit);
};
if ($@)
{
my $err = $@;
log DEBUG, "ERROR: ".$err;
log DONE, "Tag '$tag' effectué avec succès !";
log DONE, "Tag '$tag' effectué avec succès !";
}
else {
log DONE, "Tag '$tag' effectué avec succès ! Vérifiez-le sur l'intranet.";
@ -94,3 +83,22 @@ for my $ref (@ARGV)
}
exit 0;
sub get_project_info
{
my $project;
eval {
$project = API::Projects::get($id_project, $promo);
};
if ($@ or !$project)
{
my $err = $@;
log TRACE, $err;
log ERROR, "Impossible d'envoyer de tags ; si le problème persiste, passez au laboratoire.";
exit(1);
}
log TRACE, $project;
return $project;
}