Update all python dependencies
This MR contains the following updates:
Package | Type | Update | Change |
---|---|---|---|
python-gitlab (changelog) | dependencies | minor |
4.4.0 -> 4.6.0
|
ruff (source, changelog) | dependencies | patch |
0.4.3 -> 0.4.7
|
Release Notes
python-gitlab/python-gitlab (python-gitlab)
v4.6.0
Chore
-
chore(deps): update python-semantic-release/upload-to-gh-release digest to
673709c
(1b550ac
) -
chore(deps): update all non-major dependencies (
4c7014c
) -
chore: update commit reference in git-blame-ignore-revs (
d0fd5ad
) -
chore(cli): add ability to not add
_id_attr
as an argument
In some cases we don't want to have _id_attr
as an argument.
Add ability to have it not be added as an argument. (2037352
)
-
chore: create a CustomAction dataclass (
61d8679
) -
chore: add an initial .git-blame-ignore-revs
This adds the .git-blame-ignore-revs
file which allows ignoring
certain commits when doing a git blame --ignore-revs
Ignore the commit that requires keyword arguments for
register_custom_action()
https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file#ignore-commits-in-the-blame-view (74db84c
)
- chore: require keyword arguments for register_custom_action
This makes it more obvious when reading the code what each argument is
for. (7270523
)
- chore: remove typing-extensions from requirements.txt
We no longer support Python versions before 3.8. So it isn't needed
anymore. (d569128
)
-
chore(deps): update dependency requests to v2.32.0 [security] (
1bc788c
) -
chore(deps): update all non-major dependencies (
ba1eec4
) -
chore(deps): update gitlab/gitlab-ee docker tag to v17 (
5070d07
) -
chore(cli): on the CLI help show the API endpoint of resources
This makes it easier for people to map CLI command names to the API.
Looks like this:
$ gitlab --help
<snip>
The GitLab resource to manipulate.
application API endpoint: /applications
application-appearance
API endpoint: /application/appearance
application-settings
API endpoint: /application/settings
application-statistics
API endpoint: /application/statistics
<snip> (f1ef565
)
- chore(cli): add some simple help for the standard operations
Add help for the following standard operations:
- list: List the GitLab resources
- get: Get a GitLab resource
- create: Create a GitLab resource
- update: Update a GitLab resource
- delete: Delete a GitLab resource
For example: $ gitlab project-key --help usage: gitlab project-key [-h] {list,get,create,update,delete,enable} ...
options: -h, --help show this help message and exit
action:
list
get
create
update
delete
enable
Action to execute on the GitLab resource.
list List the GitLab resources
get Get a GitLab resource
create Create a GitLab resource
update Update a GitLab resource
delete Delete a GitLab resource (5a4a940
)
- chore: correct type-hint for
job.trace()
- chore: add type info for ProjectFile.content
Feature
- feat(api): add additional parameter to project/group iteration search (#2796)
Co-authored-by: Cristiano Casella <cristiano.casella@seacom.it>
Co-authored-by: Nejc Habjan <hab.nejc@gmail.com> (623dac9
)
- feat(api): add support for gitlab service account (#2851)
Co-authored-by: Nejc Habjan <hab.nejc@siemens.com> (b187dea
)
- feat: more usernames support for MR approvals
I don't think commit a2b8c8c
went far enough to enable usernames
support. We create and edit a lot of approval rules based on an external
service (similar to CODE_OWNERS), but only have the usernames available,
and currently, have to look up each user to get their user ID to populate
user_ids for .set_approvers() calls. Would very much like to skip the
lookup and just send the usernames, which this change should allow.
See: https://docs.gitlab.com/ee/api/merge_request_approvals.html#create-project-level-rule
Signed-off-by: Jarod Wilson <jarod@redhat.com> (12d195a
)
Fix
- fix(deps): update minimum dependency versions in pyproject.toml
Update the minimum versions of the dependencies in the pyproject.toml file.
This is related to MR #2878 (37b5a70
)
- fix(cli): don't require
--id
when enabling a deploy key
No longer require --id
when doing:
gitlab project-key enable
Now only the --project-id and --key-id are required. (98fc578
)
-
fix: don't raise
RedirectError
for redirectedHEAD
requests (8fc13b9
) -
fix: handle large number of approval rules
Use iterator=True
when going through the list of current approval
rules. This allows it to handle more than the default of 20 approval
rules.
- fix(projects): fix 'import_project' file argument type for typings
Signed-off-by: Adrian DC <radian.dc@gmail.com> (33fbc14
)
v4.5.0
Build
- build: Add "--no-cache-dir" to pip commands in Dockerfile
This would not leave cache files in the built docker image.
Additionally, also only build the wheel in the build phase.
On my machine, before this MR, size is 7484539
; after this MR, size is
7261771
. (4ef94c8
)
Chore
-
chore(deps): update all non-major dependencies (
4f338ae
) -
chore(deps): update gitlab/gitlab-ee docker tag to v16.11.2-ee.0 (
9be48f0
) -
chore(deps): update dependency myst-parser to v3 (
9289189
) -
chore(deps): update all non-major dependencies (
65d0e65
) -
chore(deps): update dependency jinja2 to v3.1.4 [security] (
8ea10c3
) -
chore(deps): update all non-major dependencies (
1f0343c
) -
chore(deps): update gitlab/gitlab-ee docker tag to v16.11.1-ee.0 (
1ed8d6c
) -
chore(deps): update all non-major dependencies (
0e9f4da
) -
chore(deps): update gitlab/gitlab-ee docker tag to v16 (
ea8c4c2
) -
chore(deps): update all non-major dependencies (
d5b5fb0
) -
chore(deps): update dependency pytest-cov to v5 (
db32000
) -
chore: update
mypy
to 1.9.0 and resolve one issue
mypy 1.9.0 flagged one issue in the code. Resolve the issue. Current
unit tests already check that a None
value returns text/plain
. So
function is still working as expected. (dd00bfc
)
-
chore(deps): update dependency black to v24.3.0 [security] (
f6e8692
) -
chore(deps): update all non-major dependencies (
14a3ffe
) -
chore(deps): update all non-major dependencies (
3c4dcca
) -
chore(deps): update all non-major dependencies (
04c569a
) -
chore: add tox
labels
to enable running groups of environments
tox now has a feature of labels
which allows running groups of
environments using the command tox -m LABEL_NAME
. For example
tox -m lint
which has been setup to run the linters.
Bumped the minimum required version of tox to be 4.0, which was
released over a year ago. (d7235c7
)
- chore: add py312 & py313 to tox environment list
Even though there isn't a Python 3.13 at this time, this is done for
the future. tox is already configured to just warn about missing
Python versions, but not fail if they don't exist. (679ddc7
)
-
chore(deps): update python-semantic-release/python-semantic-release action to v9 (
e11d889
) -
chore(deps): update all non-major dependencies (
3c4b27e
) -
chore(deps): update dependency furo to v2024 (
f6fd02d
) -
chore(deps): update dependency pytest to v8 (
253babb
) -
chore(deps): update dependency pytest-docker to v3 (
35d2aec
) -
chore: update version of
black
forpre-commit
The version of black
needs to be updated to be in sync with what is
in requirements-lint.txt
(3501716
)
-
chore(deps): update all non-major dependencies (
7dc2fa6
) -
chore(deps): update codecov/codecov-action action to v4 (
d2be1f7
) -
chore: adapt style for black v24 (
4e68d32
) -
chore(deps): update dependency black to v24 (
f59aee3
) -
chore(deps): update all non-major dependencies (
48726fd
)
Documentation
- docs: add FAQ about conflicting parameters
We have received multiple issues lately about this. Add it to the FAQ. (683ce72
)
-
docs(README): tweak GitLab CI usage docs (
d9aaa99
) -
docs: how to run smoke tests
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> (2d1f487
)
- docs(objects): minor rst formatting typo
To correctly format a code block have to use ::
(57dfd17
)
- docs: correct rotate token example
Rotate token returns a dict. Change example to print the entire dict.
- docs: Note how to use the Docker image from within GitLab CI
- docs(artifacts): Fix argument indentation (
c631eeb
)
Feature
-
feat(job_token_scope): support Groups in job token allowlist API (#2816)
-
feat(job_token_scope): support job token access allowlist API
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk>
l.dwp.gov.uk>
Co-authored-by: Nejc Habjan <nejc.habjan@siemens.com> (2d1b749
)
-
feat(cli): allow skipping initial auth calls (
001e596
) -
feat(api): allow updating protected branches (#2771)
-
feat(api): allow updating protected branches
Fix
- fix: Consider
scope
an ArrayAttribute in PipelineJobManager
List query params like 'scope' were not being handled correctly for pipeline/jobs endpoint. This change ensures multiple values are appended with '[]', resulting in the correct URL structure.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Background:
If one queries for pipeline jobs with scope=[&#​34;failed&#​34;, &#​34;success&#​34;]
One gets: GET /api/v4/projects/176/pipelines/1113028/jobs?scope=success&scope=failed
But it is supposed to get: GET /api/v4/projects/176/pipelines/1113028/jobs?scope[]=success&scope[]=failed
The current version only considers the last element of the list argument.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com> (c5d0404
)
- fix(test): use different ids for merge request, approval rule, project
The original bug was that the merge request identifier was used instead of the
approval rule identifier. The test didn't notice that because it used 1
for
all identifiers. Make these identifiers different so that a mixup will become
apparent. (c23e6bd
)
- fix(api): fix saving merge request approval rules
- fix: user.warn() to show correct filename of issue
Previously would only go to the 2nd level of the stack for determining the offending filename and line number. When it should be showing the first filename outside of the python-gitlab source code. As we want it to show the warning for the user of the libraries code.
Update test to show it works as expected. (529f1fa
)
-
fix(api): update manual job status when playing it (
9440a32
) -
fix(cli): allow exclusive arguments as optional (#2770)
-
fix(cli): allow exclusive arguments as optional
The CLI takes its arguments from the RequiredOptional, which has three fields: required, optional, and exclusive. In practice, the exclusive options are not defined as either required or optional, and would not be allowed in the CLI. This changes that, so that exclusive options are also added to the argument parser.
-
fix(cli): inform argument parser that options are mutually exclusive
-
fix(cli): use correct exclusive options, add unit test
Test
- test: remove approve step
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> (48a6705
)
- test: tidy up functional tests
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> (06266ea
)
- test: update api tests for GL 16.10
- Make sure we're testing python-gitlab functionality, make sure we're not awaiting on Gitlab Async functions
- Decouple and improve test stability
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> (4bef473
)
-
test(functional): enable bulk import feature flag before test (
b81da2e
) -
test: don't use weak passwords
Newer versions of GitLab will refuse to create a user with a weak
password. In order for us to move to a newer GitLab version in testing
use a stronger password for the tests that create a user. (c64d126
)
- test: update tests for gitlab 16.8 functionality
- use programmatic dates for expires_at in tokens tests
- set PAT for 16.8 into tests
Signed-off-by: Tim Knight <tim.knight1@engineering.digital.dwp.gov.uk> (f8283ae
)
- test(smoke): normalize all dist titles for smoke tests (
ee013fe
)
astral-sh/ruff (ruff)
v0.4.7
Preview features
- [
flake8-pyi
] ImplementPYI064
(#11325) - [
flake8-pyi
] ImplementPYI066
(#11541) - [
flake8-pyi
] ImplementPYI057
(#11486) - [
pyflakes
] EnableF822
in__init__.py
files by default (#11370)
Formatter
- Fix incorrect placement of trailing stub function comments (#11632)
Server
- Respect file exclusions in
ruff server
(#11590) - Add support for documents not exist on disk (#11588)
- Add Vim and Kate setup guide for
ruff server
(#11615)
Bug fixes
- Avoid removing newlines between docstring headers and rST blocks (#11609)
- Infer indentation with imports when logical indent is absent (#11608)
- Use char index rather than position for indent slice (#11645)
- [
flake8-comprehension
] Strip parentheses around generators inC400
(#11607) - Mark
repeated-isinstance-calls
as unsafe on Python 3.10 and later (#11622)
v0.4.6
Breaking changes
- Use project-relative paths when calculating GitLab fingerprints (#11532)
- Bump minimum supported Windows version to Windows 10 (#11613)
Preview features
- [
flake8-async
] Sleep with >24 hour interval should usually sleep forever (ASYNC116
) (#11498)
Rule changes
- [
numpy
] Add missing functions to NumPy 2.0 migration rule (#11528) - [
mccabe
] Consider irrefutable pattern similar toif .. else
forC901
(#11565) - Consider
match
-case
statements forC901
,PLR0912
, andPLR0915
(#11521) - Remove empty strings when converting to f-string (
UP032
) (#11524) - [
flake8-bandit
]request-without-timeout
should warn forrequests.request
(#11548) - [
flake8-self
] Ignore sunder accesses inflake8-self
rules (#11546) - [
pyupgrade
] Lint forTypeAliasType
usages (UP040
) (#11530)
Server
- Respect excludes in
ruff server
configuration discovery (#11551) - Use default settings if initialization options is empty or not provided (#11566)
-
ruff server
correctly treats.pyi
files as stub files (#11535) -
ruff server
searches for configuration in parent directories (#11537) -
ruff server
: An empty code action filter no longer returns notebook source actions (#11526)
Bug fixes
- [
flake8-logging-format
] Fix autofix title inlogging-warn
(G010
) (#11514) - [
refurb
] Avoid recommendingoperator.itemgetter
with dependence on lambda arguments (#11574) - [
flake8-simplify
] Avoid recommending context manager in__enter__
implementations (#11575) - Create intermediary directories for
--output-file
(#11550) - Propagate reads on global variables (#11584)
- Treat all
singledispatch
arguments as runtime-required (#11523)
v0.4.5
Ruff's language server is now in Beta
v0.4.5
marks the official Beta release of ruff server
, an integrated language server built into Ruff.
ruff server
supports the same feature set as ruff-lsp
, powering linting, formatting, and
code fixes in Ruff's editor integrations -- but with superior performance and
no installation required. We'd love your feedback!
You can enable ruff server
in the VS Code extension today.
To read more about this exciting milestone, check out our blog post!
Rule changes
- [
flake8-future-annotations
] Rewordfuture-rewritable-type-annotation
(FA100
) message (#11381) - [
pycodestyle
] Consider soft keywords forE27
rules (#11446) - [
pyflakes
] Recommend adding unused import bindings to__all__
(#11314) - [
pyflakes
] Update documentation and deprecateignore_init_module_imports
(#11436) - [
pyupgrade
] Mark quotes as unnecessary for non-evaluated annotations (#11485)
Formatter
- Avoid multiline quotes warning with
quote-style = preserve
(#11490)
Server
- Support Jupyter Notebook files (#11206)
- Support
noqa
comment code actions (#11276) - Fix automatic configuration reloading (#11492)
- Fix several issues with configuration in Neovim and Helix (#11497)
CLI
- Add
--output-format
as a CLI option forruff config
(#11438)
Bug fixes
- Avoid
PLE0237
for property with setter (#11377) - Avoid
TCH005
forif
stmt withelif
/else
block (#11376) - Avoid flagging
__future__
annotations as required for non-evaluated type annotations (#11414) - Check for ruff executable in 'bin' directory as installed by 'pip install --target'. (#11450)
- Sort edits prior to deduplicating in quotation fix (#11452)
- Treat escaped newline as valid sequence (#11465)
- [
flake8-pie
] Preserve parentheses inunnecessary-dict-kwargs
(#11372) - [
pylint
] Ignore__slots__
with dynamic values (#11488) - [
pylint
] Removetry
body from branch counting (#11487) - [
refurb
] Respect operator precedence inFURB110
(#11464)
Documentation
- Add
--preview
to the README (#11395) - Add Python 3.13 to list of allowed Python versions (#11411)
- Simplify Neovim setup documentation (#11489)
- Update CONTRIBUTING.md to reflect the new parser (#11434)
- Update server documentation with new migration guide (#11499)
- [
pycodestyle
] Clarify motivation forE713
andE714
(#11483) - [
pyflakes
] Update docs to describe WAI behavior (F541) (#11362) - [
pylint
] Clearly indicate what is counted as a branch (#11423)
v0.4.4
Preview features
- [
pycodestyle
] Ignore end-of-line comments when determining blank line rules (#11342) - [
pylint
] Detectpathlib.Path.open
calls inunspecified-encoding
(PLW1514
) (#11288) - [
flake8-pyi
] ImplementPYI059
(generic-not-last-base-class
) (#11233) - [
flake8-pyi
] ImplementPYI062
(duplicate-literal-member
) (#11269)
Rule changes
- [
flake8-boolean-trap
] Allow passing booleans as positional-only arguments in code such asset(True)
(#11287) - [
flake8-bugbear
] Ignore enum classes incached-instance-method
(B019
) (#11312)
Server
- Expand tildes when resolving Ruff server configuration file (#11283)
- Fix
ruff server
hanging after Neovim closes (#11291) - Editor settings are used by default if no file-based configuration exists (#11266)
Bug fixes
- [
pylint
] Considerwith
statements fortoo-many-branches
(PLR0912
) (#11321) - [
flake8-blind-except
,tryceratops
] Respect logged and re-raised expressions in nested statements (BLE001
,TRY201
) (#11301) - Recognise assignments such as
__all__ = builtins.list(["foo", "bar"])
as valid__all__
definitions (#11335)
Configuration
-
If you want to rebase/retry this MR, check this box
This MR has been generated by Renovate Bot.