diff --git a/README.md b/README.md index 4bb2410..d2fa3cb 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,8 @@ + [Create Issue Event](#create-issue-event) + [Update Issue Event](#update-issue-event) + [Get Issue Event](#get-issue-event) + * [SCANNING](#scanning) + + [Scan Artifact](#scan-artifact) # Install @@ -203,3 +205,11 @@ response = issues.get_issue_event("test-2023-0221") response = issues.get_issue_event("test-2023-0221", api_version="v2") print(response.json()) ``` + +## SCANNING +### Scan Artifact +```python +scanning = xray_rest_client.scanning +response = scanning.scan_artifact("docker://image_name:image_tag") +print(response.json()) +``` diff --git a/xray/__init__.py b/xray/__init__.py index 1d16dd8..90be433 100644 --- a/xray/__init__.py +++ b/xray/__init__.py @@ -5,6 +5,7 @@ from xray.components import XrayComponents from xray.summary import XraySummary from xray.issues import XrayIssues +from xray.scanning import XrayScanning class XrayRestClient(object): @@ -28,3 +29,7 @@ def summary(self): @property def issues(self): return XrayIssues(base_url=self.base_url, session=self._session) + + @property + def scanning(self): + return XrayScanning(base_url=self.base_url, session=self._session) diff --git a/xray/scanning.py b/xray/scanning.py new file mode 100644 index 0000000..c4966f5 --- /dev/null +++ b/xray/scanning.py @@ -0,0 +1,26 @@ +from xray.utils.http import RestApiAccessor + + +class XrayScanning(RestApiAccessor): + """ + Xray REST API: SCANNING + See: https://www.jfrog.com/confluence/display/JFROG/Xray+REST+API#XrayRESTAPI-SCANNING + """ + def scan_artifact(self, component_id): + """ + Invokes scanning of an artifact + :param component_id: sample: docker://image_name:image_tag + :return: + """ + url = self.base_url + "/api/v1/scanArtifact" + json_data = { + "componentID": component_id + } + + response = self.rest_post( + url, + json_data=json_data + ) + return response + +