8000 Merge pull request #681 from sigmavirus24/split-up-repository · pythonthings/github3.py@d94a00a · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit d94a00a

Browse files
authored
Merge pull request sigmavirus24#681 from sigmavirus24/split-up-repository
Split up Repository object
2 parents 0657d44 + 2c46fda commit d94a00a

File tree

207 files changed

+1523
-1033
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

207 files changed

+1523
-1033
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ build/
1616
*.egg
1717
.env
1818
.ipynb_checkpoints
19-
.cache/
19+
.cache/
20+
tests/id_rsa

.travis.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,6 @@ env:
1515

1616
matrix:
1717
include:
18-
- python: 2.7
19-
env: TOXENV=py27 REQUESTS_VERSION="===2.0.1"
20-
- python: 3.4
21-
env: TOXENV=py34 REQUESTS_VERSION="===2.0.1"
22-
- python: 3.5
23-
env: TOXENV=py35 REQUESTS_VERSION="===2.0.1"
24-
- python: pypy
25-
env: TOXENV=pypy REQUESTS_VERSION="===2.0.1"
2618
- python: 2.7
2719
env: TOXENV=py27 REQUESTS_VERSION=""
2820
- python: 3.4

github3/github.py

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from .orgs import Membership, ShortOrganization, Organization, Team
2121
from .projects import Project, ProjectCard, ProjectColumn
2222
from .pulls import PullRequest
23-
from .repos.repo import Repository, repo_issue_params
23+
from .repos import repo
2424
from .search import (CodeSearchResult, IssueSearchResult,
2525
RepositorySearchResult, UserSearchResult)
2626
from .structs import SearchIterator
@@ -126,10 +126,10 @@ def all_repositories(self, number=-1, since=None, etag=None,
126126
endpoint
127127
:param int per_page: (optional), number of repositories to list per
128128
request
129-
:returns: generator of :class:`Repository <github3.repos.Repository>`
129+
:returns: generator of :class:`~github3.repos.ShortRepository`
130130
"""
131131
url = self._build_url('repositories')
132-
return self._iter(int(number), url, Repository,
132+
return self._iter(int(number), url, repo.ShortRepository,
133133
params={'since': since, 'per_page': per_page},
134134
etag=etag)
135135

@@ -344,7 +344,7 @@ def create_repository(self, name, description='', homepage='',
344344
'auto_init': auto_init,
345345
'gitignore_template': gitignore_template}
346346
json = self._json(self._post(url, data=data), 201)
347-
return self._instance_or_null(Repository, json)
347+
return self._instance_or_null(repo.Repository, json)
348348

349349
@requires_auth
350350
def delete_email_addresses(self, addresses=[]):
@@ -696,8 +696,10 @@ def issues_on(self, username, repository, milestone=None, state=None,
696696
if username and repository:
697697
url = self._build_url('repos', username, repository, 'issues')
698698

699-
params = repo_issue_params(milestone, state, assignee, mentioned,
700-
labels, sort, direction, since)
699+
params = repo.repo_issue_params(
700+
milestone, state, assignee, mentioned,
701+
labels, sort, direction, since,
702+
)
701703
return self._iter(int(number), url, ShortIssue, params=params,
702704
etag=etag)
703705
return iter([])
@@ -1119,7 +1121,7 @@ def repositories(self, type=None, sort=None, direction=None, number=-1,
11191121
Default: -1 returns all repositories
11201122
:param str etag: (optional), ETag from a previous request to the same
11211123
endpoint
1122-
:returns: generator of :class:`Repository <github3.repos.Repository>`
1124+
:returns: generator of :class:`~github3.repos.ShortRepository`
11231125
objects
11241126
"""
11251127
url = self._build_url('user', 'repos')
@@ -1132,7 +1134,8 @@ def repositories(self, type=None, sort=None, direction=None, number=-1,
11321134
if direction in ('asc', 'desc'):
11331135
params.update(direction=direction)
11341136

1135-
return self._iter(int(number), url, Repository, params, etag)
1137+
return self._iter(int(number), url, repo.ShortRepository, params,
1138+
etag)
11361139

11371140
def repositories_by(self, username, type=None, sort=None, direction=None,
11381141
number=-1, etag=None):
@@ -1154,7 +1157,7 @@ def repositories_by(self, username, type=None, sort=None, direction=None,
11541157
Default: -1 returns all repositories
11551158
:param str etag: (optional), ETag from a previous request to the same
11561159
endpoint
1157-
:returns: generator of :class:`Repository <github3.repos.Repository>`
1160+
:returns: generator of :class:`~github3.repos.ShortRepository`
11581161
objects
11591162
"""
11601163
url = self._build_url('users', username, 'repos')
@@ -1167,7 +1170,8 @@ def repositories_by(self, username, type=None, sort=None, direction=None,
11671170
if direction in ('asc', 'desc'):
11681171
params.update(direction=direction)
11691172

1170-
return self._iter(int(number), url, Repository, params, etag)
1173+
return self._iter(int(number), url, repo.ShortRepository, params,
1174+
etag)
11711175

11721176
def repository(self, owner, repository):
11731177
"""Returns a Repository object for the specified combination of
@@ -1182,7 +1186,7 @@ def repository(self, owner, repository):
11821186
url = self._build_url('repos', owner, repository)
11831187
json = self._json(self._get(url, headers=License.CUSTOM_HEADERS),
11841188
200)
1185-
return self._instance_or_null(Repository, json)
1189+
return self._instance_or_null(repo.Repository, json)
11861190

11871191
def repository_with_id(self, number):
11881192
"""Returns the Repository with id ``number``.
@@ -1195,7 +1199,7 @@ def repository_with_id(self, number):
11951199
if number > 0:
11961200
url = self._build_url('repositories', str(number))
11971201
json = self._json(self._get(url), 200)
1198-
return self._instance_or_null(Repository, json)
1202+
return self._instance_or_null(repo.Repository, json)
11991203

12001204
@requires_app_credentials
12011205
def revoke_authorization(self, access_token):
@@ -1524,12 +1528,13 @@ def starred(self, sort=None, direction=None, number=-1, etag=None):
15241528
Default: -1 returns all repositories
15251529
:param str etag: (optional), ETag from a previous request to the same
15261530
endpoint
1527-
:returns: generator of :class:`Repository <github3.repos.Repository>`
1531+
:returns: generator of :class:`~github3.repos.ShortRepository>`
15281532
"""
15291533
params = {'sort': sort, 'direction': direction}
15301534
self._remove_none(params)
15311535
url = self._build_url('user', 'starred')
1532-
return self._iter(int(number), url, Repository, params, etag)
1536+
return self._iter(int(number), url, repo.ShortRepository, params,
1537+
etag)
15331538

15341539
def starred_by(self, username, sort=None, direction=None, number=-1,
15351540
etag=None):
@@ -1549,12 +1554,13 @@ def starred_by(self, username, sort=None, direction=None, number=-1,
15491554
Default: -1 returns all repositories
15501555
:param str etag: (optional), ETag from a previous request to the same
15511556
endpoint
1552-
:returns: generator of :class:`Repository <github3.repos.Repository>`
1557+
:returns: generator of :class:`~github3.repos.ShortRepository`
15531558
"""
15541559
params = {'sort': sort, 'direction': direction}
15551560
self._remove_none(params)
15561561
url = self._build_url('users', str(username), 'starred')
1557-
return self._iter(int(number), url, Repository, params, etag)
1562+
return self._iter(int(number), url, repo.ShortRepository, params,
1563+
etag)
15581564

15591565
@requires_auth
15601566
def subscriptions(self, number=-1, etag=None):
@@ -1564,10 +1570,10 @@ def subscriptions(self, number=-1, etag=None):
15641570
Default: -1 returns all repositories
15651571
:param str etag: (optional), ETag from a previous request to the same
15661572
endpoint
1567-
:returns: generator of :class:`Repository <github3.repos.Repository>`
1573+
:returns: generator of :class:`~github3.repos.ShortRepository`
15681574
"""
15691575
url = self._build_url('user', 'subscriptions')
1570-
return self._iter(int(number), url, Repository, etag=etag)
1576+
return self._iter(int(number), url, repo.ShortRepository, etag=etag)
15711577

15721578
def subscriptions_for(self, username, number=-1, etag=None):
15731579
"""Iterate over repositories subscribed to by ``username``.
@@ -1578,10 +1584,10 @@ def subscriptions_for(self, username, number=-1, etag=None):
15781584
Default: -1 returns all repositories
15791585
:param str etag: (optional), ETag from a previous request to the same
15801586
endpoint
1581-
:returns: generator of :class:`Repository <github3.repos.Repository>`
1587+
:returns: generator of :class:`~github3.repos.ShortRepository`
15821588
"""
15831589
url = self._build_url('users', str(username), 'subscriptions')
1584-
return self._iter(int(number), url, Repository, etag=etag)
1590+
return self._iter(int(number), url, repo.ShortRepository, etag=etag)
15851591

< 10000 code>15861592
@requires_auth
15871593
def unfollow(self, username):

github3/notifications.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ def _update_attributes(self, notif):
4040
#: Thread information
4141
self.thread = self._get_attribute(notif, 'thread', {})
4242

43-
from .repos import Repository
43+
from . import repos
4444
#: Repository the comment was made on
4545
self.repository = self._class_attribute(
46-
notif, 'repository', Repository, self
46+
notif, 'repository', repos.ShortRepository, self
4747
)
4848

4949
#: When the thread was last updated

github3/pulls.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class PullDestination(models.GitHubCore):
2626

2727
def __init__(self, dest, direction):
2828
super(PullDestination, self).__init__(dest)
29-
from .repos.repo import Repository
29+
from .repos.repo import ShortRepository
3030
#: Direction of the merge with respect to this destination
3131
self.direction = direction
3232
#: Full reference string of the object
@@ -44,7 +44,7 @@ def __init__(self, dest, direction):
4444
if dest.get('repo'):
4545
self._repo_name = dest['repo'].get('name')
4646
self._repo_owner = dest['repo']['owner'].get('login')
47-
self.repository = Repository(dest.get('repo'), self)
47+
self.repository = ShortRepository(dest.get('repo'), self)
4848
self.repo = (self._repo_owner, self._repo_name)
4949

5050
def _repr(self):
@@ -367,15 +367,26 @@ def reviews(self, number=-1, etag=None):
367367
return self._iter(int(number), url, PullReview, etag=etag)
368368

369369
@requires_auth
370-
def update(self, title=None, body=None, state=None):
370+
def update(self, title=None, body=None, state=None, base=None,
371+
maintainer_can_modify=None):
371372
"""Update this pull request.
372373
373374
:param str title: (optional), title of the pull
374375
:param str body: (optional), body of the pull request
375376
:param str state: (optional), ('open', 'closed')
377+
:param str base: (optional), Name of the branch on the current
378+
repository that the changes should be pulled into.
379+
:param bool maintainer_can_modify: (optional), Indicates whether
380+
a maintainer is allowed to modify the pull request or not.
376381
:returns: bool
377382
"""
378-
data = {'title': title, 'body': body, 'state': state}
383+
data = {
384+
'title': title,
385+
'body': body,
386+
'state': state,
387+
'base': base,
388+
'maintainer_can_modify': maintainer_can_modify,
389+
}
379390
json = None
380391
self._remove_none(data)
381392

@@ -552,7 +563,7 @@ def reply(self, body):
552563
"""
553564
url = self._build_url('comments', base_url=self.pull_request_url)
554565
index = self._api.rfind('/') + 1
555-
in_reply_to = self._api[index:]
566+
in_reply_to = int(self._api[index:])
556567
json = self._json(self._post(url, data={
557568
'body': body, 'in_reply_to': in_reply_to
558569
}), 201)

github3/repos/__init__.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
"""
99

1010
from .repo import Repository
11+
from .repo import ShortRepository
1112
from .repo import StarredRepository
1213

13-
__all__ = ('Repository', 'StarredRepository')
14+
__all__ = (
15+
'Repository',
16+
'ShortRepository',
17+
'StarredRepository',
18+
)

0 commit comments

Comments
 (0)
0