Beispiel #1
0
def comments_view(request, repo_user, repo_name):
    sa = request.user.social_auth.get()
    gh = GitHub(sa.tokens)
    repo = gh.repo(repo_user, repo_name)
    users = {}
    try:
        comments = repo.commits().comments().get(per_page=100)
    except HTTPError:
        return HttpResponse(json.dumps(users),
                            content_type="application/json")
    for comment in comments:
        user = comment['user']['login']
        meta = comment['user']
        if user not in users:
            users[user] = {
                'pos': 0,
                'neg': 0,
                'meta': meta,
            }
        text = comment['body']
        blob = TextBlob(text)
        polarity, subjectivity = blob.sentiment
        if polarity >= 0.1:
            users[user]['pos'] += 1
        else:
            users[user]['neg'] += 1
    return HttpResponse(json.dumps(users),
                        content_type="application/json")
Beispiel #2
0
def repo_view(request, repo_user, repo_name):
    sa = request.user.social_auth.get()
    gh = GitHub(sa.tokens)
    repo = gh.repo(repo_user, repo_name).get()
    return render(request, 'hatersgonnagit/repo.html', {
        'repo': repo,
    })
Beispiel #3
0
def commits_view(request, repo_user, repo_name):
    sa = request.user.social_auth.get()
    gh = GitHub(sa.tokens)
    repo = gh.repo(repo_user, repo_name)
    committers = {}
    try:
        commits = repo.commits().get(per_page=100)
    except HTTPError:
        return HttpResponse(json.dumps(committers),
                            content_type="application/json")
    for commit in commits:
        committer = commit['commit']['committer']['name']
        try:
            committer = commit['author']['login']
            meta = commit['author']
        except TypeError:
            # Sometimes 'author' and 'committer' fields are null
            meta = None
        if committer not in committers:
            committers[committer] = {
                'pos': 0,
                'neg': 0,
                'meta': meta,
            }
        message = commit['commit']['message']
        # We use pattern because NLTK NaiveBayesAnalyzer is too slow
        blob = TextBlob(message)
        polarity, subjectivity = blob.sentiment
        if polarity >= 0.1:
            committers[committer]['pos'] += 1
        else:
            committers[committer]['neg'] += 1
    return HttpResponse(json.dumps(committers),
                        content_type="application/json")
def github(request):
    try:
        sa = request.user.social_auth.get()
        gh = GitHub(sa.tokens)
        repos = gh.repos().get(type="all")
        user = gh.user().get()
    except:
        user = {}
        repos = []
    sorted_repos = sorted(repos, key=lambda repo: -repo["watchers"])
    return {"gh_user": user, "gh_repos": sorted_repos}