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
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.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
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:
- If
streamed=False
anditerator=False
returnbytes
. This is the default argument values therefore it should be first as it will be used to lookup default arguments. 2. Ifiterator=True
returnIterator[Any]
. This can be combined with bothstreamed=True
andstreamed=False
. 3. Ifstreamed=True
anditerator=False
returnNone
. In this caseaction
argument can be set to a callable that acceptsbytes
.
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