Skip to content

Commit 04aa977

Browse files
author
Florian Perucki
committed
chore(sca,iac): remove code
1 parent 6cba0a2 commit 04aa977

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+3
-1557
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
### Removed
2+
3+
- Removed SCA and IaC code

Diff for: pygitguardian/client.py

-197
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,6 @@
1818
DEFAULT_TIMEOUT,
1919
MAXIMUM_PAYLOAD_SIZE,
2020
)
21-
from .iac_models import (
22-
IaCDiffScanResult,
23-
IaCScanParameters,
24-
IaCScanParametersSchema,
25-
IaCScanResult,
26-
)
2721
from .models import (
2822
APITokensResponse,
2923
CreateInvitation,
@@ -66,12 +60,6 @@
6660
UpdateTeamSource,
6761
)
6862
from .models_utils import CursorPaginatedResponse
69-
from .sca_models import (
70-
ComputeSCAFilesResult,
71-
SCAScanAllOutput,
72-
SCAScanDiffOutput,
73-
SCAScanParameters,
74-
)
7563

7664

7765
logger = logging.getLogger(__name__)
@@ -355,8 +343,6 @@ def post(
355343
extra_headers: Optional[Dict[str, str]] = None,
356344
**kwargs: Any,
357345
) -> 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
360346
return self.request(
361347
"post",
362348
endpoint=endpoint,
@@ -695,100 +681,6 @@ def create_honeytoken_with_context(
695681
result.status_code = resp.status_code
696682
return result
697683

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-
792684
def read_metadata(self) -> Optional[Detail]:
793685
"""
794686
Fetch server preferences and store them in `self.secret_scan_preferences`.
@@ -836,95 +728,6 @@ def create_jwt(
836728
obj.status_code = resp.status_code
837729
return obj
838730

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-
928731
def list_members(
929732
self,
930733
parameters: Optional[MembersParameters] = None,

Diff for: pygitguardian/iac_models.py

-96
This file was deleted.

0 commit comments

Comments
 (0)