|
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