Releases: python-gitlab/python-gitlab
Release list
v5.0.0
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 Evans patrick.evans@gehealthcare.com (1a68f1c)
Chores
- chore: add testing of Python 3.14
Also fix annotations 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:
commit fe89b94
Author: Gauvain Pocentek gauvain@pocentek.net
Date: Sat May 19 17:10:08 2018 +0200
Drop API v3 support
Drop 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 on gitlab/base.py (f4bfe19)
v4.13.0
v4.12.2
v4.12.1
v4.12.0
v4.12.0 (2024-09-28)
Chore
-
chore(deps): update all non-major dependencies (
ae132e7) -
chore: update pylint to 3.3.1 and resolve issues (#2997)
pylint 3.3.1 appears to have added "too-many-positional-arguments"
check with a value of 5.
I don't disagree with this, but we have many functions which exceed
this value. We might think about converting some of positional
arguments over to keyword arguments in the future. But that is for
another time.
For now disable the check across the project. (a0729b8)
-
chore(deps): update dependency types-setuptools to v75 (
a2ab54c) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.4.0-ee.0 (
8601808) -
chore(deps): update all non-major dependencies (
10ee58a) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.3.2-ee.0 (
5cd1ab2)
Feature
Fix
-
fix(api): head requests for projectfilemanager (#2977)
-
fix(api): head requests for projectfilemanager
Co-authored-by: Patrick Evans <patrick.evans@gehealthcare.com>
Co-authored-by: Nejc Habjan <hab.nejc@gmail.com> (96a18b0)
v4.11.1
v4.11.0
v4.11.0 (2024-09-13)
Chore
-
chore(pre-commit): add deps (
fe5e608) -
chore(deps): update all non-major dependencies (
fac8bf9) -
chore(deps): update dependency types-setuptools to v74 (
bdfaddb) -
chore(deps): update all non-major dependencies (
88c7529)
Documentation
- docs(objects): fix typo in get latest pipeline (
b9f5c12)
Feature
-
feat(client): make retries configurable in GraphQL (
145870e) -
feat(client): add retry handling to GraphQL client (
8898c38) -
feat(api): add exclusive GET attrs for /projects/:id/members (
e637808) -
feat: add a minimal GraphQL client (
d6b1b0a) -
feat(api): add exclusive GET attrs for /groups/:id/members (
d44ddd2)
Refactor
- refactor(client): move retry logic into utility (
3235c48)
v4.10.0
v4.10.0 (2024-08-28)
Chore
-
chore(release): track tags for renovate (
d600444) -
chore(deps): update python-semantic-release/upload-to-gh-release digest to 17c75b7 (
12caaa4) -
chore(deps): update dependency types-setuptools to v73 (
d55c045) -
chore(deps): update all non-major dependencies (
2ade0d9) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.3.1-ee.0 (
3fdd130) -
chore(deps): update all non-major dependencies (
0578bf0) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.3.0-ee.0 (
e5a46f5) -
chore(deps): update dependency myst-parser to v4 (
930d4a2) -
chore(deps): update dependency sphinx to v8 (
cb65ffb) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.2.2-ee.0 (
b2275f7) -
chore(deps): update all non-major dependencies (
31786a6)
Documentation
- docs(faq): correct the attribute fetching example
There is an example about object attributes in the FAQ. It shows how to
properly fetch all attributes of all projects, by using list() followed
by a get(id) call.
Unfortunately this example used a wrong variable name, which caused it
not to work and which could have made it slightly confusing to readers.
This commit fixes that, by changing the variable name.
Now the example uses one variable for two Python objects. As they
correspond to the same GitLab object and the intended behavior is to
obtain that very object, just with all attributes, this is fine and is
probably what readers will find most useful in this context. (43a16ac)
Feature
- feat(api): project/group hook test triggering
Add the ability to trigger tests of project and group hooks.
Test
- test(cli): allow up to 30 seconds for a project export
Before we allowed a maximum of around 15 seconds for the
project-export. Often times the CI was failing with this value.
Change it to a maximum of around 30 seconds. (bdc155b)
v4.9.0
v4.9.0 (2024-08-06)
Chore
-
chore(deps): update pre-commit hook maxbrunet/pre-commit-renovate to v38 (
f13968b) -
chore(deps): update all non-major dependencies (
f95ca26) -
chore(deps): update dependency types-setuptools to v71 (
d6a7dba) -
chore(deps): update python-semantic-release/upload-to-gh-release digest to 0dcddac (
eb5c6f7) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.2.1-ee.0 (
d13a656) -
chore(deps): update all non-major dependencies (
7adc86b) -
chore(deps): update python-semantic-release/upload-to-gh-release digest to e2355e1 (
eb18552) -
chore(deps): update all non-major dependencies (
e820db0) -
chore(ci): make pre-commit check happy
pre-commit incorrectly wants double back-quotes inside the code
section. Rather than fight it, just use single quotes. (67370d8)
Feature
- feat(snippets): add support for listing all instance snippets (
64ae61e)
v4.8.0
v4.8.0 (2024-07-16)
Chore
-
chore(deps): update gitlab/gitlab-ee docker tag to v17.1.2-ee.0 (
6fedfa5) -
chore(deps): update all non-major dependencies (
4a2b213) -
chore(ci): specify name of "stale" label
Saw the following error in the log:
[#2618] Removing the label "Stale" from this issue...
##[error][#2618] Error when removing the label: "Label does not exist"
My theory is that the case doesn't match ("Stale" != "stale") and that
is why it failed. Our label is "stale" so update this to match.
Thought of changing the label name on GitHub but then would also
require a change here to the "any-of-labels". So it seemed simpler to
just change it here.
It is confusing though that it detected the label "stale", but then
couldn't delete it. (44f62c4)
- chore(ci): stale: allow issues/PRs that have stale label to be closed
If a stale label is manually applied, allow the issue or PR to be
closed by the stale job.
Previously it would require the stale label and to also have one of
'need info' or 'Waiting for response' labels added. (2ab88b2)
-
chore(ci): use codecov token when available (
b74a6fb) -
chore(deps): update python-semantic-release/upload-to-gh-release digest to fe6cc89 (
3f3ad80) -
chore(deps): update all non-major dependencies (
0f59069) -
chore: add
show_callerargument toutils.warn()
This allows us to not add the caller's location to the UserWarning
message. (7d04315)
-
chore: use correct type-hint for
die()(9358640) -
chore(deps): update gitlab/gitlab-ee docker tag to v17.1.1-ee.0 (
5e98510) -
chore(deps): update python-semantic-release/upload-to-gh-release digest to c7c3b69 (
23393fa) -
chore(deps): update all non-major dependencies (
cf87226)
Documentation
- docs: document how to use
sudoif modifying an object
Add a warning about using sudo when saving.
Give an example of how to get an object, modify it, and then save
it using sudo
- docs: variables: add note about
filterfor updating
Add a note about using filter when updating a variable.
Closes: #2835
Closes: #1387
Closes: #1125 (c378817)
Feature
-
feat(api): add support for project cluster agents (
32dbc6f) -
feat(api): add support for container registry protection rules (
6d31649) -
feat(api): add support for package protection rules (
6b37811) -
feat(api): add support for commit sequence (
1f97be2)
Fix
- fix: issues
closed_by()/related_merge_requests()usehttp_list
The closed_by() and related_merge_requests() API calls return
lists. So use the http_list() method.
This will also warn the user if only a subset of the data is returned. (de2e4dd)
- fix: Have
participants()method usehttp_list()
Previously it was using http_get() but the participants API
returns a list of participants. Also by using this then we will warn
if only a subset of the participants are returned.
- fix(files): CR: add explicit comparison to
None
Co-authored-by: Nejc Habjan <hab.nejc@gmail.com> (51d8f88)
- fix(files): make
refparameter optional in get raw file api
The ref parameter was made optional in gitlab v13.11.0. (00640ac)
- fix(cli): generate UserWarning if
listdoes not return all entries
Previously in the CLI, calls to list() would have get_all=False by
default. Therefore hiding the fact that not all items are being
returned if there were more than 20 items.
Added --no-get-all option to list actions. Along with the already
existing --get-all.
Refactor
- refactor(package_protection_rules): add missing attributes (
c307dd2)