@@ -503,7 +503,7 @@ def project_grant_group_permissions(self, project_key, group_name, permission):
503
503
"""
504
504
url = self ._url_project_groups (project_key )
505
505
params = {'permission' : permission ,
506
- 'name' : username }
506
+ 'name' : group_name }
507
507
return self .put (url , params = params )
508
508
509
509
def project_remove_group_permissions (self , project_key , groupname ):
@@ -542,8 +542,8 @@ def _url_project_condition(self, project_key, id_condition=None):
542
542
url = '{}/condition' .format (self ._url_project (project_key ,
543
543
api_root = 'default-reviewers' ,
544
544
api_version = '1.0' ))
545
- if idCondition is not None :
546
- url += '/{}' .format (idCondition )
545
+ if id_condition is not None :
546
+ url += '/{}' .format (id_condition )
547
547
return url
548
548
549
549
def get_project_condition (self , project_key , id_condition ):
@@ -635,6 +635,7 @@ def repo_all_list(self, project_key):
635
635
:param project_key:
636
636
:return:
637
637
"""
638
+ url = self ._url_repos (project_key )
638
639
return self .repo_list (url , limit = None )
639
640
640
641
def create_repo (self , project_key , repository , forkable = False , is_private = True ):
@@ -1007,7 +1008,7 @@ def delete_branch(self, project, repository, name, end_point):
1007
1008
:param end_point:
1008
1009
:return:
1009
1010
"""
1010
- url = self ._url_repo_branches (project_key , repository , api_root = 'branch-utils' )
1011
+ url = self ._url_repo_branches (project , repository , api_root = 'branch-utils' )
1011
1012
data = {"name" : str (name ), "endPoint" : str (end_point )}
1012
1013
return self .delete (url , data = data )
1013
1014
@@ -1117,8 +1118,7 @@ def set_pull_request_settings(self, project, repository, data):
1117
1118
1118
1119
def _url_pull_requests (self , project , repository ):
1119
1120
if self .cloud :
1120
- return self .resource_url ('repositories/{}/{}/pullrequests' \
1121
- .format (project , repository ))
1121
+ return self .resource_url ('repositories/{}/{}/pullrequests' .format (project , repository ))
1122
1122
else :
1123
1123
return '{}/pull-requests' .format (self ._url_repo (project , repository ))
1124
1124
@@ -1295,6 +1295,8 @@ def get_pull_requests_commits(self, project, repository, pull_request_id, start=
1295
1295
:param project:
1296
1296
:param repository:
1297
1297
:param pull_request_id: the ID of the pull request within the repository
1298
+ :start
1299
+ :limit
1298
1300
:return:
1299
1301
"""
1300
1302
url = '{}/commits' .format (self ._url_pull_request (project , repository , pull_request_id ))
@@ -1306,7 +1308,7 @@ def get_pull_requests_commits(self, project, repository, pull_request_id, start=
1306
1308
return self ._get_paged (url , params )
1307
1309
1308
1310
def _url_pull_request_participants (self , project , repository , pull_request_id ):
1309
- return '{}/participants' .format (self ._url_pull_requests (project , repository , pull_request_id ) )
1311
+ return '{}/{}/ participants' .format (self ._url_pull_requests (project , repository ) , pull_request_id )
1310
1312
1311
1313
def get_pull_requests_participants (self , project , repository , pull_request_id , start = 0 , limit = None ):
1312
1314
"""
@@ -1324,19 +1326,19 @@ def get_pull_requests_participants(self, project, repository, pull_request_id, s
1324
1326
params ['limit' ] = limit
1325
1327
return self ._get_paged (url , params )
1326
1328
1327
- def change_reviewed_status (self , project_key , repository_slug , pull_request_id , status , user_slug ):
1329
+ def change_reviewed_status (self , project , repository , pull_request_id , status , user_slug ):
1328
1330
"""
1329
1331
Change the current user's status for a pull request.
1330
1332
Implicitly adds the user as a participant if they are not already.
1331
1333
If the current user is the author, this method will fail.
1332
- :param project_key:
1333
- :param repository_slug :
1334
+ :param project
1335
+ :param repository :
1334
1336
:param pull_request_id:
1335
1337
:param status:
1336
1338
:param user_slug:
1337
1339
:return:
1338
1340
"""
1339
- url = '{}/{}} ' .format (_url_pull_request_participants (project , repository , pull_request_id ), user_slug )
1341
+ url = '{}/{}' .format (self . _url_pull_request_participants (project , repository , pull_request_id ), user_slug )
1340
1342
approved = True if status == "APPROVED" else False
1341
1343
data = {
1342
1344
"user" : {
@@ -1369,6 +1371,7 @@ def add_pull_request_comment(self, project, repository, pull_request_id, text, p
1369
1371
1370
1372
def _url_pull_request_comment (self , project , repository , pull_request_id , comment_id ):
1371
1373
url = '{}/{}' .format (self ._url_pull_request (project , repository , pull_request_id ), comment_id )
1374
+ return url
1372
1375
1373
1376
def get_pull_request_comment (self , project , repository , pull_request_id , comment_id ):
1374
1377
"""
@@ -1490,7 +1493,7 @@ def update_task(self, task_id, text=None, state=None):
1490
1493
data ["state" ] = state
1491
1494
return self .put (url , data = data )
1492
1495
1493
- def is_pull_request_can_be_merged (self , project_key , repository , pr_id ):
1496
+ def is_pull_request_can_be_merged (self , project , repository , pr_id ):
1494
1497
"""
1495
1498
Test whether a pull request can be merged.
1496
1499
A pull request may not be merged if:
@@ -1499,45 +1502,45 @@ def is_pull_request_can_be_merged(self, project_key, repository, pr_id):
1499
1502
The authenticated user must have REPO_READ permission for the repository
1500
1503
that this pull request targets to call this resource.
1501
1504
1502
- :param project_key : PROJECT
1505
+ :param project : PROJECT
1503
1506
:param repository: my_shiny_repo
1504
1507
:param pr_id: 2341
1505
1508
:return:
1506
1509
"""
1507
- url = '{}/merge' .format (self ._url_pull_request (project , repository , pull_request_id ))
1510
+ url = '{}/merge' .format (self ._url_pull_request (project , repository , pr_id ))
1508
1511
return self .get (url )
1509
1512
1510
- def merge_pull_request (self , project_key , repository , pr_id , pr_version ):
1513
+ def merge_pull_request (self , project , repository , pr_id , pr_version ):
1511
1514
"""
1512
1515
Merge pull request
1513
1516
The authenticated user must have REPO_READ permission for the repository
1514
1517
that this pull request targets to call this resource.
1515
1518
1516
- :param pr_version:
1517
- :param project_key: PROJECT
1519
+ :param project: PROJECT
1518
1520
:param repository: my_shiny_repo
1519
1521
:param pr_id: 2341
1522
+ :param pr_version:
1520
1523
:return:
1521
1524
"""
1522
- url = '{}/merge' .format (self ._url_pull_request (project , repository , pull_request_id ))
1525
+ url = '{}/merge' .format (self ._url_pull_request (project , repository , pr_id ))
1523
1526
params = {}
1524
1527
if not self .cloud :
1525
1528
params ['version' ] = pr_version
1526
1529
return self .post (url , params = params )
1527
1530
1528
- def reopen_pull_request (self , project_key , repository , pr_id , pr_version ):
1531
+ def reopen_pull_request (self , project , repository , pr_id , pr_version ):
1529
1532
"""
1530
1533
Re-open a declined pull request.
1531
1534
The authenticated user must have REPO_READ permission for the repository
1532
1535
that this pull request targets to call this resource.
1533
1536
1534
- :param project_key : PROJECT
1537
+ :param project : PROJECT
1535
1538
:param repository: my_shiny_repo
1536
1539
:param pr_id: 2341
1537
1540
:param pr_version: 12
1538
1541
:return:
1539
1542
"""
1540
- url = '{}/reopen' .format (self ._url_pull_request (project , repository , pull_request_id ))
1543
+ url = '{}/reopen' .format (self ._url_pull_request (project , repository , pr_id ))
1541
1544
params = {'version' : pr_version }
1542
1545
return self .post (url , params = params )
1543
1546
@@ -1652,8 +1655,8 @@ def get_changelog(self, project, repository, ref_from, ref_to, start=0, limit=No
1652
1655
params ['limit' ] = limit
1653
1656
return self ._get_paged (url , params = params )
1654
1657
1655
- def _url_commit (self , project , repository , commitId ):
1656
- return '{}/{}' .format (self ._url_commits (project , repository ), commitId = commitId )
1658
+ def _url_commit (self , project , repository , commit_id ):
1659
+ return '{}/{}' .format (self ._url_commits (project , repository ), commit_id )
1657
1660
1658
1661
def get_commit_info (self , project , repository , commit , path = None ):
1659
1662
"""
@@ -1770,36 +1773,34 @@ def get_content_of_file(self, project, repository, filename, at=None, markup=Non
1770
1773
headers = self .form_token_headers
1771
1774
return self .get (url , params = params , not_json_response = True , headers = headers )
1772
1775
1773
- def _url_branches_permissions (self , project , repository = None ):
1776
+ def _url_branches_permissions (self , project , permission_id = None , repository = None ):
1774
1777
if repository is None :
1775
- return '{}/restrictions/{}' .format (self ._url_project (project ,
1776
- api_root = 'branch-permissions' ,
1777
- api_version = '2.0' ),
1778
- permission_id )
1778
+ base = self ._url_project (project , api_root = 'branch-permissions' , api_version = '2.0' )
1779
1779
else :
1780
- return '{}/restrictions/{}' .format (self ._url_repo (project , repository ,
1781
- api_root = 'branch-permissions' ,
1782
- api_version = '2.0' ),
1783
- permission_id )
1780
+ base = self ._url_repo (project , repository , api_root = 'branch-permissions' , api_version = '2.0' )
1781
+
1782
+ return '{}/restrictions/{}' .format (base , '' if permission_id is None else str (permission_id ))
1784
1783
1785
- def get_branches_permissions (self , project , repository = None , start = 0 , limit = 25 ):
1784
+
1785
+ def get_branches_permissions (self , project , permission_id , repository = None , start = 0 , limit = 25 ):
1786
1786
"""
1787
1787
Get branches permissions from a given repo
1788
1788
:param project:
1789
+ :param permission_id:
1789
1790
:param repository:
1790
1791
:param start:
1791
1792
:param limit:
1792
1793
:return:
1793
1794
"""
1794
- url = self ._url_branches_permissions (project , repository )
1795
+ url = self ._url_branches_permissions (project , permission_id , repository )
1795
1796
params = {}
1796
1797
if limit :
1797
1798
params ['limit' ] = limit
1798
1799
if start :
1799
1800
params ['start' ] = start
1800
1801
return self .get (url , params = params )
1801
1802
1802
- def set_branches_permissions (self , project_key , multiple_permissions = False , matcher_type = None , matcher_value = None ,
1803
+ def set_branches_permissions (self , project , multiple_permissions = False , matcher_type = None , matcher_value = None ,
1803
1804
permission_type = None , repository = None , except_users = None , except_groups = None ,
1804
1805
except_access_keys = None , start = 0 , limit = 25 ):
1805
1806
"""
@@ -1808,7 +1809,7 @@ def set_branches_permissions(self, project_key, multiple_permissions=False, matc
1808
1809
To use multiple restrictions you should format payload manually -
1809
1810
see the bitbucket-branch-restrictions.py example.
1810
1811
Reference: https://docs.atlassian.com/bitbucket-server/rest/6.8.0/bitbucket-ref-restriction-rest.html
1811
- :param project_key :
1812
+ :param project :
1812
1813
:param multiple_permissions:
1813
1814
:param matcher_type:
1814
1815
:param matcher_value:
@@ -1821,7 +1822,7 @@ def set_branches_permissions(self, project_key, multiple_permissions=False, matc
1821
1822
:param limit:
1822
1823
:return:
1823
1824
"""
1824
- url = self ._url_branches_permissions (project , repository )
1825
+ url = self ._url_branches_permissions (project = project , repository = repository )
1825
1826
if except_users is None :
1826
1827
except_users = []
1827
1828
if except_groups is None :
@@ -1851,41 +1852,43 @@ def set_branches_permissions(self, project_key, multiple_permissions=False, matc
1851
1852
params = {"start" : start , "limit" : limit }
1852
1853
return self .post (url , data = restriction , params = params , headers = headers )
1853
1854
1854
- def delete_branch_permission (self , project_key , permission_id , repository = None ):
1855
+ def delete_branch_permission (self , project , permission_id , repository = None ):
1855
1856
"""
1856
1857
Deletes a restriction as specified by a restriction id.
1857
1858
The authenticated user must have REPO_ADMIN permission or higher to call this resource.
1858
1859
1859
- :param project_key :
1860
+ :param project :
1860
1861
:param repository:
1861
1862
:param permission_id:
1862
1863
:return:
1863
1864
"""
1864
- url = self ._url_branches_permissions (project , repository )
1865
+ url = self ._url_branches_permissions (project , permission_id , repository )
1865
1866
return self .delete (url )
1866
1867
1867
- def get_branch_permission (self , project_key , permission_id , repository = None ):
1868
+ def get_branch_permission (self , project , permission_id , repository = None ):
1868
1869
"""
1869
1870
Returns a restriction as specified by a restriction id.
1870
1871
The authenticated user must have REPO_ADMIN permission or higher to call this resource.
1871
1872
1872
- :param project_key :
1873
+ :param project :
1873
1874
:param repository:
1874
1875
:param permission_id:
1875
1876
:return:
1876
1877
"""
1877
- url = self ._url_branches_permissions (project , repository )
1878
+ url = self ._url_branches_permissions (project , permission_id , repository )
1878
1879
return self .get (url )
1879
1880
1880
- def all_branches_permissions (self , project , repository = None ):
1881
+ def all_branches_permissions (self , project , permission_id , repository = None ):
1881
1882
"""
1882
1883
Get branches permissions from a given repo
1883
1884
:param project:
1885
+ :param permission_id
1884
1886
:param repository:
1885
1887
:return:
1886
1888
"""
1887
- url = self ._url_branches_permissions (project , repository )
1888
- return self ._get_paged (url )
1889
+ url = self ._url_branches_permissions (project , permission_id , repository )
1890
+ params = {}
1891
+ return self ._get_paged (url , params = params )
1889
1892
1890
1893
def _url_branching_model (self , project , repository ):
1891
1894
return self .resource_url ('{}/branchmodel/configuration' .format (self ._url_repo (project , repository )),
@@ -2064,11 +2067,11 @@ def get_repo_repo_conditions(self, project_key, repo_key):
2064
2067
count += 1
2065
2068
return response
2066
2069
2067
- def _url_repo_condition (self , project_key , repo_key , id_condition ):
2070
+ def _url_repo_condition (self , project_key , repo_key , id_condition = None ):
2068
2071
return '{}/condition/{}' .format (self ._url_repo (project_key , repo_key ,
2069
2072
api_root = 'default-reviewers' ,
2070
2073
api_version = '1.0' ),
2071
- id_condition )
2074
+ '' if id_condition is None else str ( id_condition ) )
2072
2075
2073
2076
def get_repo_condition (self , project_key , repo_key , id_condition ):
2074
2077
"""
@@ -2261,6 +2264,7 @@ def get_issues(self, workspace, repository, sort_by=None, query=None):
2261
2264
:return: List of issues (direct, i.e. without the 'values' key)
2262
2265
"""
2263
2266
url = self ._url_issues (workspace , repository )
2267
+ params = {"query" : query , "sort" : sort_by }
2264
2268
return self ._get_paged (url , params = params )
2265
2269
2266
2270
def create_issue (self , workspace , repository , title , description = "" ,
@@ -2279,29 +2283,29 @@ def create_issue(self, workspace, repository, title, description="",
2279
2283
}
2280
2284
return self .post (url , data = data )
2281
2285
2282
- def _url_issue (self , workspace , repository , issue ):
2283
- return '{}/{}' .format (self ._url_issues (workspace , repository ), issue )
2286
+ def _url_issue (self , workspace , repository , issue_id ):
2287
+ return '{}/{}' .format (self ._url_issues (workspace , repository ), issue_id )
2284
2288
2285
- def get_issue (self , workspace , repository , id ):
2289
+ def get_issue (self , workspace , repository , issue_id ):
2286
2290
"""
2287
2291
Get the issue specified by ``id``.
2288
2292
"""
2289
- url = self ._url_issue (self , workspace , repository , id )
2293
+ url = self ._url_issue (workspace , repository , issue_id )
2290
2294
return self .get (url )
2291
2295
2292
- def update_issue (self , workspace , repository , id , ** fields ):
2296
+ def update_issue (self , workspace , repository , issue_id , ** fields ):
2293
2297
"""
2294
2298
Update the ``fields`` of the issue specified by ``id``.
2295
2299
Consult the official API documentation for valid fields.
2296
2300
"""
2297
- url = self ._url_issue (self , workspace , repository , id )
2301
+ url = self ._url_issue (workspace , repository , issue_id )
2298
2302
return self .put (url , data = fields )
2299
2303
2300
- def delete_issue (self , workspace , repository , id ):
2304
+ def delete_issue (self , workspace , repository , issue_id ):
2301
2305
"""
2302
2306
Delete the issue specified by ``id``.
2303
2307
"""
2304
- url = self ._url_issue (self , workspace , repository , id )
2308
+ url = self ._url_issue (workspace , repository , issue_id )
2305
2309
return self .delete (url )
2306
2310
2307
2311
def _url_repositories (self , workspace ):
@@ -2434,7 +2438,7 @@ def add_default_reviewer(self, workspace, repository, user):
2434
2438
url = self ._url_default_reviewer (workspace , repository , user )
2435
2439
2436
2440
# the mention_id parameter is undocumented but if missed, leads to 400 statuses
2437
- return self .put (surl , data = {"mention_id" : user })
2441
+ return self .put (url , data = {"mention_id" : user })
2438
2442
2439
2443
def is_default_reviewer (self , workspace , repository , user ):
2440
2444
"""
0 commit comments