New hooks version: allow ACU-* tags
This commit is contained in:
parent
868324e6e2
commit
45ba55a416
2 changed files with 98 additions and 58 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Reference in a new issue