- Notifications
You must be signed in to change notification settings - Fork673
Releases: python-gitlab/python-gitlab
v6.1.0
Compare
v6.1.0 (2025-06-28)
This release is published under the LGPL-3.0-or-later License.
Chores
Update to mypy 1.16.0 and resolve issues found (
f734c58
)deps: Update all non-major dependencies (
2bab8d4
)deps: Update all non-major dependencies (
a87ba63
)deps: Update dependency requests to v2.32.4 [security] (
ff579a6
)
Documentation
- Update CONTRIBUTING.rst with policy on issue management (
45dda50
)
Features
api: Add listing user contributed projects (
98c1307
)api: Add support for project tag list filters (
378a836
)const: Add PLANNER_ACCESS constant (
ba6f174
)groups: Add protectedbranches to group class (#3164,
bfd31a8
)
Detailed Changes:v6.0.0...v6.1.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v6.0.0
Compare
v6.0.0 (2025-06-04)
This release is published under the LGPL-3.0-or-later License.
Chores
Add reformat code commit to .git-blame-ignore-revs (
a6ac939
)Reformat code with skip_magic_trailing_comma = true (
2100aa4
)Remove trivial get methods in preparation for generic Get mixin (
edd01a5
)Upgrade to sphinx 8.2.1 and resolve issues (
d0b5ae3
)ci: Replace docs artifact with readthedocs previews (
193c5de
)deps: Update all non-major dependencies (
4fef9f6
)deps: Update all non-major dependencies (
78c0c03
)deps: Update all non-major dependencies (
ee6cba1
)deps: Update all non-major dependencies (
e54516f
)deps: Update all non-major dependencies (
159b958
)deps: Update all non-major dependencies (
af137ca
)deps: Update all non-major dependencies (
1a2a68c
)deps: Update all non-major dependencies (
6ad4ce6
)deps: Update all non-major dependencies (
f166928
)deps: Update all non-major dependencies (
1a95981
)deps: Update all non-major dependencies (
451d951
)deps: Update all non-major dependencies (
41eb95d
)deps: Update all non-major dependencies (
37ff25b
)deps: Update dependency black to v25 (
e61157b
)deps: Update dependency isort to v6 (
46dfc50
)deps: Update dependency jinja2 to v3.1.6 [security] (
52bc585
)deps: Update dependency types-setuptools to v76 (
1299440
)deps: Update dependency types-setuptools to v78 (
20f83e3
)deps: Update dependency types-setuptools to v79 (
2e51cd5
)deps: Update dependency types-setuptools to v80 (
9ba9ac0
)deps: Update gitlab/gitlab-ee docker tag to v17.8.2-ee.0 (#3135,
051ea71
)deps: Update gitlab/gitlab-runner docker tag to v92098577 (#3142,
58e798e
)deps: Update gitlab/gitlab-runner docker tag to v92594782 (#3167,
795f83c
)deps: Update gitlab/gitlab-runner docker tag to v96856197 (#3190,
8c8fd84
)deps: Update pre-commit hook maxbrunet/pre-commit-renovate to v40 (
5a4acab
)deps: Update pre-commit hook psf/black to v25 (
9040dbe
)deps: Update pre-commit hook pycqa/isort to v6 (
c45e445
)deps: Update python-semantic-release/python-semantic-release action to v10 (
f49d54e
)dev: Add option for serving docs locally (
beb2f24
)
Documentation
Use get_all keyword arg instead of all in docstrings (
f62dda7
)Use list(get_all=True) in documentation examples (
f36614f
)api-usage: Fix GitLab API links to the publicly accessible URLs (
f55fa15
)api-usage-graphql: Fix the example graphql query string (
8dbdd7e
)job_token_scope: Fix typo/inconsistency (
203bd92
)
Features
Adds member role methods (
055557e
)api: Add iteration_id as boards create attribute (#3191,
938b0d9
)api: Add support for adding instance deploy keys (
22be96c
)api: Add support for avatar removal (
5edd2e6
)api: Add support for token self-rotation (
da40e09
)api: Listmixin.list typing overload (
6eee494
)api: Make RESTManager generic on RESTObject class (
91c4f18
)api: Make RESTObjectList typing generic (
befba35
)settings: Implement support for 'silent_mode_enabled' (
a9163a9
)
Refactoring
- Use more python3.9 syntax (
4e90c11
)
Testing
- functional: Switch to new runner registration API (
cbc613d
)
Detailed Changes:v5.6.0...v6.0.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.6.0
Compare
v5.6.0 (2025-01-28)
Features
- group: Add support for group level MR approval rules (
304bdd0
)
Detailed Changes:v5.5.0...v5.6.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.5.0
Compare
v5.5.0 (2025-01-28)
Chores
Add deprecation warning for mirror_pull functions (
7f6fd5c
)Relax typing constraints for response action (
f430078
)tests: Catch deprecation warnings (
0c1af08
)
Documentation
Features
- projects: Add pull mirror class (
2411bff
)
Detailed Changes:v5.4.0...v5.5.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.4.0
Compare
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 Ponomarevigor.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 tostart_path
- Fix warning being generated (
0eb5eb0
)
The CI shows a warning. Useget_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
)
Thelatest
gitlab-runner image does not have thegitlab-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 useGitlab.headers
attribute. However, this makes it very concurrently unsafe because theGitlab
object can be shared between multiple requests at the same time.
Instead add a new keyword argumentextra_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 theRange
header:https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
Signed-off-by: Igor Ponomarevigor.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 asProjectJob.artifacts
have return type set toOptional[Union[bytes, Iterator[Any]]]
which means they return eitherNone
orbytes
orIterator[Any]
.
However, the actual return type is determined by the passedstreamed
anditerator
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 Ponomarevigor.ponomarev@collabora.com
- api: Narrow down return type of ProjectFileManager.raw using typing.overload (
36d9b24
)
This is equivalent to the changes in44fd9dc but forProjectFileManager.raw
method that I must have missed in the original commit.
Signed-off-by: Igor Ponomarevigor.ponomarev@collabora.com
Detailed Changes:v5.3.1...v5.4.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.3.1
Compare
v5.3.1 (2025-01-07)
Bug Fixes
api: Allow configuration of keep_base_url from file (
f4f7d7a
)registry-protection: Fix api url (
8c1aaa3
)
Chores
Detailed Changes:v5.3.0...v5.3.1
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.3.0
Compare
v5.3.0 (2024-12-28)
Chores
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
- renovate: Update httpx and respx again (
aa07449
)
Features
- api: Support the new registry protection rule endpoint (
40af1c8
)
Detailed Changes:v5.2.0...v5.3.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.2.0
Compare
v5.2.0 (2024-12-17)
Chores
deps: Update all non-major dependencies (
1e02f23
)deps: Update all non-major dependencies (
6532e8c
)deps: Update all non-major dependencies (
8046387
)deps: Update codecov/codecov-action action to v5 (
735efff
)deps: Update dependency commitizen to v4 (
9306362
)deps: Update gitlab/gitlab-ee docker tag to v17.6.1-ee.0 (#3053,
f2992ae
)
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 pre-commit hook commitizen-tools/commitizen to v4 (
a8518f1
)docs: Fix CHANGELOG tracebacks codeblocks (
9fe372a
)
With v5.1.0 CHANGELOG.md was updated that mangled v1.10.0 triple backtick codeblock Traceback output that made sphinx fail [1] with a non-zero return code.
The resulting docs appears to be processes as text after the failing line [2]. While reviewing other backtick codeblocks fix v1.8.0 [3] to the original traceback.
[1]https://github.com/python-gitlab/python-gitlab/actions/runs/12060608158/job/33631303063#step:5:204 [2]https://python-gitlab.readthedocs.io/en/v5.1.0/changelog.html#v1-10-0-2019-07-22 [3]https://python-gitlab.readthedocs.io/en/v5.0.0/changelog.html#id258
- renovate: Pin httpx until respx is fixed (
b70830d
)
Documentation
Features
- feat(api): Added project template classes to templates.py
- feat(api): Added project template managers to Project in project.py
- docs(merge_requests): Add example of creating mr with description template
- test(templates): Added unit tests for templates
- docs(templates): added section for project templates
- graphql: Add async client (
288f39c
)
Detailed Changes:v5.1.0...v5.2.0
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.1.0
Compare
v5.1.0 (2024-11-28)
Chores
deps: Update all non-major dependencies (
9061647
)deps: Update gitlab/gitlab-ee docker tag to v17.6.0-ee.0 (#3044,
79113d9
)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
deps: Update all non-major dependencies (
62da12a
)deps: Update gitlab/gitlab-ee docker tag to v17.5.2-ee.0 (#3041,
d39129b
)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
deps: Update pre-commit hook maxbrunet/pre-commit-renovate to v39 (
11458e0
)deps: Update all non-major dependencies (
7e62136
)deps: Update dependency pytest-cov to v6 (
ffa88b3
)deps: Update all non-major dependencies (
d4b52e7
)deps: Update all non-major dependencies (
541a7e3
)deps: Update gitlab/gitlab-ee docker tag to v17.5.1-ee.0 (
8111f49
)
Features
api: Get single project approval rule (
029695d
)cli: Enable token rotation via CLI (
0cb8171
)const: Add new Planner role to access levels (
bdc8852
)api: Support list and delete for group service accounts (#2963,
499243b
)files: Add support for more optional flags (
f51cd52
)
GitLab's Repository Files API supports additional flags that weren't implemented before. Notably, the "start_branch" flag is particularly useful, as previously one had to use the "project-branch" command alongside "project-file" to add a file on a separate branch.
Assets2
Uh oh!
There was an error while loading.Please reload this page.
v5.0.0
Compare
v5.0.0 (2024-10-28)
Breaking
- feat: remove support for Python 3.8, require 3.9 or higher (#3005)
Python 3.8 is End-of-Life (EOL) as of 2024-10 as stated in
https://devguide.python.org/versions/ and
https://peps.python.org/pep-0569/#lifespan
By dropping support for Python 3.8 and requiring Python 3.9 or higher
it allows python-gitlab to take advantage of new features in Python
3.9, which are documented at:
https://docs.python.org/3/whatsnew/3.9.html
Closes:#2968
BREAKING CHANGE: As of python-gitlab 5.0.0, Python 3.8 is no longer
supported. Python 3.9 or higher is required. (9734ad4
)
Bug Fixes
- fix(api): set _repr_attr for project approval rules to name attr (#3011)
Co-authored-by: Patrick Evanspatrick.evans@gehealthcare.com (1a68f1c
)
Chores
- chore: add testing of Python 3.14
Also fixannotations not working in Python 3.14 by using the
annotation on the 'class' instead of on the 'instance'
chore(deps): update dependency ubuntu to v24 (
6fda15d
)chore(deps): update all non-major dependencies (
1e4326b
)chore(deps): update gitlab/gitlab-ee docker tag to v17.5.0-ee.0 (
c02a392
)chore: add Python 3.13 as supported (#3012)
Mark that Python 3.13 is supported.
Use Python 3.13 for the Mac and Windows tests.
Also remove the 'py38' tox environment. We no longer support Python 3.8. (b565e78
)
- chore: remove "v3" question from issue template (#3017)
python-gitlab hasn't supported the GitLab v3 API since 2018. The last
version of python-gitlab to support it was v1.4
Support was removed in:
commitfe89b94
Author: Gauvain Pocentekgauvain@pocentek.net
Date: Sat May 19 17:10:08 2018 +0200
Drop API v3 supportDrop the code, the tests, and update the documentation. ([`482f2fe`](https://github.com/python-gitlab/python-gitlab/commit/482f2fe6ccae9239b3a010a70969d8d887cdb6b6))
chore(deps): update all non-major dependencies (
b3834dc
)chore(deps): update gitlab/gitlab-ee docker tag to v17.4.2-ee.0 (
1cdfe40
)
Documentation
Testing
- test: add test for
to_json()
method
This should get us to 100% test coverage ongitlab/base.py
(f4bfe19
)
Assets2
Uh oh!
There was an error while loading.Please reload this page.