aboutsummaryrefslogtreecommitdiffstats
path: root/pygithub3/github.py
blob: 50b5a1ad2e1787e6c01b7dd0eeb6121ab37f33c8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env python
# -*- encoding: utf-8 -*-


#TODO: Move the imports out. setup related
class Github(object):
    """
    You can preconfigure all services globally with a ``config`` dict. See
    :attr:`~pygithub3.services.base.Service`

    Example::

        gh = Github(user='kennethreitz', token='ABC...', repo='requests')
    """

    def __init__(self, **config):
        from pygithub3.services.users import User
        from pygithub3.services.repos import Repo
        from pygithub3.services.gists import Gist
        from pygithub3.services.git_data import GitData
        from pygithub3.services.pull_requests import PullRequests
        from pygithub3.services.orgs import Org
        from pygithub3.services.issues import Issue
        self._users = User(**config)
        self._repos = Repo(**config)
        self._gists = Gist(**config)
        self._git_data = GitData(**config)
        self._pull_requests = PullRequests(**config)
        self._orgs = Org(**config)
        self._issues = Issue(**config)

    @property
    def remaining_requests(self):
        """ Limit of Github API v3 """
        from pygithub3.core.client import Client
        return Client.remaining_requests

    @property
    def users(self):
        """
        :ref:`Users service <Users service>`
        """
        return self._users

    @property
    def repos(self):
        """
        :ref:`Repos service <Repos service>`
        """
        return self._repos

    @property
    def gists(self):
        """
        :ref:`Gists service <Gists service>`
        """
        return self._gists

    @property
    def git_data(self):
        """
        :ref:`Git Data service <Git Data service>`
        """
        return self._git_data

    @property
    def pull_requests(self):
        """
        :ref:`Pull Requests service <Pull Requests service>`
        """
        return self._pull_requests

    @property
    def orgs(self):
        """
        :ref:`Orgs service <Orgs service>`
        """
        return self._orgs

    @property
    def issues(self):
        """
        :ref:`Issues service <Issues service>`
        """
        return self._issues