def getStatuesOfOtherReqWhenThisInProgress(self): self.__getHistoryItems(self.__initStartInProgressTime) result = {} if self.startProgressTime != None: timeClause = " ON " + \ re.findall('(\d{4}-\d{2}-\d{2})', self.startProgressTime)[0] result[ "portionOpenWhenThisInProgress"] = JiraQuery.getNumIssueWhileOpenByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionInProgressWhenThisInProgress"] = JiraQuery.getNumIssueWhenInProgressByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionReopenedWhenThisInProgress"] = JiraQuery.getNumIssueWhileReopenedByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionResolvedWhenThisInProgress"] = JiraQuery.getNumIssueWhileResolvedByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionClosedWhenThisInProgress"] = JiraQuery.getNumIssueWhenInProgressByClause( self.jiraAPI, self.jiraProjectName, timeClause) else: # The issue hasn't started being developed. result["portionOpenWhenThisInProgress"] = result[ "portionInProgressWhenThisInProgress"] = result[ "portionReopenedWhenThisInProgress"] = "NA" result["portionResolvedWhenThisInProgress"] = result[ "portionClosedWhenThisInProgress"] = "NA" return result
def getStatusOfOtherReqBeforeThisInProgress(self): self.__getHistoryItems(self.__initStartInProgressTime) result = {} if self.startProgressTime != None: allIssueBeforeThis = JiraQuery.getAllFinishedIssueBeforeThisInProgress( self.jiraAPI, self.jiraProjectName, self.startProgressTime) numIssueBeforeThis = len(allIssueBeforeThis) result[ "numDevelopedRequirementsBeforeThisInProgress"] = numIssueBeforeThis else: # this issue has no "In Progress" phase. result["numDevelopedRequirementsBeforeThisInProgress"] = "NA" return result
def getOtherReqStatusesWhileThisOpen(self): self.__getHistoryItems(self.__initFinishedOpenStatusTime) result = {} timeClause = "" if self.openEndingTime != None: # the issue is in open status without activities # convert to the time format which is used by jql. timeClause = " BEFORE " + \ re.findall('(\d{4}-\d{2}-\d{2})', self.openEndingTime)[0] result[ "portionOpenWhileThisOpen"] = JiraQuery.getNumIssueWhileOpenByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionInProgressWhileThisOpen"] = JiraQuery.getNumIssueWhenInProgressByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionReopenedWhileThisOpen"] = JiraQuery.getNumIssueWhileReopenedByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionResolvedWhileThisOpen"] = JiraQuery.getNumIssueWhileResolvedByClause( self.jiraAPI, self.jiraProjectName, timeClause) result[ "portionClosedWhileThisOpen"] = JiraQuery.getNumIssueWhileClosedByClause( self.jiraAPI, self.jiraProjectName, timeClause) return result
def getPortionOfCommitsWithUnassignedTask(projectName): loaclRepo = "./CCP-REPOS/tika" totalNumCommits = 0 numUnassignedTaskWithCommits = 0 unassignedIssues = JiraQuery.getUnassignedIssues( JIRA({'server': 'https://issues.apache.org/jira'}), projectName) totalNumCommits += totalNumCommitsOnAllBrances(loaclRepo) repo = git.Repo(loaclRepo) for issue in unassignedIssues: logInfo = repo.git.log("--all", "-i", "--grep=" + issue) if logInfo != "": numUnassignedTaskWithCommits += 1 return round(numUnassignedTaskWithCommits / totalNumCommits, 2)
def getPortionOfCommitsWithUnassignedTask(self): totalNumCommits = 0 numUnassignedTaskWithCommits = 0 unassignedIssues = JiraQuery.getUnassignedIssues( JIRA({'server': 'https://issues.apache.org/jira'}), self.jiraApache.jiraProjectName) for localRepo in self.localRepos: numCommits = GitOperations.executeGitShellCommand( localRepo, ["git log --all --pretty=format:'%H' | wc -l"]) totalNumCommits += int(numCommits.replace(" ", "")) for localRepo in self.localRepos: repo = git.Repo(localRepo) for issue in unassignedIssues: logInfo = repo.git.log("--all", "-i", "--grep=" + issue) if logInfo != "": numUnassignedTaskWithCommits += 1 print("numUnassignedTaskWithCommits = ", numUnassignedTaskWithCommits) print("totalNumCommits = ", totalNumCommits) return round(numUnassignedTaskWithCommits / totalNumCommits, 2)
def __setAllIssuesApache(self): for req in JiraQuery.getAllIssues(self.jiraAPI, self.jiraProjectName): self.issuesApache.append(IssueApache( req.key, self.jiraAPI, self.jiraProjectName))
def getNumOpenFeatures(self): return JiraQuery.getNumIssueWhileOpenByClause(self.jiraAPI, self.jiraProjectName)
def getNumInProgressFeatures(self): return JiraQuery.getNumIssueWhenInProgressByClause(self.jiraAPI, self.jiraProjectName)