mirror of
https://github.com/status-im/PyGithub.git
synced 2026-08-31 19:01:15 +00:00
Implement subscriptions (issue #70)
This commit is contained in:
@@ -153,6 +153,15 @@
|
||||
"addElement": true,
|
||||
"removeElement": true
|
||||
},
|
||||
{
|
||||
"name": "subscriptions",
|
||||
"singularName": "subscription",
|
||||
"type": "Repository",
|
||||
"getList": true,
|
||||
"hasElement": true,
|
||||
"addElement": true,
|
||||
"removeElement": true
|
||||
},
|
||||
{
|
||||
"name": "starred",
|
||||
"singularName": "starred",
|
||||
@@ -952,6 +961,12 @@
|
||||
"type": "Repository",
|
||||
"getList": true
|
||||
},
|
||||
{
|
||||
"name": "subscriptions",
|
||||
"singularName": "subscription",
|
||||
"type": "Repository",
|
||||
"getList": true
|
||||
},
|
||||
{
|
||||
"name": "starred",
|
||||
"singularName": "starred",
|
||||
@@ -1768,6 +1783,12 @@
|
||||
"type": "NamedUser",
|
||||
"getList": true
|
||||
},
|
||||
{
|
||||
"name": "subscribers",
|
||||
"singularName": "subscriber",
|
||||
"type": "NamedUser",
|
||||
"getList": true
|
||||
},
|
||||
{
|
||||
"name": "stargazers",
|
||||
"singularName": "stargazer",
|
||||
|
||||
@@ -999,6 +999,154 @@
|
||||
"name": "void"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "subscriptions",
|
||||
"name": [
|
||||
"add",
|
||||
"to",
|
||||
"subscriptions"
|
||||
],
|
||||
"mandatoryParameters": [
|
||||
{
|
||||
"type": {
|
||||
"simple": false,
|
||||
"cardinality": "scalar",
|
||||
"name": "Repository"
|
||||
},
|
||||
"name": "subscription"
|
||||
}
|
||||
],
|
||||
"request": {
|
||||
"url": [
|
||||
{
|
||||
"type": "constant",
|
||||
"value": "/user/subscriptions/"
|
||||
},
|
||||
{
|
||||
"type": "identity",
|
||||
"value": [
|
||||
"subscription"
|
||||
]
|
||||
}
|
||||
],
|
||||
"information": "status",
|
||||
"verb": "PUT"
|
||||
},
|
||||
"isMutation": false,
|
||||
"optionalParameters": [],
|
||||
"type": {
|
||||
"simple": true,
|
||||
"cardinality": "scalar",
|
||||
"name": "void"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "subscriptions",
|
||||
"name": [
|
||||
"get",
|
||||
"subscriptions"
|
||||
],
|
||||
"mandatoryParameters": [],
|
||||
"request": {
|
||||
"url": [
|
||||
{
|
||||
"type": "constant",
|
||||
"value": "/user/subscriptions"
|
||||
}
|
||||
],
|
||||
"information": "data",
|
||||
"verb": "GET"
|
||||
},
|
||||
"isMutation": false,
|
||||
"optionalParameters": [],
|
||||
"type": {
|
||||
"simple": false,
|
||||
"cardinality": "list",
|
||||
"name": "Repository"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "subscriptions",
|
||||
"name": [
|
||||
"has",
|
||||
"in",
|
||||
"subscriptions"
|
||||
],
|
||||
"mandatoryParameters": [
|
||||
{
|
||||
"type": {
|
||||
"simple": false,
|
||||
"cardinality": "scalar",
|
||||
"name": "Repository"
|
||||
},
|
||||
"name": "subscription"
|
||||
}
|
||||
],
|
||||
"request": {
|
||||
"url": [
|
||||
{
|
||||
"type": "constant",
|
||||
"value": "/user/subscriptions/"
|
||||
},
|
||||
{
|
||||
"type": "identity",
|
||||
"value": [
|
||||
"subscription"
|
||||
]
|
||||
}
|
||||
],
|
||||
"information": "status",
|
||||
"verb": "GET"
|
||||
},
|
||||
"isMutation": false,
|
||||
"optionalParameters": [],
|
||||
"type": {
|
||||
"simple": true,
|
||||
"cardinality": "scalar",
|
||||
"name": "bool"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "subscriptions",
|
||||
"name": [
|
||||
"remove",
|
||||
"from",
|
||||
"subscriptions"
|
||||
],
|
||||
"mandatoryParameters": [
|
||||
{
|
||||
"type": {
|
||||
"simple": false,
|
||||
"cardinality": "scalar",
|
||||
"name": "Repository"
|
||||
},
|
||||
"name": "subscription"
|
||||
}
|
||||
],
|
||||
"request": {
|
||||
"url": [
|
||||
{
|
||||
"type": "constant",
|
||||
"value": "/user/subscriptions/"
|
||||
},
|
||||
{
|
||||
"type": "identity",
|
||||
"value": [
|
||||
"subscription"
|
||||
]
|
||||
}
|
||||
],
|
||||
"information": "status",
|
||||
"verb": "DELETE"
|
||||
},
|
||||
"isMutation": false,
|
||||
"optionalParameters": [],
|
||||
"type": {
|
||||
"simple": true,
|
||||
"cardinality": "scalar",
|
||||
"name": "void"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "starred",
|
||||
"name": [
|
||||
@@ -5492,6 +5640,37 @@
|
||||
"name": "Repository"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "subscriptions",
|
||||
"name": [
|
||||
"get",
|
||||
"subscriptions"
|
||||
],
|
||||
"mandatoryParameters": [],
|
||||
"request": {
|
||||
"url": [
|
||||
{
|
||||
"type": "attribute",
|
||||
"value": [
|
||||
"url"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "constant",
|
||||
"value": "/subscriptions"
|
||||
}
|
||||
],
|
||||
"information": "data",
|
||||
"verb": "GET"
|
||||
},
|
||||
"isMutation": false,
|
||||
"optionalParameters": [],
|
||||
"type": {
|
||||
"simple": false,
|
||||
"cardinality": "list",
|
||||
"name": "Repository"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "starred",
|
||||
"name": [
|
||||
@@ -10378,6 +10557,37 @@
|
||||
"name": "NamedUser"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "subscribers",
|
||||
"name": [
|
||||
"get",
|
||||
"subscribers"
|
||||
],
|
||||
"mandatoryParameters": [],
|
||||
"request": {
|
||||
"url": [
|
||||
{
|
||||
"type": "attribute",
|
||||
"value": [
|
||||
"url"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "constant",
|
||||
"value": "/subscribers"
|
||||
}
|
||||
],
|
||||
"information": "data",
|
||||
"verb": "GET"
|
||||
},
|
||||
"isMutation": false,
|
||||
"optionalParameters": [],
|
||||
"type": {
|
||||
"simple": false,
|
||||
"cardinality": "list",
|
||||
"name": "NamedUser"
|
||||
}
|
||||
},
|
||||
{
|
||||
"group": "stargazers",
|
||||
"name": [
|
||||
|
||||
@@ -413,7 +413,7 @@ API `/repos/:user/:repo/statuses/:sha`
|
||||
|
||||
API `/repos/:user/:repo/subscribers`
|
||||
====================================
|
||||
* GET: (TODO)
|
||||
* GET: `Repository.get_subscribers`
|
||||
|
||||
API `/repos/:user/:repo/tags`
|
||||
=============================
|
||||
@@ -510,13 +510,13 @@ API `/user/starred/:user/:repo`
|
||||
|
||||
API `/user/subscriptions`
|
||||
=========================
|
||||
* GET: (TODO)
|
||||
* GET: `AuthenticatedUser.get_subscriptions`
|
||||
|
||||
API `/user/subscriptions/:user/:repo`
|
||||
=====================================
|
||||
* GET: (TODO)
|
||||
* PUT: (TODO)
|
||||
* DELETE: (TODO)
|
||||
* GET: `AuthenticatedUser.has_in_subscriptions`
|
||||
* PUT: `AuthenticatedUser.add_to_subscriptions`
|
||||
* DELETE: `AuthenticatedUser.remove_from_subscriptions`
|
||||
|
||||
API `/user/watched`
|
||||
===================
|
||||
@@ -579,7 +579,7 @@ API `/users/:user/starred`
|
||||
|
||||
API `/users/:user/subscriptions`
|
||||
================================
|
||||
* GET: (TODO)
|
||||
* GET: `NamedUser.get_subscriptions`
|
||||
|
||||
API `/users/:user/watched`
|
||||
==========================
|
||||
|
||||
@@ -190,6 +190,16 @@ Starred
|
||||
* `remove_from_starred( starred )`
|
||||
* `starred`: `Repository`
|
||||
|
||||
Subscriptions
|
||||
-------------
|
||||
* `add_to_subscriptions( subscription )`
|
||||
* `subscription`: `Repository`
|
||||
* `get_subscriptions()`: iterator of `Repository`
|
||||
* `has_in_subscriptions( subscription )`: bool
|
||||
* `subscription`: `Repository`
|
||||
* `remove_from_subscriptions( subscription )`
|
||||
* `subscription`: `Repository`
|
||||
|
||||
Watched
|
||||
-------
|
||||
* `add_to_watched( watched )`
|
||||
@@ -829,6 +839,10 @@ Starred
|
||||
-------
|
||||
* `get_starred()`: iterator of `Repository`
|
||||
|
||||
Subscriptions
|
||||
-------------
|
||||
* `get_subscriptions()`: iterator of `Repository`
|
||||
|
||||
Watched
|
||||
-------
|
||||
* `get_watched()`: iterator of `Repository`
|
||||
@@ -1311,6 +1325,10 @@ Stargazers
|
||||
----------
|
||||
* `get_stargazers()`: iterator of `NamedUser`
|
||||
|
||||
Subscribers
|
||||
-----------
|
||||
* `get_subscribers()`: iterator of `NamedUser`
|
||||
|
||||
Tags
|
||||
----
|
||||
* `get_tags()`: iterator of `Tag`
|
||||
|
||||
@@ -182,6 +182,15 @@ class AuthenticatedUser( GithubObject.GithubObject ):
|
||||
None
|
||||
)
|
||||
|
||||
def add_to_subscriptions( self, subscription ):
|
||||
assert isinstance( subscription, Repository.Repository ), subscription
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"PUT",
|
||||
"/user/subscriptions/" + subscription._identity,
|
||||
None,
|
||||
None
|
||||
)
|
||||
|
||||
def add_to_watched( self, watched ):
|
||||
assert isinstance( watched, Repository.Repository ), watched
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
@@ -533,6 +542,20 @@ class AuthenticatedUser( GithubObject.GithubObject ):
|
||||
data
|
||||
)
|
||||
|
||||
def get_subscriptions( self ):
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"GET",
|
||||
"/user/subscriptions",
|
||||
None,
|
||||
None
|
||||
)
|
||||
return PaginatedList.PaginatedList(
|
||||
Repository.Repository,
|
||||
self._requester,
|
||||
headers,
|
||||
data
|
||||
)
|
||||
|
||||
def get_watched( self ):
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"GET",
|
||||
@@ -567,6 +590,16 @@ class AuthenticatedUser( GithubObject.GithubObject ):
|
||||
)
|
||||
return status == 204
|
||||
|
||||
def has_in_subscriptions( self, subscription ):
|
||||
assert isinstance( subscription, Repository.Repository ), subscription
|
||||
status, headers, data = self._requester.requestRaw(
|
||||
"GET",
|
||||
"/user/subscriptions/" + subscription._identity,
|
||||
None,
|
||||
None
|
||||
)
|
||||
return status == 204
|
||||
|
||||
def has_in_watched( self, watched ):
|
||||
assert isinstance( watched, Repository.Repository ), watched
|
||||
status, headers, data = self._requester.requestRaw(
|
||||
@@ -605,6 +638,15 @@ class AuthenticatedUser( GithubObject.GithubObject ):
|
||||
None
|
||||
)
|
||||
|
||||
def remove_from_subscriptions( self, subscription ):
|
||||
assert isinstance( subscription, Repository.Repository ), subscription
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"DELETE",
|
||||
"/user/subscriptions/" + subscription._identity,
|
||||
None,
|
||||
None
|
||||
)
|
||||
|
||||
def remove_from_watched( self, watched ):
|
||||
assert isinstance( watched, Repository.Repository ), watched
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
|
||||
@@ -328,6 +328,20 @@ class NamedUser( GithubObject.GithubObject ):
|
||||
data
|
||||
)
|
||||
|
||||
def get_subscriptions( self ):
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"GET",
|
||||
self.url + "/subscriptions",
|
||||
None,
|
||||
None
|
||||
)
|
||||
return PaginatedList.PaginatedList(
|
||||
Repository.Repository,
|
||||
self._requester,
|
||||
headers,
|
||||
data
|
||||
)
|
||||
|
||||
def get_watched( self ):
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"GET",
|
||||
|
||||
@@ -978,6 +978,20 @@ class Repository( GithubObject.GithubObject ):
|
||||
data
|
||||
)
|
||||
|
||||
def get_subscribers( self ):
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"GET",
|
||||
self.url + "/subscribers",
|
||||
None,
|
||||
None
|
||||
)
|
||||
return PaginatedList.PaginatedList(
|
||||
NamedUser.NamedUser,
|
||||
self._requester,
|
||||
headers,
|
||||
data
|
||||
)
|
||||
|
||||
def get_tags( self ):
|
||||
headers, data = self._requester.requestAndCheck(
|
||||
"GET",
|
||||
|
||||
@@ -99,6 +99,15 @@ class AuthenticatedUser( Framework.TestCase ):
|
||||
self.user.add_to_starred( gitflow )
|
||||
self.assertEqual( self.user.has_in_starred( gitflow ), True )
|
||||
|
||||
def testSubscriptions( self ):
|
||||
gitflow = self.g.get_user( "nvie" ).get_repo( "gitflow" )
|
||||
self.assertListKeyEqual( self.user.get_subscriptions(), lambda r: r.name, [ "gitflow", "ViDE", "Boost.HierarchicalEnum", "QuadProgMm", "DrawSyntax", "DrawTurksHead", "PrivateStuff", "vincent-jacques.net", "Hacking", "C4Planner", "developer.github.com", "PyGithub", "PyGithub", "django", "CinePlanning", "PyGithub", "PyGithub", "PyGithub", "IpMap", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub" ] )
|
||||
self.assertEqual( self.user.has_in_subscriptions( gitflow ), True )
|
||||
self.user.remove_from_subscriptions( gitflow )
|
||||
self.assertEqual( self.user.has_in_subscriptions( gitflow ), False )
|
||||
self.user.add_to_subscriptions( gitflow )
|
||||
self.assertEqual( self.user.has_in_subscriptions( gitflow ), True )
|
||||
|
||||
def testGetAuthorizations( self ):
|
||||
self.assertListKeyEqual( self.user.get_authorizations(), lambda a: a.id, [ 372294 ] )
|
||||
|
||||
|
||||
@@ -114,6 +114,9 @@ class NamedUser( Framework.TestCase ):
|
||||
def testGetStarred( self ):
|
||||
self.assertListKeyEqual( self.user.get_starred(), lambda r: r.name, [ "git", "boost.php", "capistrano", "boost.perl", "git-subtree", "git-hg", "homebrew", "celtic_knot", "twisted-intro", "markup", "hub", "gitflow", "murder", "boto", "agit", "d3", "pygit2", "git-pulls", "django_mathlatex", "scrumblr", "developer.github.com", "python-github3", "PlantUML", "bootstrap", "drawnby", "django-socketio", "django-realtime", "playground", "BozoCrack", "FatherBeaver", "amaunet", "django", "django", "moviePlanning", "folly" ] )
|
||||
|
||||
def testGetSubscriptions( self ):
|
||||
self.assertListKeyEqual( self.user.get_subscriptions(), lambda r: r.name, [ "ViDE", "Boost.HierarchicalEnum", "QuadProgMm", "DrawSyntax", "DrawTurksHead", "PrivateStuff", "vincent-jacques.net", "Hacking", "C4Planner", "developer.github.com", "PyGithub", "PyGithub", "django", "CinePlanning", "PyGithub", "PyGithub", "PyGithub", "IpMap", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub", "PyGithub" ] )
|
||||
|
||||
def testGetEvents( self ):
|
||||
self.assertListKeyBegin( self.user.get_events(), lambda e: e.type, [ "GistEvent", "IssueCommentEvent", "PushEvent", "IssuesEvent" ] )
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
|
||||
https GET api.github.com None /repos/jacquev6/PyGithub/subscribers {'Authorization': 'Basic login_and_password_removed'} null
|
||||
200
|
||||
[('status', '200 OK'), ('content-length', '3327'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('vary', 'Accept, Authorization, Cookie'), ('x-ratelimit-remaining', '4956'), ('server', 'nginx/1.0.13'), ('last-modified', 'Fri, 07 Sep 2012 12:01:21 GMT'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"ab16ed4c5e852882d2d1a3887c3cb606"'), ('cache-control', 'private, s-maxage=60, max-age=60'), ('date', 'Fri, 07 Sep 2012 23:46:43 GMT'), ('content-type', 'application/json; charset=utf-8')]
|
||||
[{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"jacquev6","url":"https://api.github.com/users/jacquev6","id":327146},{"gravatar_id":"e8f8081fe45c1b793c288ecd1c1e932e","avatar_url":"https://secure.gravatar.com/avatar/e8f8081fe45c1b793c288ecd1c1e932e?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"equus12","url":"https://api.github.com/users/equus12","id":1647505},{"gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"bilderbuchi","url":"https://api.github.com/users/bilderbuchi","id":327442},{"gravatar_id":"4a70a247b4f222894f6b9861e40f733d","avatar_url":"https://secure.gravatar.com/avatar/4a70a247b4f222894f6b9861e40f733d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"hcilab","url":"https://api.github.com/users/hcilab","id":1610572},{"gravatar_id":"abd8a1f2aa5d4899129458889b6f315b","avatar_url":"https://secure.gravatar.com/avatar/abd8a1f2aa5d4899129458889b6f315b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"hattya","url":"https://api.github.com/users/hattya","id":839237},{"gravatar_id":"0e5246dc215484496d9ba125c1142716","avatar_url":"https://secure.gravatar.com/avatar/0e5246dc215484496d9ba125c1142716?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"firstthumb","url":"https://api.github.com/users/firstthumb","id":66023},{"gravatar_id":"8707d63a44f6cc04e58a655f3df3105c","avatar_url":"https://secure.gravatar.com/avatar/8707d63a44f6cc04e58a655f3df3105c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"gregwjacobs","url":"https://api.github.com/users/gregwjacobs","id":1749292},{"gravatar_id":"bb0e7d8e63591b6b908a5a21b3e75878","avatar_url":"https://secure.gravatar.com/avatar/bb0e7d8e63591b6b908a5a21b3e75878?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"sagarsane","url":"https://api.github.com/users/sagarsane","id":667114},{"gravatar_id":"bf75ed46f2034fe6cc1075ce888084d8","avatar_url":"https://secure.gravatar.com/avatar/bf75ed46f2034fe6cc1075ce888084d8?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"liang456","url":"https://api.github.com/users/liang456","id":1673318},{"gravatar_id":"3a90a2072fa32035016c5cc3c8584367","avatar_url":"https://secure.gravatar.com/avatar/3a90a2072fa32035016c5cc3c8584367?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"berndca","url":"https://api.github.com/users/berndca","id":466654},{"gravatar_id":"1517ed584458ccf83e03f5d77d9699d7","avatar_url":"https://secure.gravatar.com/avatar/1517ed584458ccf83e03f5d77d9699d7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png","login":"Lyloa","url":"https://api.github.com/users/Lyloa","id":1131432}]
|
||||
|
||||
@@ -325,6 +325,9 @@ class Repository( Framework.TestCase ):
|
||||
def testGetStargazers( self ):
|
||||
self.assertListKeyEqual( self.repo.get_stargazers(), lambda u: u.login, [ "Stals", "att14", "jardon-u", "huxley", "mikofski", "L42y", "fanzeyi", "abersager", "waylan", "adericbourg", "tallforasmurf", "pvicente", "roskakori", "michaelpedersen", "stefanfoulis", "equus12", "JuRogn", "joshmoore", "jsilter", "dasapich", "ritratt", "hcilab", "vxnick", "pmuilu", "herlo", "malexw", "ahmetvurgun", "PengGu", "cosmin", "Swop", "kennethreitz", "bryandyck", "jason2506", "zsiciarz", "waawal", "gregorynicholas", "sente", "richmiller55", "thouis", "mazubieta", "michaelhood", "engie", "jtriley", "oangeor", "coryking", "noddi", "alejo8591", "omab", "Carreau", "bilderbuchi", "schwa", "rlerallut", "PengHub", "zoek1", "xobb1t", "notgary", "hattya", "ZebtinRis", "aaronhall", "youngsterxyf", "ailling", "gregwjacobs", "n0rmrx", "awylie", "firstthumb", "joshbrand", "berndca" ] )
|
||||
|
||||
def testGetSubscribers( self ):
|
||||
self.assertListKeyEqual( self.repo.get_subscribers(), lambda u: u.login, [ "jacquev6", "equus12", "bilderbuchi", "hcilab", "hattya", "firstthumb", "gregwjacobs", "sagarsane", "liang456", "berndca", "Lyloa" ] )
|
||||
|
||||
def testCreatePull( self ):
|
||||
pull = self.repo.create_pull( "Pull request created by PyGithub", "Body of the pull request", "topic/RewriteWithGeneratedCode", "BeaverSoftware:master" )
|
||||
self.assertEqual( pull.id, 1436215 )
|
||||
|
||||
Reference in New Issue
Block a user