Пример #1
0
    def find_my_contributions(cls, account):
        """Find and save the user contributions. A contribution is a merged
        Pull Request opened by the user.
        """
        connection = Github(login_or_token=account.github_token)

        # Set query to find contributions
        qualifiers = {'is': 'merged', 'type': 'pr',
                      'author': account.user.username}

        # Search GH API for projects.
        issues = connection.search_issues(
            query='', sort='updated', order='desc', **qualifiers)

        i = 0
        issues_page = issues.get_page(i)
        while issues_page:
            for issue in issues_page:

                attributes = {'account': account, 'title': issue.title,
                              'url': issue.html_url,
                              'repo': issue.repository.name,
                              'repo_url': issue.repository.html_url,
                              'merged': issue.updated_at}

                if not Contribution.objects.filter(**attributes):
                    contribution = Contribution(**attributes)
                    contribution.save()
            i += 1
            issues_page = issues.get_page(i)