Skip to content

Commit aea8d9d

Browse files
guyzmoethantkoenig
authored andcommitted
Adds parent property of repo endpoint (#12)
* Adds parent_id property of repo endpoint Signed-off-by: Guyzmo <[email protected]> * Adds parent_id property of repo endpoint Signed-off-by: Guyzmo <[email protected]> * Adds parent_id property of repo endpoint Signed-off-by: Guyzmo <[email protected]> * Adds parent property of repo endpoint Signed-off-by: Guyzmo <[email protected]>
1 parent e56c6bc commit aea8d9d

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

gogs_client/entities.py

+16-3
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,15 @@ class GogsRepo(GogsEntity):
9595
An immutable representation of a Gogs repository
9696
"""
9797

98-
def __init__(self, repo_id, owner, full_name, private, fork, default_branch,
98+
def __init__(self, repo_id, owner, full_name, private, fork, parent, default_branch,
9999
empty, size, urls, permissions, json={}):
100100
super(GogsRepo, self).__init__(json=json)
101101
self._repo_id = repo_id
102102
self._owner = owner
103103
self._full_name = full_name
104104
self._private = private
105105
self._fork = fork
106+
self._parent = parent
106107
self._default_branch = default_branch
107108
self._empty = empty
108109
self._size = size
@@ -116,15 +117,18 @@ def from_json(parsed_json):
116117
full_name = json_get(parsed_json, "full_name")
117118
private = json_get(parsed_json, "private")
118119
fork = json_get(parsed_json, "fork")
120+
parent = parsed_json.get("parent", None)
121+
if parent:
122+
parent = GogsRepo.from_json(parent)
119123
default_branch = json_get(parsed_json, "default_branch")
120124
empty = parsed_json.get("empty", None)
121125
size = parsed_json.get("size", None)
122126
urls = GogsRepo.Urls(json_get(parsed_json, "html_url"), json_get(parsed_json, "clone_url"),
123127
json_get(parsed_json, "ssh_url"))
124128
permissions = GogsRepo.Permissions.from_json(json_get(parsed_json, "permissions"))
125129
return GogsRepo(repo_id=repo_id, owner=owner, full_name=full_name, private=private, fork=fork,
126-
default_branch=default_branch, empty=empty, size=size, urls=urls,
127-
permissions=permissions, json=parsed_json)
130+
parent=parent, default_branch=default_branch, empty=empty, size=size,
131+
urls=urls, permissions=permissions, json=parsed_json)
128132

129133
@property # named repo_id to avoid conflict with built-in id
130134
def repo_id(self):
@@ -171,6 +175,15 @@ def fork(self):
171175
"""
172176
return self._fork
173177

178+
@property
179+
def parent(self):
180+
"""
181+
Gets the repository's parent, when a fork
182+
183+
:rtype: GogsRepo
184+
"""
185+
return self._parent
186+
174187
@property
175188
def default_branch(self):
176189
"""

tests/interface_test.py

+4
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def setUp(self):
2626
"full_name": "unknwon/Hello-World",
2727
"private": false,
2828
"fork": false,
29+
"parent": null,
2930
"default_branch": "master",
3031
"empty": false,
3132
"size": 42,
@@ -50,6 +51,7 @@ def setUp(self):
5051
"full_name": "unknwon/Hello-World",
5152
"private": false,
5253
"fork": false,
54+
"parent": null,
5355
"default_branch": "master",
5456
"empty": false,
5557
"size": 42,
@@ -73,6 +75,7 @@ def setUp(self):
7375
"full_name": "unknwon/Hello-World-Again",
7476
"private": false,
7577
"fork": false,
78+
"parent": null,
7679
"default_branch": "master",
7780
"empty": false,
7881
"size": 42,
@@ -587,6 +590,7 @@ def assert_repos_equal(self, repo, expected):
587590
self.assertEqual(repo.full_name, expected.full_name)
588591
self.assertEqual(repo.private, expected.private)
589592
self.assertEqual(repo.fork, expected.fork)
593+
self.assertEqual(repo.parent, expected.parent)
590594
self.assertEqual(repo.default_branch, expected.default_branch)
591595
self.assertEqual(repo.size, expected.size)
592596
self.assertEqual(repo.empty, expected.empty)

0 commit comments

Comments
 (0)