Skip to content

Commit 4518046

Browse files
nejchJohnVillalovos
authored andcommitted
feat(objects): support delete package files API
1 parent 47a5606 commit 4518046

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

docs/gl_objects/packages.rst

+7
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@ List package files for package in project::
8989
package = project.packages.get(1)
9090
package_files = package.package_files.list()
9191

92+
Delete a package file in a project::
93+
94+
package = project.packages.get(1)
95+
file = package.package_files.list()[0]
96+
package.package_files.delete(file.id)
97+
98+
9299
Generic Packages
93100
================
94101

gitlab/v4/objects/packages.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ class ProjectPackageFile(RESTObject):
162162
pass
163163

164164

165-
class ProjectPackageFileManager(ListMixin, RESTManager):
165+
class ProjectPackageFileManager(DeleteMixin, ListMixin, RESTManager):
166166
_path = "/projects/%(project_id)s/packages/%(package_id)s/package_files"
167167
_obj_cls = ProjectPackageFile
168168
_from_parent_attrs = {"project_id": "project_id", "package_id": "id"}

tests/unit/objects/test_packages.py

+18
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,19 @@ def resp_delete_package(no_content):
155155
yield rsps
156156

157157

158+
@pytest.fixture
159+
def resp_delete_package_file(no_content):
160+
with responses.RequestsMock() as rsps:
161+
rsps.add(
162+
method=responses.DELETE,
163+
url="http://localhost/api/v4/projects/1/packages/1/package_files/1",
164+
json=no_content,
165+
content_type="application/json",
166+
status=204,
167+
)
168+
yield rsps
169+
170+
158171
@pytest.fixture
159172
def resp_list_package_files():
160173
with responses.RequestsMock() as rsps:
@@ -229,6 +242,11 @@ def test_list_project_package_files(project, resp_list_package_files):
229242
assert package_files[0].id == 25
230243

231244

245+
def test_delete_project_package_file(project, resp_delete_package_file):
246+
package = project.packages.get(1, lazy=True)
247+
package.package_files.delete(1)
248+
249+
232250
def test_upload_generic_package(tmp_path, project, resp_upload_generic_package):
233251
path = tmp_path / file_name
234252
path.write_text(file_content)

0 commit comments

Comments
 (0)