diff --git a/dependencytrack/__init__.py b/dependencytrack/__init__.py index 9db6e07..dd40fca 100644 --- a/dependencytrack/__init__.py +++ b/dependencytrack/__init__.py @@ -69,6 +69,10 @@ def search(self, query): :raises DependencyTrackApiError: if the REST call failed """ response = self.session.get(self.api + f"/search/{query}", params=self.paginated_param_payload) + + print("response" + response.text) + print("search " + self.api + f"/search/{query}") + if response.status_code == 200: return response.json()['results'] else: diff --git a/dependencytrack/projects.py b/dependencytrack/projects.py index 8aecac1..604c65b 100644 --- a/dependencytrack/projects.py +++ b/dependencytrack/projects.py @@ -1,6 +1,6 @@ # Copyright 2020 Alvin Chen sonoma001@gmail.com # SPDX-License-Identifier: GPL-2.0+ - +import io import logging from .exceptions import AuthorizationError, DependencyTrackApiError @@ -22,6 +22,7 @@ def list_projects(self): :raises DependencyTrackApiError: if the REST call failed """ response = self.session.get(self.api + "/project", params=self.paginated_param_payload) + if response.status_code == 200: return response.json() else: @@ -85,3 +86,33 @@ def get_project(self, uuid): description = f"Error while getting project {uuid}" raise DependencyTrackApiError(description, response) + def get_project_vdr(self, uuid, name, version): + """Get vdr file of project. + + example command line method: + curl -H + 'X-Api-Key: XrnGcCSFoCzhHFX7vWu0hD4IisDeFrQl' + -H 'Accept application/vnd.cyclonedx+xml' + 'http://192.168.1.24:8081/api/v1/bom/cyclonedx/project/b9213f2b-c073-4b24-b03e-30ea4e65664f?variant=vdr' + API Endpoint: GET /v1/bom/cyclonedx/project/{project_uuid} + + :param uuid: the ID of the project to be analysed + :type uuid: uuid string + :return: the requested VDR data + :rtype: a file + :raises DependencyTrackApiError: if the REST call failed + """ + response = self.session.get(self.api + f"/bom/cyclonedx/project/{uuid}" + "?variant=vdr", \ + params=self.paginated_param_payload) + with io.open((name + "_" + version + "_VDR.json"),"w",encoding='utf-8') as output_file_handle: + print(response.text, file=output_file_handle) + + if response.status_code == 200: + return response.json() + else: + description = f"Error while getting project {uuid}" + raise DependencyTrackApiError(description, response) + + + + diff --git a/dependencytrack/setup.py b/dependencytrack/setup.py new file mode 100644 index 0000000..ba0e529 --- /dev/null +++ b/dependencytrack/setup.py @@ -0,0 +1,13 @@ +import setuptools + +setuptools.setup( + name='dependency_track_api', + version='0.0.1', + packages=setuptools.find_packages(), + url='', + license='Apache', + author='Robert Smigielski', + author_email='ptdropper@gmail.com', + description='Dependency Track API', + python_requires='>=3.6', +)