Mercurial > repos > bcclaywell > argo_navis
comparison venv/lib/python2.7/site-packages/github/Commit.py @ 0:d67268158946 draft
planemo upload commit a3f181f5f126803c654b3a66dd4e83a48f7e203b
author | bcclaywell |
---|---|
date | Mon, 12 Oct 2015 17:43:33 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:d67268158946 |
---|---|
1 # -*- coding: utf-8 -*- | |
2 | |
3 # ########################## Copyrights and license ############################ | |
4 # # | |
5 # Copyright 2012 Vincent Jacques <vincent@vincent-jacques.net> # | |
6 # Copyright 2012 Zearin <zearin@gonk.net> # | |
7 # Copyright 2013 AKFish <akfish@gmail.com> # | |
8 # Copyright 2013 Vincent Jacques <vincent@vincent-jacques.net> # | |
9 # Copyright 2013 martinqt <m.ki2@laposte.net> # | |
10 # # | |
11 # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # | |
12 # # | |
13 # PyGithub is free software: you can redistribute it and/or modify it under # | |
14 # the terms of the GNU Lesser General Public License as published by the Free # | |
15 # Software Foundation, either version 3 of the License, or (at your option) # | |
16 # any later version. # | |
17 # # | |
18 # PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # | |
19 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # | |
20 # FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # | |
21 # details. # | |
22 # # | |
23 # You should have received a copy of the GNU Lesser General Public License # | |
24 # along with PyGithub. If not, see <http://www.gnu.org/licenses/>. # | |
25 # # | |
26 # ############################################################################## | |
27 | |
28 import github.GithubObject | |
29 import github.PaginatedList | |
30 | |
31 import github.GitCommit | |
32 import github.NamedUser | |
33 import github.CommitStatus | |
34 import github.File | |
35 import github.CommitStats | |
36 import github.CommitComment | |
37 | |
38 | |
39 class Commit(github.GithubObject.CompletableGithubObject): | |
40 """ | |
41 This class represents Commits. The reference can be found here http://developer.github.com/v3/git/commits/ | |
42 """ | |
43 | |
44 @property | |
45 def author(self): | |
46 """ | |
47 :type: :class:`github.NamedUser.NamedUser` | |
48 """ | |
49 self._completeIfNotSet(self._author) | |
50 return self._author.value | |
51 | |
52 @property | |
53 def comments_url(self): | |
54 """ | |
55 :type: string | |
56 """ | |
57 self._completeIfNotSet(self._comments_url) | |
58 return self._comments_url.value | |
59 | |
60 @property | |
61 def commit(self): | |
62 """ | |
63 :type: :class:`github.GitCommit.GitCommit` | |
64 """ | |
65 self._completeIfNotSet(self._commit) | |
66 return self._commit.value | |
67 | |
68 @property | |
69 def committer(self): | |
70 """ | |
71 :type: :class:`github.NamedUser.NamedUser` | |
72 """ | |
73 self._completeIfNotSet(self._committer) | |
74 return self._committer.value | |
75 | |
76 @property | |
77 def files(self): | |
78 """ | |
79 :type: list of :class:`github.File.File` | |
80 """ | |
81 self._completeIfNotSet(self._files) | |
82 return self._files.value | |
83 | |
84 @property | |
85 def html_url(self): | |
86 """ | |
87 :type: string | |
88 """ | |
89 self._completeIfNotSet(self._html_url) | |
90 return self._html_url.value | |
91 | |
92 @property | |
93 def parents(self): | |
94 """ | |
95 :type: list of :class:`github.Commit.Commit` | |
96 """ | |
97 self._completeIfNotSet(self._parents) | |
98 return self._parents.value | |
99 | |
100 @property | |
101 def sha(self): | |
102 """ | |
103 :type: string | |
104 """ | |
105 self._completeIfNotSet(self._sha) | |
106 return self._sha.value | |
107 | |
108 @property | |
109 def stats(self): | |
110 """ | |
111 :type: :class:`github.CommitStats.CommitStats` | |
112 """ | |
113 self._completeIfNotSet(self._stats) | |
114 return self._stats.value | |
115 | |
116 @property | |
117 def url(self): | |
118 """ | |
119 :type: string | |
120 """ | |
121 self._completeIfNotSet(self._url) | |
122 return self._url.value | |
123 | |
124 def create_comment(self, body, line=github.GithubObject.NotSet, path=github.GithubObject.NotSet, position=github.GithubObject.NotSet): | |
125 """ | |
126 :calls: `POST /repos/:owner/:repo/commits/:sha/comments <http://developer.github.com/v3/repos/comments>`_ | |
127 :param body: string | |
128 :param line: integer | |
129 :param path: string | |
130 :param position: integer | |
131 :rtype: :class:`github.CommitComment.CommitComment` | |
132 """ | |
133 assert isinstance(body, (str, unicode)), body | |
134 assert line is github.GithubObject.NotSet or isinstance(line, (int, long)), line | |
135 assert path is github.GithubObject.NotSet or isinstance(path, (str, unicode)), path | |
136 assert position is github.GithubObject.NotSet or isinstance(position, (int, long)), position | |
137 post_parameters = { | |
138 "body": body, | |
139 } | |
140 if line is not github.GithubObject.NotSet: | |
141 post_parameters["line"] = line | |
142 if path is not github.GithubObject.NotSet: | |
143 post_parameters["path"] = path | |
144 if position is not github.GithubObject.NotSet: | |
145 post_parameters["position"] = position | |
146 headers, data = self._requester.requestJsonAndCheck( | |
147 "POST", | |
148 self.url + "/comments", | |
149 input=post_parameters | |
150 ) | |
151 return github.CommitComment.CommitComment(self._requester, headers, data, completed=True) | |
152 | |
153 def create_status(self, state, target_url=github.GithubObject.NotSet, description=github.GithubObject.NotSet): | |
154 """ | |
155 :calls: `POST /repos/:owner/:repo/statuses/:sha <http://developer.github.com/v3/repos/statuses>`_ | |
156 :param state: string | |
157 :param target_url: string | |
158 :param description: string | |
159 :rtype: :class:`github.CommitStatus.CommitStatus` | |
160 """ | |
161 assert isinstance(state, (str, unicode)), state | |
162 assert target_url is github.GithubObject.NotSet or isinstance(target_url, (str, unicode)), target_url | |
163 assert description is github.GithubObject.NotSet or isinstance(description, (str, unicode)), description | |
164 post_parameters = { | |
165 "state": state, | |
166 } | |
167 if target_url is not github.GithubObject.NotSet: | |
168 post_parameters["target_url"] = target_url | |
169 if description is not github.GithubObject.NotSet: | |
170 post_parameters["description"] = description | |
171 headers, data = self._requester.requestJsonAndCheck( | |
172 "POST", | |
173 self._parentUrl(self._parentUrl(self.url)) + "/statuses/" + self.sha, | |
174 input=post_parameters | |
175 ) | |
176 return github.CommitStatus.CommitStatus(self._requester, headers, data, completed=True) | |
177 | |
178 def get_comments(self): | |
179 """ | |
180 :calls: `GET /repos/:owner/:repo/commits/:sha/comments <http://developer.github.com/v3/repos/comments>`_ | |
181 :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CommitComment.CommitComment` | |
182 """ | |
183 return github.PaginatedList.PaginatedList( | |
184 github.CommitComment.CommitComment, | |
185 self._requester, | |
186 self.url + "/comments", | |
187 None | |
188 ) | |
189 | |
190 def get_statuses(self): | |
191 """ | |
192 :calls: `GET /repos/:owner/:repo/statuses/:ref <http://developer.github.com/v3/repos/statuses>`_ | |
193 :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.CommitStatus.CommitStatus` | |
194 """ | |
195 return github.PaginatedList.PaginatedList( | |
196 github.CommitStatus.CommitStatus, | |
197 self._requester, | |
198 self._parentUrl(self._parentUrl(self.url)) + "/statuses/" + self.sha, | |
199 None | |
200 ) | |
201 | |
202 @property | |
203 def _identity(self): | |
204 return self.sha | |
205 | |
206 def _initAttributes(self): | |
207 self._author = github.GithubObject.NotSet | |
208 self._comments_url = github.GithubObject.NotSet | |
209 self._commit = github.GithubObject.NotSet | |
210 self._committer = github.GithubObject.NotSet | |
211 self._files = github.GithubObject.NotSet | |
212 self._html_url = github.GithubObject.NotSet | |
213 self._parents = github.GithubObject.NotSet | |
214 self._sha = github.GithubObject.NotSet | |
215 self._stats = github.GithubObject.NotSet | |
216 self._url = github.GithubObject.NotSet | |
217 | |
218 def _useAttributes(self, attributes): | |
219 if "author" in attributes: # pragma no branch | |
220 self._author = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["author"]) | |
221 if "comments_url" in attributes: # pragma no branch | |
222 self._comments_url = self._makeStringAttribute(attributes["comments_url"]) | |
223 if "commit" in attributes: # pragma no branch | |
224 self._commit = self._makeClassAttribute(github.GitCommit.GitCommit, attributes["commit"]) | |
225 if "committer" in attributes: # pragma no branch | |
226 self._committer = self._makeClassAttribute(github.NamedUser.NamedUser, attributes["committer"]) | |
227 if "files" in attributes: # pragma no branch | |
228 self._files = self._makeListOfClassesAttribute(github.File.File, attributes["files"]) | |
229 if "html_url" in attributes: # pragma no branch | |
230 self._html_url = self._makeStringAttribute(attributes["html_url"]) | |
231 if "parents" in attributes: # pragma no branch | |
232 self._parents = self._makeListOfClassesAttribute(Commit, attributes["parents"]) | |
233 if "sha" in attributes: # pragma no branch | |
234 self._sha = self._makeStringAttribute(attributes["sha"]) | |
235 if "stats" in attributes: # pragma no branch | |
236 self._stats = self._makeClassAttribute(github.CommitStats.CommitStats, attributes["stats"]) | |
237 if "url" in attributes: # pragma no branch | |
238 self._url = self._makeStringAttribute(attributes["url"]) |