forked from PyGithub/PyGithub
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GitRef.py
75 lines (61 loc) · 2.94 KB
/
GitRef.py
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
# WARNING: this file is generated automaticaly.
# Do not modify it manually, your work would be lost.
# Copyright 2012 Vincent Jacques
# This file is part of PyGithub. https://vincent-jacques.net/PyGithub
# PyGithub is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License
# as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public License along with PyGithub. If not, see <https://www.gnu.org/licenses/>.
import GithubObject
import GitObject
class GitRef( GithubObject.GithubObject ):
@property
def object( self ):
self._completeIfNotSet( self._object )
return self._NoneIfNotSet( self._object )
@property
def ref( self ):
self._completeIfNotSet( self._ref )
return self._NoneIfNotSet( self._ref )
@property
def url( self ):
self._completeIfNotSet( self._url )
return self._NoneIfNotSet( self._url )
def delete( self ):
headers, data = self._requester.requestAndCheck(
"DELETE",
self.url,
None,
None
)
def edit( self, sha, force = GithubObject.NotSet ):
assert isinstance( sha, ( str, unicode ) ), sha
assert force is GithubObject.NotSet or isinstance( force, bool ), force
post_parameters = {
"sha": sha,
}
if force is not GithubObject.NotSet:
post_parameters[ "force" ] = force
headers, data = self._requester.requestAndCheck(
"PATCH",
self.url,
None,
post_parameters
)
self._useAttributes( data )
def _initAttributes( self ):
self._object = GithubObject.NotSet
self._ref = GithubObject.NotSet
self._url = GithubObject.NotSet
def _useAttributes( self, attributes ):
if "object" in attributes: # pragma no branch
assert attributes[ "object" ] is None or isinstance( attributes[ "object" ], dict ), attributes[ "object" ]
self._object = None if attributes[ "object" ] is None else GitObject.GitObject( self._requester, attributes[ "object" ], completed = False )
if "ref" in attributes: # pragma no branch
assert attributes[ "ref" ] is None or isinstance( attributes[ "ref" ], ( str, unicode ) ), attributes[ "ref" ]
self._ref = attributes[ "ref" ]
if "url" in attributes: # pragma no branch
assert attributes[ "url" ] is None or isinstance( attributes[ "url" ], ( str, unicode ) ), attributes[ "url" ]
self._url = attributes[ "url" ]