Pygithub: No Comments returned for PullRequest

Created on 21 Aug 2012  ·  7Comments  ·  Source: PyGithub/PyGithub

Hello, here is the problem.
No Comments returned. But comments count showing proper value.

p = z.pulls[1]
p
OUTPUT:
OUTPUT: u'\u041d\u0435 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c =)'
p.comments
OUTPUT: 1
p.get_comments()
OUTPUT:
list(p.get_comments())
OUTPUT: []

Any ideas ?

bug feature request

All 7 comments

Hello!

I confirm that the following code exhibits the same issue:

import github

g = github.Github()
r = g.get_user( "jacquev6" ).get_repo( "PyGithub" )
p = r.get_pull( 57 )
print p.title, "has", p.comments, "comments"
print [ c.body[ :15 ] for c in p.get_comments() ]

It prints:

Allows connection to GitHub Enterprise installs on local URLs has 2 comments
[]

This last line calls API https://api.github.com/repos/jacquev6/PyGithub/pulls/57/comments, as documented in http://developer.github.com/v3/pulls/comments/#list-comments-on-a-pull-request, but the API returns an empty list. I've just managed to get the comments by calling https://api.github.com/repos/jacquev6/PyGithub/issues/57/comments instead. The issue must be on Github's side.

As a temporary work-around, you can use the following code to do as if the pull request is an issue, and call the other API:

print [ c.body[ :15 ] for c in r.get_issue( p.number ).get_comments() ]

Right now, I have not enough time to take care of this problem, but if it's still here at the beginning of September, I will contact Github and/or patch PyGithub.

Enjoy,

To enhance the workaround a bit, you can do this to determine if an issue is a PR or not (because all PRs are issues, too):

        if myIssue.pull_request.diff_url:
            PR=True
        else:
            PR=False

Thank you! Will use this as a workaround.

I've just contacted Github for this issue.

And here is the reply I received from Github:

From: Wynn Netherland
Subject: API v3, list comments on pull requests

Hi, Vincent. I know it's confusing but we actually have three types of comments on GitHub, so there are
three different spots in the API to grab them. Be sure you're looking in the right spot for the data you expect.

Pull Request comments are the top-level comments found on the Pull Request page. These are retrieved via
the Issues API [1] since PRs are essentially specialized Issues. Pull Request review comments are those made
against the diff on the PR. You can grab these with the Review Comments API [2]. Finally, line comments made
outside the context of a PR on a raw commit can be retrieved via the Commit Comments API [3].

Armed with that info, let me know if you're not seeing the data you expect and the API call you're making, and I
can dig a bit deeper.

[1] http://developer.github.com/v3/issues/comments/
[2] http://developer.github.com/v3/pulls/comments/
[3] http://developer.github.com/v3/repos/comments/

Cheers,

So, this is coherent with what we can see here: https://github.com/jacquev6/PyGithub/pull/57, as PullRequest.get_comments uses the Pull Requests API. @nixoz2k7 Is it coherent with your original issue as well?

Anyway, this is misleading, so I will add two methods named get_issue_comments (using the Issues API) and get_review_comments (synonym for get_comments, using the Pull Requests API). Expect this for the middle of next week.

I've just pushed the new methods on https://github.com/jacquev6/PyGithub/tree/develop. I close the issue because I feel it's solved. @nixoz2k7, do not hesitate to re-open it if you still have a problem with what has been said.

Thank you so much ;)
btw, it works great with "issues" workaround. stable for 2 weeks already.

Thank you again.
Sergey.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

JosephTLyons picture JosephTLyons  ·  43Comments

harlowja picture harlowja  ·  15Comments

sfdye picture sfdye  ·  19Comments

RitamDey picture RitamDey  ·  13Comments

thefunkjunky picture thefunkjunky  ·  11Comments