|
18 | 18 | DEFAULT_TIMEOUT, |
19 | 19 | MAXIMUM_PAYLOAD_SIZE, |
20 | 20 | ) |
21 | | -from .iac_models import ( |
22 | | - IaCDiffScanResult, |
23 | | - IaCScanParameters, |
24 | | - IaCScanParametersSchema, |
25 | | - IaCScanResult, |
26 | | -) |
27 | 21 | from .models import ( |
28 | 22 | APITokensResponse, |
29 | 23 | CreateInvitation, |
|
66 | 60 | UpdateTeamSource, |
67 | 61 | ) |
68 | 62 | from .models_utils import CursorPaginatedResponse |
69 | | -from .sca_models import ( |
70 | | - ComputeSCAFilesResult, |
71 | | - SCAScanAllOutput, |
72 | | - SCAScanDiffOutput, |
73 | | - SCAScanParameters, |
74 | | -) |
75 | 63 |
|
76 | 64 |
|
77 | 65 | logger = logging.getLogger(__name__) |
@@ -355,8 +343,6 @@ def post( |
355 | 343 | extra_headers: Optional[Dict[str, str]] = None, |
356 | 344 | **kwargs: Any, |
357 | 345 | ) -> Response: |
358 | | - # Be aware that self.iac_directory_scan bypass this method and calls self.request directly. |
359 | | - # self.iac_diff_scan also bypass this method |
360 | 346 | return self.request( |
361 | 347 | "post", |
362 | 348 | endpoint=endpoint, |
@@ -695,100 +681,6 @@ def create_honeytoken_with_context( |
695 | 681 | result.status_code = resp.status_code |
696 | 682 | return result |
697 | 683 |
|
698 | | - def iac_directory_scan( |
699 | | - self, |
700 | | - directory: Path, |
701 | | - filenames: List[str], |
702 | | - scan_parameters: IaCScanParameters, |
703 | | - extra_headers: Optional[Dict[str, str]] = None, |
704 | | - ) -> Union[Detail, IaCScanResult]: |
705 | | - """ |
706 | | - iac_directory_scan handles the /iac_scan endpoint of the API. |
707 | | -
|
708 | | - :param directory: path to the directory to scan |
709 | | - :param filenames: filenames of the directory to include in the scan |
710 | | - :param scan_parameters: minimum severities wanted and policies to ignore |
711 | | - example: {"ignored_policies":["GG_IAC_0003"],"minimum_severity":"HIGH"} |
712 | | - :param extra_headers: optional extra headers to add to the request |
713 | | - :return: ScanResult response and status code |
714 | | - """ |
715 | | - tar = _create_tar(directory, filenames) |
716 | | - result: Union[Detail, IaCScanResult] |
717 | | - try: |
718 | | - # bypass self.post because data argument is needed in self.request and self.post use it as json |
719 | | - resp = self.request( |
720 | | - "post", |
721 | | - endpoint="iac_scan", |
722 | | - extra_headers=extra_headers, |
723 | | - files={ |
724 | | - "directory": tar, |
725 | | - }, |
726 | | - data={ |
727 | | - "scan_parameters": IaCScanParametersSchema().dumps(scan_parameters), |
728 | | - }, |
729 | | - ) |
730 | | - except requests.exceptions.ReadTimeout: |
731 | | - result = Detail("The request timed out.") |
732 | | - result.status_code = 504 |
733 | | - else: |
734 | | - if is_ok(resp): |
735 | | - result = IaCScanResult.from_dict(resp.json()) |
736 | | - else: |
737 | | - result = load_detail(resp) |
738 | | - |
739 | | - result.status_code = resp.status_code |
740 | | - |
741 | | - return result |
742 | | - |
743 | | - def iac_diff_scan( |
744 | | - self, |
745 | | - reference: bytes, |
746 | | - current: bytes, |
747 | | - scan_parameters: IaCScanParameters, |
748 | | - extra_headers: Optional[Dict[str, str]] = None, |
749 | | - ) -> Union[Detail, IaCDiffScanResult]: |
750 | | - """ |
751 | | - iac_diff_scan handles the /iac_diff_scan endpoint of the API. |
752 | | -
|
753 | | - Scan two directories and compare their vulnerabilities. |
754 | | - Vulnerabilities in reference but not in current are considered "new". |
755 | | - Vulnerabilities in both reference and current are considered "unchanged". |
756 | | - Vulnerabilities in current but not in reference are considered "deleted". |
757 | | -
|
758 | | - :param reference: tar file containing the reference directory. Usually an incoming commit |
759 | | - :param current: tar file of the current directory. Usually HEAD |
760 | | - :param scan_parameters: minimum severities wanted and policies to ignore |
761 | | - example: {"ignored_policies":["GG_IAC_0003"],"minimum_severity":"HIGH"} |
762 | | - :param extra_headers: optional extra headers to add to the request |
763 | | - :return: ScanResult response and status code |
764 | | - """ |
765 | | - result: Union[Detail, IaCDiffScanResult] |
766 | | - try: |
767 | | - # bypass self.post because data argument is needed in self.request and self.post use it as json |
768 | | - resp = self.request( |
769 | | - "post", |
770 | | - endpoint="iac_diff_scan", |
771 | | - extra_headers=extra_headers, |
772 | | - files={ |
773 | | - "reference": reference, |
774 | | - "current": current, |
775 | | - }, |
776 | | - data={ |
777 | | - "scan_parameters": IaCScanParametersSchema().dumps(scan_parameters), |
778 | | - }, |
779 | | - ) |
780 | | - except requests.exceptions.ReadTimeout: |
781 | | - result = Detail("The request timed out.") |
782 | | - result.status_code = 504 |
783 | | - else: |
784 | | - if is_ok(resp): |
785 | | - result = IaCDiffScanResult.from_dict(resp.json()) |
786 | | - else: |
787 | | - result = load_detail(resp) |
788 | | - |
789 | | - result.status_code = resp.status_code |
790 | | - return result |
791 | | - |
792 | 684 | def read_metadata(self) -> Optional[Detail]: |
793 | 685 | """ |
794 | 686 | Fetch server preferences and store them in `self.secret_scan_preferences`. |
@@ -836,95 +728,6 @@ def create_jwt( |
836 | 728 | obj.status_code = resp.status_code |
837 | 729 | return obj |
838 | 730 |
|
839 | | - def compute_sca_files( |
840 | | - self, |
841 | | - files: List[str], |
842 | | - extra_headers: Optional[Dict[str, str]] = None, |
843 | | - ) -> Union[Detail, ComputeSCAFilesResult]: |
844 | | - if len(files) == 0: |
845 | | - result = ComputeSCAFilesResult(sca_files=[]) |
846 | | - result.status_code = 200 |
847 | | - return result |
848 | | - |
849 | | - response = self.post( |
850 | | - endpoint="sca/compute_sca_files/", |
851 | | - data={"files": files}, |
852 | | - extra_headers=extra_headers, |
853 | | - ) |
854 | | - result: Union[Detail, ComputeSCAFilesResult] |
855 | | - if is_ok(response): |
856 | | - result = ComputeSCAFilesResult.from_dict(response.json()) |
857 | | - else: |
858 | | - result = load_detail(response) |
859 | | - |
860 | | - result.status_code = response.status_code |
861 | | - return result |
862 | | - |
863 | | - def sca_scan_directory( |
864 | | - self, |
865 | | - tar_file: bytes, |
866 | | - scan_parameters: SCAScanParameters, |
867 | | - extra_headers: Optional[Dict[str, str]] = None, |
868 | | - ) -> Union[Detail, SCAScanAllOutput]: |
869 | | - """ |
870 | | - Launches an SCA scan via SCA public API on a tar archive |
871 | | - """ |
872 | | - |
873 | | - result: Union[Detail, SCAScanAllOutput] |
874 | | - |
875 | | - try: |
876 | | - # bypass self.post because data argument is needed in self.request and self.post use it as json |
877 | | - response = self.request( |
878 | | - "post", |
879 | | - endpoint="sca/sca_scan_all/", |
880 | | - files={"directory": tar_file}, |
881 | | - data={ |
882 | | - "scan_parameters": SCAScanParameters.SCHEMA.dumps(scan_parameters) |
883 | | - }, |
884 | | - extra_headers=extra_headers, |
885 | | - ) |
886 | | - except requests.exceptions.ReadTimeout: |
887 | | - result = Detail("The request timed out.") |
888 | | - result.status_code = 504 |
889 | | - else: |
890 | | - if is_ok(response): |
891 | | - result = SCAScanAllOutput.from_dict(response.json()) |
892 | | - else: |
893 | | - result = load_detail(response) |
894 | | - |
895 | | - result.status_code = response.status_code |
896 | | - |
897 | | - return result |
898 | | - |
899 | | - def scan_diff( |
900 | | - self, |
901 | | - reference: bytes, |
902 | | - current: bytes, |
903 | | - scan_parameters: SCAScanParameters, |
904 | | - extra_headers: Optional[Dict[str, str]] = None, |
905 | | - ) -> Union[Detail, SCAScanDiffOutput]: |
906 | | - result: Union[Detail, SCAScanDiffOutput] |
907 | | - try: |
908 | | - response = self.request( |
909 | | - "post", |
910 | | - endpoint="sca/sca_scan_diff/", |
911 | | - files={"reference": reference, "current": current}, |
912 | | - data={ |
913 | | - "scan_parameters": SCAScanParameters.SCHEMA.dumps(scan_parameters) |
914 | | - }, |
915 | | - extra_headers=extra_headers, |
916 | | - ) |
917 | | - except requests.exceptions.ReadTimeout: |
918 | | - result = Detail("The request timed out.") |
919 | | - result.status_code = 504 |
920 | | - else: |
921 | | - if is_ok(response): |
922 | | - result = SCAScanDiffOutput.from_dict(response.json()) |
923 | | - else: |
924 | | - result = load_detail(response) |
925 | | - result.status_code = response.status_code |
926 | | - return result |
927 | | - |
928 | 731 | def list_members( |
929 | 732 | self, |
930 | 733 | parameters: Optional[MembersParameters] = None, |
|
0 commit comments