| 
									
										
										
										
											2021-05-21 11:46:32 +08:00
										 |  |  | # -*- coding: utf-8 -*- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import time | 
					
						
							|  |  |  | import base | 
					
						
							|  |  |  | import v2_swagger_client | 
					
						
							|  |  |  | from v2_swagger_client.rest import ApiException | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Webhook(base.Base): | 
					
						
							|  |  |  |     def __init__(self): | 
					
						
							|  |  |  |         super(Webhook,self).__init__(api_type="webhook") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def create_webhook(self, project_id, targets, event_types = ["DELETE_ARTIFACT", | 
					
						
							|  |  |  |             "PULL_ARTIFACT", | 
					
						
							|  |  |  |             "PUSH_ARTIFACT", | 
					
						
							| 
									
										
										
										
											2023-02-16 18:11:05 +08:00
										 |  |  |             "QUOTA_EXCEED", | 
					
						
							| 
									
										
										
										
											2021-05-21 11:46:32 +08:00
										 |  |  |             "QUOTA_WARNING","SCANNING_FAILED", | 
					
						
							|  |  |  |             "TAG_RETENTION"], | 
					
						
							|  |  |  |             name = None, desc = None, enabled = True, | 
					
						
							|  |  |  |             expect_status_code = 201, expect_response_body = None, **kwargs): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         if name is None: | 
					
						
							|  |  |  |             name = base._random_name("webhook") + (str(project_id)) | 
					
						
							|  |  |  |         if desc is None: | 
					
						
							|  |  |  |             desc = base._random_name("webhook desc") + (str(project_id)) | 
					
						
							|  |  |  |         policy = v2_swagger_client.WebhookPolicy( | 
					
						
							|  |  |  |             name = name, | 
					
						
							|  |  |  |             description = desc, | 
					
						
							|  |  |  |             project_id = project_id, | 
					
						
							|  |  |  |             targets = targets, | 
					
						
							|  |  |  |             event_types = event_types, | 
					
						
							|  |  |  |             enabled = enabled | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             _, status_code, header = self._get_client(**kwargs).create_webhook_policy_of_project_with_http_info(project_id, policy) | 
					
						
							|  |  |  |         except ApiException as e: | 
					
						
							|  |  |  |             base._assert_status_code(expect_status_code, e.status) | 
					
						
							|  |  |  |             if expect_response_body is not None: | 
					
						
							|  |  |  |                 base._assert_status_body(expect_response_body, e.body) | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         base._assert_status_code(expect_status_code, status_code) | 
					
						
							|  |  |  |         base._assert_status_code(201, status_code) | 
					
						
							|  |  |  |         return base._get_id_from_header(header), name | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def update_webhook(self, project_id, webhook_policy_id, event_types = None, | 
					
						
							|  |  |  |             name = None, desc = None, enabled = None, targets = None, | 
					
						
							|  |  |  |             expect_status_code=200, expect_response_body=None, **kwargs): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         policy = v2_swagger_client.WebhookPolicy() | 
					
						
							|  |  |  |         if name is not None: | 
					
						
							|  |  |  |             policy.name = name | 
					
						
							|  |  |  |         if desc is not None: | 
					
						
							|  |  |  |             policy.desc = desc | 
					
						
							|  |  |  |         if enabled is not None: | 
					
						
							|  |  |  |             policy.enabled = enabled | 
					
						
							|  |  |  |         if targets is not None: | 
					
						
							|  |  |  |             policy.targets = targets | 
					
						
							|  |  |  |         if event_types is not None: | 
					
						
							|  |  |  |             policy.event_types = event_types | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             _, status_code, header = self._get_client(**kwargs).update_webhook_policy_of_project_with_http_info(project_id, webhook_policy_id, policy) | 
					
						
							|  |  |  |         except ApiException as e: | 
					
						
							|  |  |  |             base._assert_status_code(expect_status_code, e.status) | 
					
						
							|  |  |  |             if expect_response_body is not None: | 
					
						
							|  |  |  |                 base._assert_status_body(expect_response_body, e.body) | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         base._assert_status_code(expect_status_code, status_code) | 
					
						
							|  |  |  |         base._assert_status_code(200, status_code) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_webhook(self, project_id, webhook_policy_id, expect_status_code=200, expect_response_body=None, **kwargs): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             data , status_code, header = self._get_client(**kwargs).get_webhook_policy_of_project_with_http_info(project_id, webhook_policy_id) | 
					
						
							|  |  |  |         except ApiException as e: | 
					
						
							|  |  |  |             base._assert_status_code(expect_status_code, e.status) | 
					
						
							|  |  |  |             if expect_response_body is not None: | 
					
						
							|  |  |  |                 base._assert_status_body(expect_response_body, e.body) | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         base._assert_status_code(expect_status_code, status_code) | 
					
						
							|  |  |  |         base._assert_status_code(200, status_code) | 
					
						
							|  |  |  |         print("Webhooks:", data) | 
					
						
							|  |  |  |         return data | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def delete_webhook(self, project_id, webhook_policy_id, expect_status_code=200, expect_response_body=None, **kwargs): | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         try: | 
					
						
							|  |  |  |             _ , status_code, _ = self._get_client(**kwargs).delete_webhook_policy_of_project_with_http_info(project_id, webhook_policy_id) | 
					
						
							|  |  |  |         except ApiException as e: | 
					
						
							|  |  |  |             base._assert_status_code(expect_status_code, e.status) | 
					
						
							|  |  |  |             if expect_response_body is not None: | 
					
						
							|  |  |  |                 base._assert_status_body(expect_response_body, e.body) | 
					
						
							|  |  |  |             return | 
					
						
							|  |  |  |         base._assert_status_code(expect_status_code, status_code) | 
					
						
							|  |  |  |         base._assert_status_code(200, status_code) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 |