From becb53340545dfb42cad1cf1a5124ee78e2816eb Mon Sep 17 00:00:00 2001 From: Dominik Meyer Date: Sat, 15 Sep 2018 21:24:40 +0200 Subject: [PATCH] ADD: added method to calc basic statistics --- lib/Git/IssueManager.pm | 76 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) diff --git a/lib/Git/IssueManager.pm b/lib/Git/IssueManager.pm index a459943..785f217 100644 --- a/lib/Git/IssueManager.pm +++ b/lib/Git/IssueManager.pm @@ -554,4 +554,80 @@ sub start } + +=method stats + +calculate some basic statistics from the current issue repository + +at the moment: + number of open issues + number of assigned issues + number of inprogress issues + number of closed issues + +@param none +@return hash with + {open} + {assigned} + {inprogress} + {closed} + {all} + +=cut +sub stats +{ + my $self = shift; + my $ref = $self->repository->getReference('refs/heads/issues'); + my $open = $ref->find("open"); + my $closed = $ref->find("closed"); + my $assigned = $ref->find("assigned"); + my $inprogress = $ref->find("inprogess"); + + my $ret={}; + + # get number of all open issues + if (defined($open)) + { + $ret->{open}=int($open->get); + } + else + { + $ret->{open}=0; + } + + # get number of all assigned issues + if (defined($assigned)) + { + $ret->{assigned}=int($assigned->get); + } + else + { + $ret->{assigned}=0; + } + + # get number of all inprogress issues + if (defined($inprogress)) + { + $ret->{inprogress}=int($inprogress->get); + } + else + { + $ret->{inprogess}=0; + } + + # get number of all closed issues + if (defined($closed)) + { + $ret->{closed}=int($closed->get); + } + else + { + $ret->{closed}=0; + } + + return $ret; +} + + + 1;