@@ -499,6 +499,89 @@ def project_remove_group_permissions(self, project_key, groupname):
499499 params = {"name" : groupname }
500500 return self .delete (url , params = params )
501501
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+
502585 def _url_project_conditions (self , project_key ):
503586 return "{}/conditions" .format (
504587 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):
11671250 (project_key , repository_slug , tag_name )
11681251 return self .delete (url )
11691252
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+
11701310 def _url_pull_request_settings (self , project_key , repository_slug ):
11711311 return "{}/settings/pull-requests" .format (self ._url_repo (project_key , repository_slug ))
11721312
0 commit comments