# Path: flask_github/client/messages.py
# class Repo(msgs.Message):
#   id = msgs.IntegerField(1, default=0)
#   name = msgs.StringField(2)
#   full_name = msgs.StringField(3)
#   description = msgs.StringField(4)
#   owner = msgs.MessageField('User', 5)
#   created_at = msgs.StringField(6)
#   pushed_at = msgs.StringField(7)
#   updated_at = msgs.StringField(8)
#   has_wiki = msgs.BooleanField(9, default=False)
#   has_issues = msgs.BooleanField(10, default=False)
#   has_downloads = msgs.BooleanField(11, default=False)
#   private = msgs.BooleanField(12, default=False)
#   size = msgs.IntegerField(13, default=0)
#   forks = msgs.IntegerField(14, default=0)
#   forks_count = msgs.IntegerField(15, default=0)
#   watchers = msgs.IntegerField(16, default=0)
#   watchers_count = msgs.IntegerField(17, default=0)
#   open_issues_count = msgs.IntegerField(18, default=0)
#   open_issues = msgs.IntegerField(19, default=0)
#   language = msgs.StringField(20)
#   fork = msgs.BooleanField(21, default=False)
#   permissions = msgs.MessageField('RepoPermission', 22, repeated=True)
#   url = msgs.StringField(23)
#   git_url = msgs.StringField(24)
#   svn_url = msgs.StringField(25)
#   ssh_url = msgs.StringField(26)
#   html_url = msgs.StringField(27)
#   clone_url = msgs.StringField(28)
#   mirror_url = msgs.StringField(29)
#   homepage = msgs.StringField(30)
#   ref = msgs.StringField(31)
#   master_branch = msgs.StringField(32)
# 
# Path: flask_github/client/requests.py
# class RepoResponse(msgs.Message):
#   response = msgs.MessageField('Repo', 1)
# 
# Path: flask_github/client/requests.py
# class RepoListResponse(msgs.Message):
#   response = msgs.MessageField('Repo', 1, repeated=True)
# 
# Path: flask_github/client/requests.py
# class TagListResponse(msgs.Message):
#   response = msgs.MessageField('Tag', 1, repeated=True)
# 
# Path: flask_github/client/requests.py
# class UserListResponse(msgs.Message):
#   response = msgs.MessageField('User', 1, repeated=True)
# 
# Path: flask_github/client/requests.py
# class TeamListResponse(msgs.Message):
#   response = msgs.MessageField('Team', 1, repeated=True)


from reposkeys import ReposKeys
from reposhooks import ReposHooks
from reposforks import ReposForks
from reposcommits import ReposCommits
from reposwatching import ReposWatching
from reposstarring import ReposStarring
from reposdownloads import ReposDownloads
from reposcollaborators import ReposCollaborators
from ..messages import Repo
from ..requests import RepoResponse
from ..requests import RepoListResponse
from ..requests import TagListResponse
from ..requests import UserListResponse
from ..requests import TeamListResponse

      has_downloads=has_downloads,
      description=description,
      homepage=homepage)
    return self._edit(repo=repo, msg=msg, user=user)

  def _edit(self, repo, msg, user=None):
    return self.client.patch(
      'repos/%s/%s' % (
        self.client.user(user), repo), data=msg)

  def list_contributors(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/contributors' % (
        self.client.user(user), repo), msg_type=UserListResponse)

  def list_tags(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/tags' % (
        self.client.user(user), repo), msg_type=TagListResponse)

  def list_langs(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/languages' % (
        self.client.user(user), repo))

  def list_teams(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/teams' % (
        self.client.user(user), repo), msg_type=TeamListResponse)


# Path: flask_github/client/messages.py
# class Repo(msgs.Message):
#   id = msgs.IntegerField(1, default=0)
#   name = msgs.StringField(2)
#   full_name = msgs.StringField(3)
#   description = msgs.StringField(4)
#   owner = msgs.MessageField('User', 5)
#   created_at = msgs.StringField(6)
#   pushed_at = msgs.StringField(7)
#   updated_at = msgs.StringField(8)
#   has_wiki = msgs.BooleanField(9, default=False)
#   has_issues = msgs.BooleanField(10, default=False)
#   has_downloads = msgs.BooleanField(11, default=False)
#   private = msgs.BooleanField(12, default=False)
#   size = msgs.IntegerField(13, default=0)
#   forks = msgs.IntegerField(14, default=0)
#   forks_count = msgs.IntegerField(15, default=0)
#   watchers = msgs.IntegerField(16, default=0)
#   watchers_count = msgs.IntegerField(17, default=0)
#   open_issues_count = msgs.IntegerField(18, default=0)
#   open_issues = msgs.IntegerField(19, default=0)
#   language = msgs.StringField(20)
#   fork = msgs.BooleanField(21, default=False)
#   permissions = msgs.MessageField('RepoPermission', 22, repeated=True)
#   url = msgs.StringField(23)
#   git_url = msgs.StringField(24)
#   svn_url = msgs.StringField(25)
#   ssh_url = msgs.StringField(26)
#   html_url = msgs.StringField(27)
#   clone_url = msgs.StringField(28)
#   mirror_url = msgs.StringField(29)
#   homepage = msgs.StringField(30)
#   ref = msgs.StringField(31)
#   master_branch = msgs.StringField(32)
# 
# Path: flask_github/client/requests.py
# class RepoResponse(msgs.Message):
#   response = msgs.MessageField('Repo', 1)
# 
# Path: flask_github/client/requests.py
# class RepoListResponse(msgs.Message):
#   response = msgs.MessageField('Repo', 1, repeated=True)
# 
# Path: flask_github/client/requests.py
# class TagListResponse(msgs.Message):
#   response = msgs.MessageField('Tag', 1, repeated=True)
# 
# Path: flask_github/client/requests.py
# class UserListResponse(msgs.Message):
#   response = msgs.MessageField('User', 1, repeated=True)
# 
# Path: flask_github/client/requests.py
# class TeamListResponse(msgs.Message):
#   response = msgs.MessageField('Team', 1, repeated=True)


# Path: flask_github/client/repos/repos.py
from reposkeys import ReposKeys
from reposhooks import ReposHooks
from reposforks import ReposForks
from reposcommits import ReposCommits
from reposwatching import ReposWatching
from reposstarring import ReposStarring
from reposdownloads import ReposDownloads
from reposcollaborators import ReposCollaborators
from ..messages import Repo
from ..requests import RepoResponse
from ..requests import RepoListResponse
from ..requests import TagListResponse
from ..requests import UserListResponse
from ..requests import TeamListResponse

      has_downloads=has_downloads,
      description=description,
      homepage=homepage)
    return self._edit(repo=repo, msg=msg, user=user)

  def _edit(self, repo, msg, user=None):
    return self.client.patch(
      'repos/%s/%s' % (
        self.client.user(user), repo), data=msg)

  def list_contributors(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/contributors' % (
        self.client.user(user), repo), msg_type=UserListResponse)

  def list_tags(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/tags' % (
        self.client.user(user), repo), msg_type=TagListResponse)

  def list_langs(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/languages' % (
        self.client.user(user), repo))

  def list_teams(self, repo, user=None):
    return self.client.get(
      'repos/%s/%s/teams' % (
        self.client.user(user), repo), msg_type=TeamListResponse)


  def list_branches(self, repo, user=None):
