From 1001d934e8c36cc3b14408b46b41030bf705a294 Mon Sep 17 00:00:00 2001 From: Nick Brown Date: Tue, 20 Jan 2026 10:40:31 +0000 Subject: [PATCH 01/27] fix: file save start_branch as a body attribute Passing `start_branch` as kwargs results in it being passed as query argument to the API: ``` send: b'PUT /api/v4/projects/12345678/repository/files/readme.txt?start_branch=main send: b'{"file_path": "readme.txt", "branch": "new_branch", "content": "Modified contents", "commit_message": "File was modified for this new branch"}' ``` which results in error being returned: ``` {"message":"You can only create or edit files when you are on a branch"} ``` It should instead be sent a body attribute, which succeeds in creating the branch during the save. To be sent as body attribute it must be specified as concrete function argument and class attribute instead of just using kwargs Closes: #3318 --- gitlab/v4/objects/files.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/gitlab/v4/objects/files.py b/gitlab/v4/objects/files.py index 757d16eeb..3bcf931a2 100644 --- a/gitlab/v4/objects/files.py +++ b/gitlab/v4/objects/files.py @@ -29,6 +29,7 @@ class ProjectFile(SaveMixin, ObjectDeleteMixin, RESTObject): file_path: str manager: ProjectFileManager content: str # since the `decode()` method uses `self.content` + start_branch: str | None = None def decode(self) -> bytes: """Returns the decoded content of the file. @@ -41,7 +42,11 @@ def decode(self) -> bytes: # NOTE(jlvillal): Signature doesn't match SaveMixin.save() so ignore # type error def save( # type: ignore[override] - self, branch: str, commit_message: str, **kwargs: Any + self, + branch: str, + commit_message: str, + start_branch: str | None = None, + **kwargs: Any, ) -> None: """Save the changes made to the file to the server. @@ -50,6 +55,7 @@ def save( # type: ignore[override] Args: branch: Branch in which the file will be updated commit_message: Message to send with the commit + start_branch: Name of the branch to start the new branch from **kwargs: Extra options to send to the server (e.g. sudo) Raises: @@ -58,6 +64,7 @@ def save( # type: ignore[override] """ self.branch = branch self.commit_message = commit_message + self.start_branch = start_branch self.file_path = utils.EncodedId(self.file_path) super().save(**kwargs) From 4187a69420dd7b2e60c2d833ab246aec745d35cb Mon Sep 17 00:00:00 2001 From: Nick Brown Date: Tue, 20 Jan 2026 10:50:12 +0000 Subject: [PATCH 02/27] fix: actually define project repr_attr While `_repr_attr=` is given to specify the attribute to use to repr the object, that object attribute itself is not actually defined, so tools like PyRight/MyPy complain that: ``` Type of "path_with_namespace" is unknown ``` --- gitlab/v4/objects/projects.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gitlab/v4/objects/projects.py b/gitlab/v4/objects/projects.py index 035b9b861..751ac4c1f 100644 --- a/gitlab/v4/objects/projects.py +++ b/gitlab/v4/objects/projects.py @@ -178,6 +178,8 @@ class Project( _repr_attr = "path_with_namespace" _upload_path = "/projects/{id}/uploads" + path_with_namespace: str + access_tokens: ProjectAccessTokenManager accessrequests: ProjectAccessRequestManager additionalstatistics: ProjectAdditionalStatisticsManager From e7d1fbba003a040615dd8120c553701b668285dd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 23 Jan 2026 21:43:05 +0000 Subject: [PATCH 03/27] chore(deps): update dependency wheel to v0.46.2 [security] --- requirements-test.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-test.txt b/requirements-test.txt index e1e2b5d81..4a253eb6b 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -10,4 +10,4 @@ PyYaml==6.0.3 responses==0.25.8 respx==0.22.0 trio==0.32.0 -wheel==0.45.1 +wheel==0.46.2 From 3bcc42a694afbf9f25c0b107d817342cf0379fd4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 01:59:53 +0000 Subject: [PATCH 04/27] chore(deps): update gitlab/gitlab-ee docker tag to v18.8.2-ee.0 (#3334) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- tests/functional/fixtures/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional/fixtures/.env b/tests/functional/fixtures/.env index 617457fdc..c51423c9d 100644 --- a/tests/functional/fixtures/.env +++ b/tests/functional/fixtures/.env @@ -1,4 +1,4 @@ GITLAB_IMAGE=gitlab/gitlab-ee -GITLAB_TAG=18.8.0-ee.0 +GITLAB_TAG=18.8.2-ee.0 GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner GITLAB_RUNNER_TAG=96856197 From ad43b763acdcd8d7db832972921fb071ea0a826f Mon Sep 17 00:00:00 2001 From: "John L. Villalovos" Date: Mon, 26 Jan 2026 08:05:14 -0800 Subject: [PATCH 05/27] chore(precommit): update dependency black to v26 Prior commit 39975d5cdae48e2f38cffa58057a4469c855e90e updated black to v26 but did not update `.pre-commit-config.yaml`. This resolves that. --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ef93b5552..36c90ae7c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_language_version: repos: - repo: https://github.com/psf/black - rev: 25.12.0 + rev: 26.1.0 hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen From 4440d0ca0f9d31acf80db7f26b567bba206f6ebc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 26 Jan 2026 16:24:20 +0000 Subject: [PATCH 06/27] chore(deps): update all non-major dependencies --- .github/workflows/docs.yml | 8 ++++---- .github/workflows/lint.yml | 4 ++-- .github/workflows/pre_commit.yml | 4 ++-- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 20 ++++++++++---------- .pre-commit-config.yaml | 2 +- requirements-lint.txt | 4 ++-- requirements-test.txt | 4 ++-- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 90f7d3fd5..899f8fabf 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -22,9 +22,9 @@ jobs: sphinx: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 - name: Set up Python - uses: actions/setup-python@v6.1.0 + uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - name: Install dependencies @@ -37,9 +37,9 @@ jobs: twine-check: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 - name: Set up Python - uses: actions/setup-python@v6.1.0 + uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - name: Install dependencies diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 01bee8a33..7a0dd38dc 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -22,10 +22,10 @@ jobs: lint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 with: fetch-depth: 0 - - uses: actions/setup-python@v6.1.0 + - uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - run: pip install --upgrade tox diff --git a/.github/workflows/pre_commit.yml b/.github/workflows/pre_commit.yml index 4be228d66..993606750 100644 --- a/.github/workflows/pre_commit.yml +++ b/.github/workflows/pre_commit.yml @@ -29,8 +29,8 @@ jobs: pre_commit: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6.0.1 - - uses: actions/setup-python@v6.1.0 + - uses: actions/checkout@v6.0.2 + - uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - name: install tox diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ff04716dd..01829b244 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: id-token: write environment: pypi.org steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 with: fetch-depth: 0 token: ${{ secrets.RELEASE_GITHUB_TOKEN }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 0f2af115e..397559d31 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,9 +46,9 @@ jobs: version: "3.14" toxenv: py314,smoke steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 - name: Set up Python ${{ matrix.python.version }} - uses: actions/setup-python@v6.1.0 + uses: actions/setup-python@v6.2.0 with: python-version: ${{ matrix.python.version }} - name: Install dependencies @@ -65,9 +65,9 @@ jobs: matrix: toxenv: [api_func_v4, cli_func_v4] steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 - name: Set up Python - uses: actions/setup-python@v6.1.0 + uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - name: Install dependencies @@ -87,9 +87,9 @@ jobs: coverage: runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v6.1.0 + uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - name: Install dependencies @@ -111,8 +111,8 @@ jobs: runs-on: ubuntu-latest name: Python wheel steps: - - uses: actions/checkout@v6.0.1 - - uses: actions/setup-python@v6.1.0 + - uses: actions/checkout@v6.0.2 + - uses: actions/setup-python@v6.2.0 with: python-version: "3.14" - name: Install dependencies @@ -129,9 +129,9 @@ jobs: runs-on: ubuntu-latest needs: [dist] steps: - - uses: actions/checkout@v6.0.1 + - uses: actions/checkout@v6.0.2 - name: Set up Python - uses: actions/setup-python@v6.1.0 + uses: actions/setup-python@v6.2.0 with: python-version: '3.14' - uses: actions/download-artifact@v7.0.0 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 36c90ae7c..1db179a02 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen - rev: v4.11.6 + rev: v4.12.1 hooks: - id: commitizen stages: [commit-msg] diff --git a/requirements-lint.txt b/requirements-lint.txt index c559885b2..dc670d57e 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,7 +1,7 @@ -r requirements.txt argcomplete==2.0.0 black==26.1.0 -commitizen==4.11.6 +commitizen==4.12.1 flake8==7.3.0 isort==7.0.0 mypy==1.19.1 @@ -11,4 +11,4 @@ responses==0.25.8 respx==0.22.0 types-PyYAML==6.0.12.20250915 types-requests==2.32.4.20260107 -types-setuptools==80.9.0.20251223 +types-setuptools==80.10.0.20260124 diff --git a/requirements-test.txt b/requirements-test.txt index 4a253eb6b..875329563 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,7 +1,7 @@ -r requirements.txt anyio==4.12.1 build==1.4.0 -coverage==7.13.1 +coverage==7.13.2 pytest-console-scripts==1.4.1 pytest-cov==7.0.0 pytest-github-actions-annotate-failures==0.3.0 @@ -10,4 +10,4 @@ PyYaml==6.0.3 responses==0.25.8 respx==0.22.0 trio==0.32.0 -wheel==0.46.2 +wheel==0.46.3 From 425d0d5787f986ebbd980f4a8f638662132aa0bf Mon Sep 17 00:00:00 2001 From: semantic-release Date: Wed, 28 Jan 2026 01:22:03 +0000 Subject: [PATCH 07/27] chore: release v8.0.0 --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ gitlab/_version.py | 2 +- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef85c5019..dca7acc04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,34 @@ All versions below are listed in reverse chronological order. +## v8.0.0 (2026-01-28) + +### Bug Fixes + +- Actually define project repr_attr + ([`4187a69`](https://github.com/python-gitlab/python-gitlab/commit/4187a69420dd7b2e60c2d833ab246aec745d35cb)) + +- File save start_branch as a body attribute + ([`1001d93`](https://github.com/python-gitlab/python-gitlab/commit/1001d934e8c36cc3b14408b46b41030bf705a294)) + +### Chores + +- **black**: Run black v26 on code + ([`4a8d82b`](https://github.com/python-gitlab/python-gitlab/commit/4a8d82bec8f09fa142e8134589a0f40ef4f9c3be)) + +- **precommit**: Update dependency black to v26 + ([`ad43b76`](https://github.com/python-gitlab/python-gitlab/commit/ad43b763acdcd8d7db832972921fb071ea0a826f)) + +### Features + +- **graphql**: Update to gql 4.0.0 + ([`6f0da67`](https://github.com/python-gitlab/python-gitlab/commit/6f0da671b4586b23232ae89d57622254fa8a7945)) + +### Breaking Changes + +- **graphql**: GraphQL.execute() no longer accepts graphql.Source + + ## v7.1.0 (2025-12-28) ### Bug Fixes diff --git a/gitlab/_version.py b/gitlab/_version.py index 8305f3a6c..cf0655911 100644 --- a/gitlab/_version.py +++ b/gitlab/_version.py @@ -3,4 +3,4 @@ __email__ = "gauvainpocentek@gmail.com" __license__ = "LGPL3" __title__ = "python-gitlab" -__version__ = "7.1.0" +__version__ = "8.0.0" From b117ee3d139f422e463ebeb5007517a2052af8a4 Mon Sep 17 00:00:00 2001 From: malmor <62105800+malmor@users.noreply.github.com> Date: Wed, 28 Jan 2026 13:06:43 +0100 Subject: [PATCH 08/27] feat(api): add support for sort filter in runner jobs This commits allows users to configure the 'sort' filter as defined in [1], so that one can fetch the most recent jobs first. [1]: https://docs.gitlab.com/api/runners/#list-all-jobs-processed-by-a-runner --- gitlab/v4/objects/runners.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitlab/v4/objects/runners.py b/gitlab/v4/objects/runners.py index e4a37e8e3..87b6a8b3c 100644 --- a/gitlab/v4/objects/runners.py +++ b/gitlab/v4/objects/runners.py @@ -38,7 +38,7 @@ class RunnerJobManager(ListMixin[RunnerJob]): _path = "/runners/{runner_id}/jobs" _obj_cls = RunnerJob _from_parent_attrs = {"runner_id": "id"} - _list_filters = ("status",) + _list_filters = ("status", "sort") class Runner(SaveMixin, ObjectDeleteMixin, RESTObject): From 25316d0550afbdd37b600e79070815c915c65524 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 01:15:41 +0000 Subject: [PATCH 09/27] chore(deps): update all non-major dependencies --- .pre-commit-config.yaml | 4 ++-- requirements-lint.txt | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1db179a02..4adfdbb24 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen - rev: v4.12.1 + rev: v4.13.0 hooks: - id: commitizen stages: [commit-msg] @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 42.84.0 + rev: 42.95.1 hooks: - id: renovate-config-validator diff --git a/requirements-lint.txt b/requirements-lint.txt index dc670d57e..a70fb2c96 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,7 +1,7 @@ -r requirements.txt argcomplete==2.0.0 black==26.1.0 -commitizen==4.12.1 +commitizen==4.13.0 flake8==7.3.0 isort==7.0.0 mypy==1.19.1 From 0086b13cd6c119c56c43ae1aaf49247a838d133d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Feb 2026 01:37:23 +0000 Subject: [PATCH 10/27] chore(deps): update pre-commit hook maxbrunet/pre-commit-renovate to v43 --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4adfdbb24..0e141fe8c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 42.95.1 + rev: 43.0.9 hooks: - id: renovate-config-validator From 6151671b2cf11b9c86e8463005ab938162d4ba89 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 00:44:53 +0000 Subject: [PATCH 11/27] chore(deps): update all non-major dependencies --- .pre-commit-config.yaml | 4 ++-- requirements-lint.txt | 2 +- requirements-test.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0e141fe8c..10e0cf70a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen - rev: v4.13.0 + rev: v4.13.6 hooks: - id: commitizen stages: [commit-msg] @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 43.0.9 + rev: 43.4.3 hooks: - id: renovate-config-validator diff --git a/requirements-lint.txt b/requirements-lint.txt index a70fb2c96..dad6b4822 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,7 +1,7 @@ -r requirements.txt argcomplete==2.0.0 black==26.1.0 -commitizen==4.13.0 +commitizen==4.13.6 flake8==7.3.0 isort==7.0.0 mypy==1.19.1 diff --git a/requirements-test.txt b/requirements-test.txt index 875329563..64f2077d6 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,7 +1,7 @@ -r requirements.txt anyio==4.12.1 build==1.4.0 -coverage==7.13.2 +coverage==7.13.3 pytest-console-scripts==1.4.1 pytest-cov==7.0.0 pytest-github-actions-annotate-failures==0.3.0 From f82ae24c82a8349f139d416ec9b494562abb6b1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Feb 2026 02:22:29 +0000 Subject: [PATCH 12/27] chore(deps): update gitlab/gitlab-ee docker tag to v18.8.3-ee.0 (#3341) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- tests/functional/fixtures/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional/fixtures/.env b/tests/functional/fixtures/.env index c51423c9d..feaeae8b3 100644 --- a/tests/functional/fixtures/.env +++ b/tests/functional/fixtures/.env @@ -1,4 +1,4 @@ GITLAB_IMAGE=gitlab/gitlab-ee -GITLAB_TAG=18.8.2-ee.0 +GITLAB_TAG=18.8.3-ee.0 GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner GITLAB_RUNNER_TAG=96856197 From de116f90294c93ebef321c981a164a6648bbecf8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 02:09:44 +0000 Subject: [PATCH 13/27] chore(deps): update gitlab/gitlab-ee docker tag to v18.8.4-ee.0 (#3348) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- tests/functional/fixtures/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional/fixtures/.env b/tests/functional/fixtures/.env index feaeae8b3..ed558270b 100644 --- a/tests/functional/fixtures/.env +++ b/tests/functional/fixtures/.env @@ -1,4 +1,4 @@ GITLAB_IMAGE=gitlab/gitlab-ee -GITLAB_TAG=18.8.3-ee.0 +GITLAB_TAG=18.8.4-ee.0 GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner GITLAB_RUNNER_TAG=96856197 From 4e01d33cc85cff1ab6fac28ddc6fa52ade0a83b8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Feb 2026 06:03:18 +0000 Subject: [PATCH 14/27] chore(deps): update all non-major dependencies --- .pre-commit-config.yaml | 4 ++-- requirements-lint.txt | 2 +- requirements-test.txt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 10e0cf70a..8572ab66f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen - rev: v4.13.6 + rev: v4.13.7 hooks: - id: commitizen stages: [commit-msg] @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 43.4.3 + rev: 43.15.2 hooks: - id: renovate-config-validator diff --git a/requirements-lint.txt b/requirements-lint.txt index dad6b4822..0ab2b5aa7 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,7 +1,7 @@ -r requirements.txt argcomplete==2.0.0 black==26.1.0 -commitizen==4.13.6 +commitizen==4.13.7 flake8==7.3.0 isort==7.0.0 mypy==1.19.1 diff --git a/requirements-test.txt b/requirements-test.txt index 64f2077d6..57b91c186 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -1,7 +1,7 @@ -r requirements.txt anyio==4.12.1 build==1.4.0 -coverage==7.13.3 +coverage==7.13.4 pytest-console-scripts==1.4.1 pytest-cov==7.0.0 pytest-github-actions-annotate-failures==0.3.0 @@ -9,5 +9,5 @@ pytest==9.0.2 PyYaml==6.0.3 responses==0.25.8 respx==0.22.0 -trio==0.32.0 +trio==0.33.0 wheel==0.46.3 From 84ad3fd19cfbc236e962ac77c910571b0888c000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Frederik=20L=C3=A9ger?= Date: Tue, 10 Feb 2026 11:13:44 +0100 Subject: [PATCH 15/27] fix(types): add explicit submodule import for pyright compatibility Add `import gitlab.base` inside the TYPE_CHECKING block in repositories.py so that pyright can resolve `gitlab.base.RESTObject`. Without the explicit import, pyright cannot resolve the submodule access via the parent package (implicit submodule access is a runtime loader side effect that type checkers don't model). This caused `_RestObjectBase` to be `Unknown`, propagating through `RepositoryMixin` into `Project` and other classes. Fixes python-gitlab/python-gitlab#3342 Co-Authored-By: Claude Opus 4.6 --- gitlab/v4/objects/repositories.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gitlab/v4/objects/repositories.py b/gitlab/v4/objects/repositories.py index 71935caaa..a621cda43 100644 --- a/gitlab/v4/objects/repositories.py +++ b/gitlab/v4/objects/repositories.py @@ -17,6 +17,8 @@ if TYPE_CHECKING: # When running mypy we use these as the base classes + import gitlab.base + _RestObjectBase = gitlab.base.RESTObject else: _RestObjectBase = object From b0e064d022f30da2cd9ffa8c2e01f10e1f553108 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 01:49:45 +0000 Subject: [PATCH 16/27] chore(deps): update gitlab/gitlab-ee docker tag to v18.9.0-ee.0 (#3355) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- tests/functional/fixtures/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional/fixtures/.env b/tests/functional/fixtures/.env index ed558270b..8b6ab0604 100644 --- a/tests/functional/fixtures/.env +++ b/tests/functional/fixtures/.env @@ -1,4 +1,4 @@ GITLAB_IMAGE=gitlab/gitlab-ee -GITLAB_TAG=18.8.4-ee.0 +GITLAB_TAG=18.9.0-ee.0 GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner GITLAB_RUNNER_TAG=96856197 From e5fd81dd51fc4a8c8da24da966818308a8ebb5a9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 02:11:41 +0000 Subject: [PATCH 17/27] chore(deps): update all non-major dependencies --- .github/workflows/stale.yml | 2 +- .pre-commit-config.yaml | 6 +++--- requirements-lint.txt | 6 +++--- requirements-test.txt | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index e4fd014a5..167deac9b 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -17,7 +17,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v10.1.1 + - uses: actions/stale@v10.2.0 with: operations-per-run: 500 stale-issue-label: "stale" diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8572ab66f..a570cee88 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen - rev: v4.13.7 + rev: v4.13.8 hooks: - id: commitizen stages: [commit-msg] @@ -20,7 +20,7 @@ repos: hooks: - id: isort - repo: https://github.com/pycqa/pylint - rev: v4.0.4 + rev: v4.0.5 hooks: - id: pylint additional_dependencies: @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 43.15.2 + rev: 43.31.1 hooks: - id: renovate-config-validator diff --git a/requirements-lint.txt b/requirements-lint.txt index 0ab2b5aa7..97096ef20 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,13 +1,13 @@ -r requirements.txt argcomplete==2.0.0 black==26.1.0 -commitizen==4.13.7 +commitizen==4.13.8 flake8==7.3.0 isort==7.0.0 mypy==1.19.1 -pylint==4.0.4 +pylint==4.0.5 pytest==9.0.2 -responses==0.25.8 +responses==0.26.0 respx==0.22.0 types-PyYAML==6.0.12.20250915 types-requests==2.32.4.20260107 diff --git a/requirements-test.txt b/requirements-test.txt index 57b91c186..a5bcbefc5 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -7,7 +7,7 @@ pytest-cov==7.0.0 pytest-github-actions-annotate-failures==0.3.0 pytest==9.0.2 PyYaml==6.0.3 -responses==0.25.8 +responses==0.26.0 respx==0.22.0 trio==0.33.0 wheel==0.46.3 From 14bdc0497df4828908d721567b10946c51527275 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 04:52:32 +0000 Subject: [PATCH 18/27] chore(deps): update dependency isort to v8 --- requirements-lint.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-lint.txt b/requirements-lint.txt index 97096ef20..51fa59ee8 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -3,7 +3,7 @@ argcomplete==2.0.0 black==26.1.0 commitizen==4.13.8 flake8==7.3.0 -isort==7.0.0 +isort==8.0.0 mypy==1.19.1 pylint==4.0.5 pytest==9.0.2 From 0bfaa6b0d5381a9dce8d5c37696188395bb9c08f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 23 Feb 2026 05:43:36 +0000 Subject: [PATCH 19/27] chore(deps): update dependency types-setuptools to v82 --- requirements-lint.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-lint.txt b/requirements-lint.txt index 51fa59ee8..021d12133 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -11,4 +11,4 @@ responses==0.26.0 respx==0.22.0 types-PyYAML==6.0.12.20250915 types-requests==2.32.4.20260107 -types-setuptools==80.10.0.20260124 +types-setuptools==82.0.0.20260210 From d5dc73d0f82a15d96a956c1d868c253c9586e1bf Mon Sep 17 00:00:00 2001 From: malmor <62105800+malmor@users.noreply.github.com> Date: Thu, 29 Jan 2026 07:48:30 +0100 Subject: [PATCH 20/27] feat(api): add support for order_by filter in runner jobs This commits adds to the work done in [1]. After reading the docs [2] again, you must define order_by when using sort, so this commits adds this as an additional filter. [1]: https://github.com/python-gitlab/python-gitlab/pull/3336 [2]: https://docs.gitlab.com/api/runners/#list-all-jobs-processed-by-a-runner Signed-off-by: malmor <62105800+malmor@users.noreply.github.com> --- gitlab/v4/objects/runners.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitlab/v4/objects/runners.py b/gitlab/v4/objects/runners.py index 87b6a8b3c..ba7256cf5 100644 --- a/gitlab/v4/objects/runners.py +++ b/gitlab/v4/objects/runners.py @@ -38,7 +38,7 @@ class RunnerJobManager(ListMixin[RunnerJob]): _path = "/runners/{runner_id}/jobs" _obj_cls = RunnerJob _from_parent_attrs = {"runner_id": "id"} - _list_filters = ("status", "sort") + _list_filters = ("status", "order_by", "sort") class Runner(SaveMixin, ObjectDeleteMixin, RESTObject): From 5294a4862511aed78ed7e5cc45ea6424b5f48825 Mon Sep 17 00:00:00 2001 From: semantic-release Date: Sat, 28 Feb 2026 01:26:08 +0000 Subject: [PATCH 21/27] chore: release v8.1.0 --- CHANGELOG.md | 16 ++++++++++++++++ gitlab/_version.py | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dca7acc04..7168b6f88 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,22 @@ All versions below are listed in reverse chronological order. +## v8.1.0 (2026-02-28) + +### Bug Fixes + +- **types**: Add explicit submodule import for pyright compatibility + ([`84ad3fd`](https://github.com/python-gitlab/python-gitlab/commit/84ad3fd19cfbc236e962ac77c910571b0888c000)) + +### Features + +- **api**: Add support for order_by filter in runner jobs + ([`d5dc73d`](https://github.com/python-gitlab/python-gitlab/commit/d5dc73d0f82a15d96a956c1d868c253c9586e1bf)) + +- **api**: Add support for sort filter in runner jobs + ([`b117ee3`](https://github.com/python-gitlab/python-gitlab/commit/b117ee3d139f422e463ebeb5007517a2052af8a4)) + + ## v8.0.0 (2026-01-28) ### Bug Fixes diff --git a/gitlab/_version.py b/gitlab/_version.py index cf0655911..9ec122c99 100644 --- a/gitlab/_version.py +++ b/gitlab/_version.py @@ -3,4 +3,4 @@ __email__ = "gauvainpocentek@gmail.com" __license__ = "LGPL3" __title__ = "python-gitlab" -__version__ = "8.0.0" +__version__ = "8.1.0" From c51c6f25b4c53ae8541613d1f2eea2bcb63694da Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 01:00:12 +0000 Subject: [PATCH 22/27] chore(deps): update all non-major dependencies --- .pre-commit-config.yaml | 4 ++-- requirements-lint.txt | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index a570cee88..326a1cfaf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -7,7 +7,7 @@ repos: hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen - rev: v4.13.8 + rev: v4.13.9 hooks: - id: commitizen stages: [commit-msg] @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 43.31.1 + rev: 43.46.6 hooks: - id: renovate-config-validator diff --git a/requirements-lint.txt b/requirements-lint.txt index 021d12133..1bcc3e2be 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,9 +1,9 @@ -r requirements.txt argcomplete==2.0.0 black==26.1.0 -commitizen==4.13.8 +commitizen==4.13.9 flake8==7.3.0 -isort==8.0.0 +isort==8.0.1 mypy==1.19.1 pylint==4.0.5 pytest==9.0.2 From 12827126785d8b57de0eefc8a317009abd9f100d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2026 01:38:51 +0000 Subject: [PATCH 23/27] chore(deps): update gitlab/gitlab-ee docker tag to v18.9.1-ee.0 (#3360) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- tests/functional/fixtures/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional/fixtures/.env b/tests/functional/fixtures/.env index 8b6ab0604..a220cbfb4 100644 --- a/tests/functional/fixtures/.env +++ b/tests/functional/fixtures/.env @@ -1,4 +1,4 @@ GITLAB_IMAGE=gitlab/gitlab-ee -GITLAB_TAG=18.9.0-ee.0 +GITLAB_TAG=18.9.1-ee.0 GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner GITLAB_RUNNER_TAG=96856197 From 4b38047352fd8488e0a1c2ccdca497604a552826 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 14:58:48 +0000 Subject: [PATCH 24/27] chore(deps): update all non-major dependencies --- .pre-commit-config.yaml | 4 ++-- requirements-lint.txt | 2 +- requirements-test.txt | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 326a1cfaf..30f22fb1d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -3,7 +3,7 @@ default_language_version: repos: - repo: https://github.com/psf/black - rev: 26.1.0 + rev: 26.3.0 hooks: - id: black - repo: https://github.com/commitizen-tools/commitizen @@ -51,6 +51,6 @@ repos: - id: rst-directive-colons - id: rst-inline-touching-normal - repo: https://github.com/maxbrunet/pre-commit-renovate - rev: 43.46.6 + rev: 43.60.0 hooks: - id: renovate-config-validator diff --git a/requirements-lint.txt b/requirements-lint.txt index 1bcc3e2be..4acf46db9 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,6 +1,6 @@ -r requirements.txt argcomplete==2.0.0 -black==26.1.0 +black==26.3.0 commitizen==4.13.9 flake8==7.3.0 isort==8.0.1 diff --git a/requirements-test.txt b/requirements-test.txt index a5bcbefc5..a6e9a82b1 100644 --- a/requirements-test.txt +++ b/requirements-test.txt @@ -4,7 +4,7 @@ build==1.4.0 coverage==7.13.4 pytest-console-scripts==1.4.1 pytest-cov==7.0.0 -pytest-github-actions-annotate-failures==0.3.0 +pytest-github-actions-annotate-failures==0.4.0 pytest==9.0.2 PyYaml==6.0.3 responses==0.26.0 From cb0962440d098957480d886e6acc9966c8f50fe8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 16:45:52 +0000 Subject: [PATCH 25/27] chore(deps): update github artifact actions --- .github/workflows/test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 397559d31..829a8603d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -120,7 +120,7 @@ jobs: pip install -r requirements-test.txt - name: Build package run: python -m build -o dist/ - - uses: actions/upload-artifact@v6.0.0 + - uses: actions/upload-artifact@v7.0.0 with: name: dist path: dist @@ -134,7 +134,7 @@ jobs: uses: actions/setup-python@v6.2.0 with: python-version: '3.14' - - uses: actions/download-artifact@v7.0.0 + - uses: actions/download-artifact@v8.0.0 with: name: dist path: dist From 276b84fa90d46d7a1ca3ecc24b2863214d9f7795 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 12 Mar 2026 22:49:59 +0000 Subject: [PATCH 26/27] chore(deps): update dependency black to v26.3.1 [security] --- requirements-lint.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-lint.txt b/requirements-lint.txt index 4acf46db9..220f0c407 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -1,6 +1,6 @@ -r requirements.txt argcomplete==2.0.0 -black==26.3.0 +black==26.3.1 commitizen==4.13.9 flake8==7.3.0 isort==8.0.1 From a77f0dc1895541d951aeb8a3258e035e5f3a8698 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 16 Mar 2026 01:30:24 +0000 Subject: [PATCH 27/27] chore(deps): update gitlab/gitlab-ee docker tag to v18.9.2-ee.0 (#3371) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- tests/functional/fixtures/.env | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/functional/fixtures/.env b/tests/functional/fixtures/.env index a220cbfb4..60eda1be2 100644 --- a/tests/functional/fixtures/.env +++ b/tests/functional/fixtures/.env @@ -1,4 +1,4 @@ GITLAB_IMAGE=gitlab/gitlab-ee -GITLAB_TAG=18.9.1-ee.0 +GITLAB_TAG=18.9.2-ee.0 GITLAB_RUNNER_IMAGE=gitlab/gitlab-runner GITLAB_RUNNER_TAG=96856197