Skip to content

Upload of Generic Package assumes "message" in server's response #2557

Closed
@paisleyrob

Description

@paisleyrob

Description of the problem, including code/CLI snippet

    project = gl.projects.get(id=project_id)
    result = project.generic_packages.upload(
        file_name=filename,
        package_name=name,
        package_version=version,
        path=upload,
        query_data={"select": "package_file"},
    )

Crashes with:

Traceback (most recent call last):
  File "/w/docker/gitlab-tools.py", line 396, in <module>
    args[0].func(*args)
  File "/w/docker/gitlab-tools.py", line 261, in upload_generic_package
    result = project.generic_packages.upload(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/gitlab/cli.py", line 71, in wrapped_f
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/gitlab/exceptions.py", line 336, in wrapped_f
    return f(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/gitlab/v4/objects/packages.py", line 91, in upload
    "message": server_data["message"],
               ~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'message'

Expected Behavior

Return the JSON from GitLab either instead of this response, or as a server_data key in this response.

Actual Behavior

KeyError: 'message'

Specifications

  • python-gitlab version: 3.14.0
  • API version you are using (v3/v4): v4
  • Gitlab server version (or gitlab.com): 15.9.4-ee

Suggested diff something like:

--- gitlab/v4/objects/packages.py 2023-04-27 11:56:35.718464491 -0400
+++ gitlab/v4/objects/packages.py.new     2023-04-27 11:55:20.213449771 -0400
@@ -88,7 +88,8 @@
                 "package_version": package_version,
                 "file_name": file_name,
                 "path": path,
-                "message": server_data["message"],
+                "message": server_data.get("message"),
+                "server_data": server_data,
             },
         )

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions