diff --git a/sonarqube/rest/projects.py b/sonarqube/rest/projects.py index 46d35de..238d6c1 100644 --- a/sonarqube/rest/projects.py +++ b/sonarqube/rest/projects.py @@ -3,6 +3,8 @@ # @Author: Jialiang Shi from sonarqube.utils.rest_client import RestClient from sonarqube.utils.config import ( + API_PROJECTS_BULK_DELETE_ENDPOINT, + API_PROJECTS_DELETE_ENDPOINT, API_PROJECTS_SEARCH_ENDPOINT, API_PROJECTS_CREATE_PROJECT_ENDPOINT ) @@ -63,6 +65,7 @@ def search_projects( :return: """ + @POST(API_PROJECTS_CREATE_PROJECT_ENDPOINT) def create_project( self, @@ -80,4 +83,36 @@ def create_project( Possible values * private * public - """ \ No newline at end of file + """ + + @POST(API_PROJECTS_DELETE_ENDPOINT) + def delete_project(self, key): + """ + SINCE 5.2 + Delete a project + + :param key: Project key + :return: + """ + + @POST(API_PROJECTS_BULK_DELETE_ENDPOINT) + def bulk_delete_project( + self, + analyzedBefore=None, + onProvisionedOnly=False, + projects=None, q=None, + qualifiers=None): + """ + SINCE 5.2 + Delete one or several projects. + + :param analyzedBefore: Filter the projects for which last analysis of any branch is older than the given date (exclusive). + Either a date (server timezone) or datetime can be provided. + :param onProvisionedOnly: Filter the projects that are provisioned + :param projects: Comma-separated list of project keys + :param q: Limit to: + component names that contain the supplied string + component keys that contain the supplied string + :param qualifiers: Comma-separated list of component qualifiers. Filter the results with the specified qualifiers + :return: + """ diff --git a/sonarqube/utils/config.py b/sonarqube/utils/config.py index d033111..8c01382 100644 --- a/sonarqube/utils/config.py +++ b/sonarqube/utils/config.py @@ -1,5 +1,7 @@ API_COMPONENTS_SHOW_ENDPOINT = "/api/components/show" +API_PROJECTS_BULK_DELETE_ENDPOINT = "/api/projects/bulk_delete" +API_PROJECTS_DELETE_ENDPOINT = "/api/projects/delete" API_PROJECTS_SEARCH_ENDPOINT = "/api/projects/search" API_PROJECTS_CREATE_PROJECT_ENDPOINT = "/api/projects/create"