I find using Issues for discussions works (mostly) well. You may need to initially encourage students to use issues for discussion, and perhaps post of a few issues yourself. Using labels (e.g.,
grading, etc...) can also help. Also, your and the TA's response time will affect how students use the issues - we saw a case where the instructor wouldn't reply quickly (beyond a week) to questions posted through issues, so the students stopped posting on issues and Pull-requests in that course.
There are some things to consider. First would be whether the course repo is public or private (as part of a GitHub organization for the class). This may affect the students' activities (some students may be more active, while some may be more cautious as they worry about future employers ask them to see their GitHub profile).
Furthermore, note that Issues are typically used in an asynchronous manner (similar to forums and email), where something like "Gitter" is used for a synchronous type of communication (similar to Google hangouts or Slack). This difference may dictate the communication type - choose based on the communication you want to support.
Also, in one case where we examined the students' perspective of using GitHub in the classroom, some students found themselves struggling with communication overload (related to Issues). One student said:
“It sent me a million emails, both of [the tools used in the course] actually. I should have just turned that off, but I was worried about missing something. Because every time someone would post, you would get another email... I actually did not read anyone else’s feedback because it was just so many emails, to be totally honest.”
A good way to deal with this challenge could be to explain that there are different ways of being subscribed to GitHub issues, and that each student can control and change the notification delivery method.
Hope it helps,