@@ -499,6 +499,89 @@ def project_remove_group_permissions(self, project_key, groupname):
499
499
params = {"name" : groupname }
500
500
return self .delete (url , params = params )
501
501
502
+ def project_default_permissions (self , project_key , permission ):
503
+ """
504
+ Check if the specified permission is the default permission for a given project
505
+ :param project_key: The project key
506
+ :param permission: the project permissions available are 'PROJECT_ADMIN', 'PROJECT_WRITE' and 'PROJECT_READ'
507
+ :return:
508
+ """
509
+ url = "{}/permissions/{}/all" .format (self ._url_project (project_key ), permission )
510
+ return self .get (url )
511
+
512
+ def project_grant_default_permissions (self , project_key , permission ):
513
+ """
514
+ Grant the specified project permission to all users for a given project
515
+ :param project_key: The project key
516
+ :param permission: the project permissions available are 'PROJECT_ADMIN', 'PROJECT_WRITE' and 'PROJECT_READ'
517
+ :return:
518
+ """
519
+ url = "{}/permissions/{}/all" .format (self ._url_project (project_key ), permission )
520
+ return self .post (url , params = {"allow" : True })
521
+
522
+ def project_remove_default_permissions (self , project_key , permission ):
523
+ """
524
+ Revoke the specified project permission for all users for a given project
525
+ :param project_key: The project key
526
+ :param permission: the project permissions available are 'PROJECT_ADMIN', 'PROJECT_WRITE' and 'PROJECT_READ'
527
+ :return:
528
+ """
529
+ url = "{}/permissions/{}/all" .format (self ._url_project (project_key ), permission )
530
+ return self .post (url , params = {"allow" : False })
531
+
532
+ def _url_project_repo_hook_settings (self , project_key ):
533
+ return "{}/settings/hooks" .format (self ._url_project (project_key ))
534
+
535
+ def all_project_repo_hook_settings (self , project_key , start = 0 , limit = None , filter_type = None ):
536
+ """
537
+ Get all repository hooks for a given project
538
+ :param project_key: The project key
539
+ :param start:
540
+ :param limit: OPTIONAL: The limit of the number of changes to return, this may be restricted by
541
+ fixed system limits. Default by built-in method: None
542
+ :param filter_type: OPTIONAL: PRE_RECEIVE|POST_RECEIVE if present, controls how repository hooks should be filtered.
543
+ :return:
544
+ """
545
+ url = self ._url_project_repo_hook_settings (project_key )
546
+ params = {}
547
+ if filter_type :
548
+ params ["type" ] = filter_type
549
+ if start :
550
+ params ["start" ] = start
551
+ if limit :
552
+ params ["limit" ] = limit
553
+ return self ._get_paged (url , params )
554
+
555
+ def get_project_repo_hook_settings (self , project_key , hook_key ):
556
+ """
557
+ Get a repository hook from a given project
558
+ :param project_key: The project key
559
+ :param hook_key: The repository hook key
560
+ :return:
561
+ """
562
+ url = "{}/{}" .format (self ._url_project_repo_hook_settings (project_key ), hook_key )
563
+ return self .get (url )
564
+
565
+ def enable_project_repo_hook_settings (self , project_key , hook_key ):
566
+ """
567
+ Enable a repository hook for a given project
568
+ :param project_key: The project key
569
+ :param hook_key: The repository hook key
570
+ :return:
571
+ """
572
+ url = "{}/{}/enabled" .format (self ._url_project_repo_hook_settings (project_key ), hook_key )
573
+ return self .put (url )
574
+
575
+ def disable_project_repo_hook_settings (self , project_key , hook_key ):
576
+ """
577
+ Disable a repository hook for a given project
578
+ :param project_key: The project key
579
+ :param hook_key: The repository hook key
580
+ :return:
581
+ """
582
+ url = "{}/{}/enabled" .format (self ._url_project_repo_hook_settings (project_key ), hook_key )
583
+ return self .delete (url )
584
+
502
585
def _url_project_conditions (self , project_key ):
503
586
return "{}/conditions" .format (
504
587
self ._url_project (project_key , api_root = "rest/default-reviewers" , api_version = "1.0" )
@@ -1167,6 +1250,63 @@ def delete_tag(self, project_key, repository_slug, tag_name):
1167
1250
(project_key , repository_slug , tag_name )
1168
1251
return self .delete (url )
1169
1252
1253
+ def _url_repo_hook_settings (self , project_key , repository_slug ):
1254
+ return "{}/settings/hooks" .format (self ._url_repo (project_key , repository_slug ))
1255
+
1256
+ def all_repo_hook_settings (self , project_key , repository_slug , start = 0 , limit = None , filter_type = None ):
1257
+ """
1258
+ Get all repository hooks for a given repo
1259
+ :param project_key: The project key
1260
+ :param repository_slug: The repository key
1261
+ :param start:
1262
+ :param limit: OPTIONAL: The limit of the number of changes to return, this may be restricted by
1263
+ fixed system limits. Default by built-in method: None
1264
+ :param filter_type: OPTIONAL: PRE_RECEIVE|POST_RECEIVE if present, controls how repository hooks should be filtered.
1265
+ :return:
1266
+ """
1267
+ url = self ._url_repo_hook_settings (project_key , repository_slug )
1268
+ params = {}
1269
+ if filter_type :
1270
+ params ["type" ] = filter_type
1271
+ if start :
1272
+ params ["start" ] = start
1273
+ if limit :
1274
+ params ["limit" ] = limit
1275
+ return self ._get_paged (url , params )
1276
+
1277
+ def get_repo_hook_settings (self , project_key , repository_slug , hook_key ):
1278
+ """
1279
+ Get a repository hook from a given repo
1280
+ :param project_key: The project key
1281
+ :param repository_slug: The repository key
1282
+ :param hook_key: The repository hook key
1283
+ :return:
1284
+ """
1285
+ url = "{}/{}" .format (self ._url_repo_hook_settings (project_key , repository_slug ), hook_key )
1286
+ return self .get (url )
1287
+
1288
+ def enable_repo_hook_settings (self , project_key , repository_slug , hook_key ):
1289
+ """
1290
+ Enable a repository hook for a given repo
1291
+ :param project_key: The project key
1292
+ :param repository_slug: The repository key
1293
+ :param hook_key: The repository hook key
1294
+ :return:
1295
+ """
1296
+ url = "{}/{}/enabled" .format (self ._url_repo_hook_settings (project_key , repository_slug ), hook_key )
1297
+ return self .put (url )
1298
+
1299
+ def disable_repo_hook_settings (self , project_key , repository_slug , hook_key ):
1300
+ """
1301
+ Disable a repository hook for a given repo
1302
+ :param project_key: The project key
1303
+ :param repository_slug: The repository key
1304
+ :param hook_key: The repository hook key
1305
+ :return:
1306
+ """
1307
+ url = "{}/{}/enabled" .format (self ._url_repo_hook_settings (project_key , repository_slug ), hook_key )
1308
+ return self .delete (url )
1309
+
1170
1310
def _url_pull_request_settings (self , project_key , repository_slug ):
1171
1311
return "{}/settings/pull-requests" .format (self ._url_repo (project_key , repository_slug ))
1172
1312
0 commit comments