diff --git a/docs/gl_objects/builds.py b/docs/gl_objects/builds.py index b0d7ea2c7..d73ddd566 100644 --- a/docs/gl_objects/builds.py +++ b/docs/gl_objects/builds.py @@ -103,10 +103,6 @@ def __call__(self, chunk): build.retry() # end retry -# delete -gl.project_builds.delete(build_id, project_id=1) -# or -project.builds.delete(build_id) -# or -build.delete() -# end delete +# erase +build.erase() +# end erase diff --git a/docs/gl_objects/builds.rst b/docs/gl_objects/builds.rst index 1c4c525ad..e4c12583d 100644 --- a/docs/gl_objects/builds.rst +++ b/docs/gl_objects/builds.rst @@ -150,8 +150,8 @@ Cancel/retry a build: :start-after: # retry :end-before: # end retry -Erase a build: +Erase a build (artifacts and trace): .. literalinclude:: builds.py - :start-after: # delete - :end-before: # end delete + :start-after: # erase + :end-before: # end erase diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py index 7b0f7f006..0fc8617e5 100644 --- a/gitlab/exceptions.py +++ b/gitlab/exceptions.py @@ -95,6 +95,10 @@ class GitlabBuildRetryError(GitlabRetryError): pass +class GitlabBuildEraseError(GitlabRetryError): + pass + + class GitlabPipelineRetryError(GitlabRetryError): pass diff --git a/gitlab/objects.py b/gitlab/objects.py index 882163350..2609e1b7d 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -961,6 +961,12 @@ def retry(self, **kwargs): r = self.gitlab._raw_post(url) raise_error_from_response(r, GitlabBuildRetryError, 201) + def erase(self, **kwargs): + """Erase the build (remove build artifacts and trace).""" + url = '/projects/%s/builds/%s/erase' % (self.project_id, self.id) + r = self.gitlab._raw_post(url) + raise_error_from_response(r, GitlabBuildEraseError, 201) + def keep_artifacts(self, **kwargs): """Prevent artifacts from being delete when expiration is set.