Skip to content

v5.4.0

Compare
Choose a tag to compare
@nejch nejch released this 28 Jan 00:55
· 85 commits to main since this release

v5.4.0 (2025-01-28)

Bug Fixes

  • api: Make type ignores more specific where possible (e3cb806)

Instead of using absolute ignore # type: ignore use a more specific ignores like # type: ignore[override]. This might help in the future where a new bug might be introduced and get ignored by a general ignore comment but not a more specific one.

Signed-off-by: Igor Ponomarev igor.ponomarev@collabora.com

  • api: Return the new commit when calling cherry_pick (de29503)

  • files: Add optional ref parameter for cli project-file raw (#3032) (22f03bd)

The ef parameter was removed in python-gitlab v4.8.0. This will add ef back as an optional parameter for the project-file raw cli command.

Chores

  • Fix missing space in deprecation message (ba75c31)

  • Fix pytest deprecation (95db680)

pytest has changed the function argument name to start_path

  • Fix warning being generated (0eb5eb0)

The CI shows a warning. Use get_all=False to resolve issue.

  • Resolve DeprecationWarning message in CI run (accd5aa)

Catch the DeprecationWarning in our test, as we expect it.

  • ci: Set a 30 minute timeout for 'functional' tests (e8d6953)

Currently the functional API test takes around 17 minutes to run. And the functional CLI test takes around 12 minutes to run.

Occasionally a job gets stuck and will sit until the default 360 minutes job timeout occurs.

Now have a 30 minute timeout for the 'functional' tests.

  • deps: Update all non-major dependencies (939505b)

  • deps: Update all non-major dependencies (cbd4263)

  • deps: Update gitlab (#3088, 9214b83)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

  • deps: Update gitlab/gitlab-ee docker tag to v17.7.1-ee.0 (#3082, 1e95944)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

  • deps: Update mypy to 1.14 and resolve issues (671e711)

mypy 1.14 has a change to Enum Membership Semantics: https://mypy.readthedocs.io/en/latest/changelog.html

Resolve the issues with Enum and typing, and update mypy to 1.14

  • test: Prevent 'job_with_artifact' fixture running forever (e4673d8)

Previously the 'job_with_artifact' fixture could run forever. Now give it up to 60 seconds to complete before failing.

Continuous Integration

  • Use gitlab-runner:v17.7.1 for the CI (2dda9dc)

The latest gitlab-runner image does not have the gitlab-runner user and it causes our tests to fail.

Closes: #3091

Features

  • api: Add argument that appends extra HTTP headers to a request (fb07b5c)

Currently the only way to manipulate the headers for a request is to use Gitlab.headers attribute. However, this makes it very concurrently unsafe because the Gitlab object can be shared between multiple requests at the same time.

Instead add a new keyword argument extra_headers which will update the headers dictionary with new values just before the request is sent.

For example, this can be used to download a part of a artifacts file using the Range header: https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests

Signed-off-by: Igor Ponomarev igor.ponomarev@collabora.com

  • api: Add support for external status check (175b355)

  • api: Narrow down return type of download methods using typing.overload (44fd9dc)

Currently the download methods such as ProjectJob.artifacts have return type set to Optional[Union[bytes, Iterator[Any]]] which means they return either None or bytes or Iterator[Any].

However, the actual return type is determined by the passed streamed and iterator arguments. Using @typing.overload decorator it is possible to return a single type based on the passed arguments.

Add overloads in the following order to all download methods:

  1. If streamed=False and iterator=False return bytes. This is the default argument values therefore it should be first as it will be used to lookup default arguments. 2. If iterator=True return Iterator[Any]. This can be combined with both streamed=True and streamed=False. 3. If streamed=True and iterator=False return None. In this case action argument can be set to a callable that accepts bytes.

Signed-off-by: Igor Ponomarev igor.ponomarev@collabora.com

  • api: Narrow down return type of ProjectFileManager.raw using typing.overload (36d9b24)

This is equivalent to the changes in 44fd9dc but for ProjectFileManager.raw method that I must have missed in the original commit.

Signed-off-by: Igor Ponomarev igor.ponomarev@collabora.com


Detailed Changes: v5.3.1...v5.4.0

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy