Exemple #1
0
 def has_pull_request_merged(self, repo_name):
     index: int = random.randint(0, len(self.__github) - 1)
     remaining = self.get_remaining(index)
     g: Github = self.__github[index]
     org, remaining = self.get_organization(g, self.__organization, index, remaining)
     repo, remaining = self._get_repository(repo_name, org, index, remaining)
     num_tot = None
     pulls = None
     while num_tot is None:
         try:
             remaining = self.__question_min(index, remaining, 1)
             pulls: PaginatedList.PaginatedList = repo.get_pulls(state='all')
             remaining = self.__question_min(index, remaining, 1)
             num_tot = pulls.totalCount
         except GithubException:
             num_tot = None
         except exceptions.RequestException:
             num_tot = None
     name_file_log = 'log/pull request is merged ' + repo.name + ' ' + self.__organization + '.log'
     num, value = Log.search_file_log(name_file_log)
     if value:
         return True
     else:
         try:
             while True:
                 request_exception = False
                 try:
                     remaining = self.__question_min(index, remaining, 1)
                     pull_request: PullRequest.PullRequest = pulls[num]
                     if pull_request.is_merged():
                         return True
                 except GithubException:
                     request_exception = True
                 except exceptions.RequestException:
                     request_exception = True
                 finally:
                     if request_exception is False:
                         num = num + 1
                     Log.control_write_log(name_file_log, num, False)
         except IndexError:
             return False
Exemple #2
0
 def get_issues_and_commits(self, index, repo, name_organization, name_file,
                            name_file_comment):
     g: Github = self.__tokens[index][0]
     remaining = self.get_remaining(index)
     org, remaining = self.get_organization(g, name_organization, index,
                                            remaining)
     repository, remaining = self._get_repository(repo, org, index,
                                                  remaining)
     num_tot = None
     issues = None
     while num_tot is None:
         try:
             remaining = self.__question_min(index, remaining, 1)
             issues = repository.get_issues(state='all')
             num_tot = issues.totalCount
         except GithubException:
             num_tot = None
         except exceptions.RequestException:
             num_tot = None
     remaining = self.__question_min(index, remaining, 1)
     name_file_log = 'log/issue ' + repository.name + ' ' + name_organization + '.log'
     num, state = Log.search_file_log(name_file_log)
     try:
         while True:
             request_exception = False
             issue_user = None
             issues: PaginatedList.PaginatedList
             repository: Repository
             try:
                 remaining = self.__question_min(index, remaining, 1)
                 issue = issues[num_tot - num]
                 remaining = self.__question_min(index, remaining, 1)
                 if issue.pull_request is not None:
                     remaining = self.__question_min(index, remaining, 2)
                     if type(issue.created_at) is not None:
                         issue_user: Issues = Issues(
                             repository.name, issue.user.login,
                             issue.html_url, issue.url,
                             issue.title, issue.body, issue.state,
                             issue.as_pull_request(), issue.created_at,
                             issue.updated_at)
                     else:
                         issue_user: Issues = Issues(
                             repository.name, issue.user.login,
                             issue.html_url, issue.url,
                             issue.title, issue.body, issue.state,
                             issue.as_pull_request(), None, None)
                 else:
                     remaining = self.__question_min(index, remaining, 2)
                     if type(issue.created_at) is not None:
                         issue_user: Issues = Issues(
                             repository.name, issue.user.login,
                             issue.html_url, issue.url, issue.title,
                             issue.body, issue.state, None,
                             issue.created_at, issue.updated_at)
                     else:
                         issue_user: Issues = Issues(
                             repository.name, issue.user.login,
                             issue.html_url, issue.url, issue.title,
                             issue.body, issue.state, None, None, None)
                 remaining = self.__question_min(index, remaining, 1)
                 issue_user, remaining = self.comments_issue(
                     issue, issue_user, index, remaining)
             except GithubException:
                 request_exception = True
             except ConnectionError:
                 request_exception = True
             except exceptions.RequestException:
                 request_exception = True
             except IndexError:
                 num = num + 1
                 request_exception = True
             finally:
                 if issue_user is not None and request_exception is False:
                     issue_user.write_issue(name_file, name_file_comment)
                     num = num + 1
                 if (num - num_tot) == -1:
                     raise ExitException
                 Log.control_write_log(name_file_log, num)
     except ExitException:
         pass
Exemple #3
0
 def get_pull_request(self, index, repo_name, name_organization,
                      name_file_pull_request,
                      name_file_comment_pull_request):
     remaining = self.get_remaining(index)
     g: Github = self.__tokens[index][0]
     org, remaining = self.get_organization(g, name_organization, index,
                                            remaining)
     repo, remaining = self._get_repository(repo_name, org, index,
                                            remaining)
     num_tot = None
     pulls = None
     while num_tot is None:
         try:
             remaining = self.__question_min(index, remaining, 1)
             pulls: PaginatedList.PaginatedList = repo.get_pulls(
                 state='all')
             remaining = self.__question_min(index, remaining, 1)
             num_tot = pulls.totalCount
         except GithubException:
             num_tot = None
         except exceptions.RequestException:
             num_tot = None
     name_file_log = 'log/pull ' + repo.name + ' ' + name_organization + '.log'
     num, state = Log.search_file_log(name_file_log)
     try:
         while True:
             request_exception = False
             pull_request_user = None
             try:
                 remaining = self.__question_min(index, remaining, 1)
                 pull_request = pulls[num_tot - num]
                 assignees: list = list()
                 for assignee in pull_request.assignees:
                     assignees.append(assignee.login)
                 labels: list = list()
                 for label in pull_request.labels:
                     labels.append(label.name)
                 if assignees is None:
                     remaining = self.__question_min(index, remaining, 1)
                     if pull_request.is_merged():
                         remaining = self.__question_min(
                             index, remaining, 1)
                         if pull_request.merged_by is not None:
                             remaining = self.__question_min(
                                 index, remaining, 4)
                             pull_request_user = PullRequest(
                                 repo_name, pull_request.url,
                                 pull_request.html_url,
                                 pull_request.user.login,
                                 pull_request.title, pull_request.body,
                                 list(pull_request.assignee.login),
                                 pull_request.commits,
                                 pull_request.created_at,
                                 pull_request.updated_at,
                                 pull_request.closed_at,
                                 pull_request.is_merged(),
                                 pull_request.merged_at,
                                 pull_request.merged_by.login,
                                 pull_request.mergeable_state,
                                 pull_request.mergeable, pull_request.state)
                         else:
                             remaining = self.__question_min(
                                 index, remaining, 4)
                             pull_request_user = PullRequest(
                                 repo_name, pull_request.url,
                                 pull_request.html_url,
                                 pull_request.user.login,
                                 pull_request.title, pull_request.body,
                                 list(pull_request.assignee.login),
                                 pull_request.commits,
                                 pull_request.created_at,
                                 pull_request.updated_at,
                                 pull_request.closed_at, '',
                                 pull_request.merged_at,
                                 pull_request.merged_by.login,
                                 pull_request.mergeable_state,
                                 pull_request.mergeable, pull_request.state)
                     else:
                         remaining = self.__question_min(
                             index, remaining, 3)
                         pull_request_user = PullRequest(
                             repo_name, pull_request.url,
                             pull_request.html_url, pull_request.user.login,
                             pull_request.title, pull_request.body,
                             list(pull_request.assignee.login),
                             pull_request.commits, pull_request.created_at,
                             pull_request.updated_at,
                             pull_request.closed_at,
                             pull_request.is_merged(), '', '',
                             pull_request.mergeable_state,
                             pull_request.mergeable, pull_request.state)
                 else:
                     remaining = self.__question_min(index, remaining, 1)
                     if pull_request.is_merged():
                         remaining = self.__question_min(
                             index, remaining, 1)
                         if pull_request.merged_by is not None:
                             remaining = self.__question_min(
                                 index, remaining, 3)
                             pull_request_user = PullRequest(
                                 repo_name, pull_request.url,
                                 pull_request.html_url,
                                 pull_request.user.login,
                                 pull_request.title, pull_request.body,
                                 assignees, pull_request.commits,
                                 pull_request.created_at,
                                 pull_request.updated_at,
                                 pull_request.closed_at,
                                 pull_request.is_merged(),
                                 pull_request.merged_at,
                                 pull_request.merged_by.login,
                                 pull_request.mergeable_state,
                                 pull_request.mergeable, pull_request.state)
                         else:
                             pull_request_user = PullRequest(
                                 repo_name, pull_request.url,
                                 pull_request.html_url,
                                 pull_request.user.login,
                                 pull_request.title, pull_request.body,
                                 assignees, pull_request.commits,
                                 pull_request.created_at,
                                 pull_request.updated_at,
                                 pull_request.closed_at,
                                 pull_request.is_merged(),
                                 pull_request.merged_at, '',
                                 pull_request.mergeable_state,
                                 pull_request.mergeable, pull_request.state)
                     else:
                         remaining = self.__question_min(
                             index, remaining, 2)
                         pull_request_user = PullRequest(
                             repo_name, pull_request.url,
                             pull_request.html_url, pull_request.user.login,
                             pull_request.title, pull_request.body,
                             assignees, pull_request.commits,
                             pull_request.created_at,
                             pull_request.updated_at,
                             pull_request.closed_at,
                             pull_request.is_merged(), '', '',
                             pull_request.mergeable_state,
                             pull_request.mergeable, pull_request.state)
                 pull_request_user, remaining = self._comments_pull(
                     pull_request, pull_request_user, index, remaining)
             except GithubException:
                 request_exception = True
             except exceptions.RequestException:
                 request_exception = True
             except ConnectionError:
                 request_exception = True
             except IndexError:
                 num = num + 1
                 request_exception = True
             finally:
                 if pull_request_user is not None and request_exception is False:
                     num = num + 1
                     pull_request_user.write_pull_request(
                         name_file_pull_request,
                         name_file_comment_pull_request)
                 if (num - num_tot) == -1:
                     raise ExitException
                 Log.control_write_log(name_file_log, num)
     except ExitException:
         pass