github2gerrit 2.4.0__tar.gz → 2.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. github2gerrit-2.4.2/.pre-commit-config.yaml +241 -0
  2. github2gerrit-2.4.2/AGENTS.md +43 -0
  3. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/PKG-INFO +1 -1
  4. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/uv.lock +28 -28
  5. github2gerrit-2.4.0/.pre-commit-config.yaml +0 -251
  6. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/.aislop/config.yml +0 -0
  7. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/.editorconfig +0 -0
  8. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/.gitignore +0 -0
  9. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/.gitlint +0 -0
  10. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/.markdownlint.yaml +0 -0
  11. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/.yamllint +0 -0
  12. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/LICENSE +0 -0
  13. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/LICENSES/Apache-2.0.txt +0 -0
  14. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/README.md +0 -0
  15. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/REUSE.toml +0 -0
  16. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/SECURITY.md +0 -0
  17. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/action.yaml +0 -0
  18. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/docs/COMMIT_RULES.md +0 -0
  19. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/docs/cli.md +0 -0
  20. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/docs/development.md +0 -0
  21. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/docs/features.md +0 -0
  22. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/docs/github2gerrit_token_permissions_classic.png +0 -0
  23. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/pyproject.toml +0 -0
  24. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/sitecustomize.py +0 -0
  25. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/__init__.py +0 -0
  26. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/approvers.py +0 -0
  27. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/cli.py +0 -0
  28. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/commit_normalization.py +0 -0
  29. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/commit_rules.py +0 -0
  30. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/config.py +0 -0
  31. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/config_ini.py +0 -0
  32. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/constants.py +0 -0
  33. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/core.py +0 -0
  34. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/duplicate_detection.py +0 -0
  35. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/error_codes.py +0 -0
  36. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/external_api.py +0 -0
  37. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gerrit_pr_closer.py +0 -0
  38. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gerrit_query.py +0 -0
  39. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gerrit_rest.py +0 -0
  40. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gerrit_ssh.py +0 -0
  41. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gerrit_urls.py +0 -0
  42. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/github_api.py +0 -0
  43. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gitreview.py +0 -0
  44. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/gitutils.py +0 -0
  45. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/mapping_comment.py +0 -0
  46. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/models.py +0 -0
  47. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/netrc.py +0 -0
  48. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/orchestrator/__init__.py +0 -0
  49. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/orchestrator/reconciliation.py +0 -0
  50. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/pr_approval.py +0 -0
  51. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/pr_commands.py +0 -0
  52. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/pr_content_filter.py +0 -0
  53. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/pr_directives.py +0 -0
  54. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/project_names.py +0 -0
  55. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/reconcile_matcher.py +0 -0
  56. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/rich_display.py +0 -0
  57. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/rich_logging.py +0 -0
  58. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/similarity.py +0 -0
  59. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/ssh_agent_setup.py +0 -0
  60. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/ssh_common.py +0 -0
  61. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/ssh_config_parser.py +0 -0
  62. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/ssh_discovery.py +0 -0
  63. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/trailers.py +0 -0
  64. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/trust.py +0 -0
  65. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/src/github2gerrit/utils.py +0 -0
  66. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/conftest.py +0 -0
  67. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/fixtures/__init__.py +0 -0
  68. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/fixtures/make_repo.py +0 -0
  69. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/fixtures/ssh_config_samples.py +0 -0
  70. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_action_environment_mapping.py +0 -0
  71. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_action_outputs.py +0 -0
  72. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_action_pr_number_handling.py +0 -0
  73. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_action_step_validation.py +0 -0
  74. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_approver_sources.py +0 -0
  75. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_automation_only.py +0 -0
  76. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_bulk_fan_out.py +0 -0
  77. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_cache_isolation.py +0 -0
  78. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_change_id_deduplication.py +0 -0
  79. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_clean_squash_title.py +0 -0
  80. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_cli.py +0 -0
  81. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_cli_helpers.py +0 -0
  82. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_cli_netrc_options.py +0 -0
  83. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_cli_outputs_file.py +0 -0
  84. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_cli_url_and_dryrun.py +0 -0
  85. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_commit_normalization.py +0 -0
  86. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_commit_rules.py +0 -0
  87. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_composite_action_coverage.py +0 -0
  88. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_config_and_reviewers.py +0 -0
  89. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_config_helpers.py +0 -0
  90. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_close_pr_policy.py +0 -0
  91. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_config_and_errors.py +0 -0
  92. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_gerrit_backref_comment.py +0 -0
  93. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_gerrit_push_errors.py +0 -0
  94. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_gerrit_rest_results.py +0 -0
  95. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_integration_fixture_repo.py +0 -0
  96. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_prepare_commits.py +0 -0
  97. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_shallow_clone.py +0 -0
  98. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_ssh_setup.py +0 -0
  99. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_core_ssrf_protection.py +0 -0
  100. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_dependency_supersession.py +0 -0
  101. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_dns_validation_and_no_gerrit.py +0 -0
  102. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_duplicate_detection.py +0 -0
  103. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_email_case_normalization.py +0 -0
  104. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_error_codes.py +0 -0
  105. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_external_api_framework.py +0 -0
  106. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_final_state_reconciliation.py +0 -0
  107. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_force_flag_cli.py +0 -0
  108. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_fork_approval_gate.py +0 -0
  109. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_fork_pr_hardening.py +0 -0
  110. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_fork_transfer_record.py +0 -0
  111. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_change_id_footer.py +0 -0
  112. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_change_status_checks.py +0 -0
  113. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_pr_closer.py +0 -0
  114. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_rest_client.py +0 -0
  115. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_ssh_abandon.py +0 -0
  116. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_urls.py +0 -0
  117. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gerrit_urls_more.py +0 -0
  118. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ghe_and_gitreview_args.py +0 -0
  119. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_github_api_error_handling.py +0 -0
  120. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_github_api_helpers.py +0 -0
  121. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_github_api_retry_and_helpers.py +0 -0
  122. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gitreview.py +0 -0
  123. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_gitutils_helpers.py +0 -0
  124. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_issue_157_regressions.py +0 -0
  125. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_mapping_comment_additional.py +0 -0
  126. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_mapping_comment_digest_and_backref.py +0 -0
  127. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_metadata_and_reconciliation.py +0 -0
  128. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_metadata_trailer_separation_bug.py +0 -0
  129. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_misc_small_coverage.py +0 -0
  130. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_netrc.py +0 -0
  131. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_orphan_rest_side_effects.py +0 -0
  132. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_pr_closed_handling.py +0 -0
  133. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_pr_command_authorisation.py +0 -0
  134. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_pr_commands.py +0 -0
  135. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_pr_content_filter.py +0 -0
  136. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_pr_content_filter_integration.py +0 -0
  137. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_pr_update_detection.py +0 -0
  138. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_precommit_mypy_pins.py +0 -0
  139. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_project_names.py +0 -0
  140. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_reconciliation_extracted_module.py +0 -0
  141. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_reconciliation_plan_and_orphans.py +0 -0
  142. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_reconciliation_scenarios.py +0 -0
  143. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_scheduled_sweep.py +0 -0
  144. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ssh_agent.py +0 -0
  145. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ssh_agent_ownership.py +0 -0
  146. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ssh_artifact_prevention.py +0 -0
  147. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ssh_common.py +0 -0
  148. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ssh_discovery.py +0 -0
  149. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_ssh_discovery_dry_run.py +0 -0
  150. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_sync_mypy_pins.py +0 -0
  151. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_trailers_additional.py +0 -0
  152. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_url_parser.py +0 -0
  153. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/test_utils.py +0 -0
  154. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/unit/test_config_integration.py +0 -0
  155. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/unit/test_ssh_config_parser.py +0 -0
  156. {github2gerrit-2.4.0 → github2gerrit-2.4.2}/tests/workflow_harness.py +0 -0
@@ -0,0 +1,241 @@
1
+ ---
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ # SPDX-FileCopyrightText: 2025 The Linux Foundation
4
+
5
+ ci:
6
+ autofix_prs: false
7
+ skip:
8
+ - pytest
9
+ - gha-workflow-linter
10
+ - aislop
11
+ - eslint
12
+ - go-fmt
13
+ - go-vet
14
+ - go-mod-tidy
15
+ - golangci-lint
16
+ autofix_commit_msg: |
17
+ Chore: Pre-commit autofixes
18
+
19
+ Signed-off-by: pre-commit-ci[bot] <pre-commit-ci@users.noreply.github.com>
20
+ autoupdate_commit_msg: |
21
+ Chore: Pre-commit autoupdate
22
+
23
+ Signed-off-by: pre-commit-ci[bot] <pre-commit-ci@users.noreply.github.com>
24
+
25
+ default_install_hook_types: [pre-commit, commit-msg]
26
+ default_stages: [pre-commit]
27
+
28
+ exclude: |
29
+ (?x)^(docs/conf.py|
30
+ \.mypy_cache/|
31
+ \.pytest_cache/|
32
+ \.ruff_cache/|
33
+ dist/|
34
+ build/|
35
+ coverage_html_report/|
36
+ \.venv/)
37
+
38
+ repos:
39
+ - repo: local
40
+ hooks:
41
+ - id: frozen-rev-is-a-release
42
+ name: frozen revs name a release
43
+ language: pygrep
44
+ # yamllint disable-line rule:line-length
45
+ entry: '^[ \t]*rev:[ \t]*\S+[ \t]+#[ \t]*frozen:(?![ \t]+v?[0-9]+(\.[0-9]+)*(-[0-9]+)?[ \t]*$)'
46
+ files: '^\.pre-commit-config\.yaml$'
47
+
48
+ - repo: https://github.com/pre-commit/pre-commit-hooks
49
+ rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0
50
+ hooks:
51
+ - id: trailing-whitespace
52
+ - id: check-added-large-files
53
+ - id: check-ast
54
+ - id: check-json
55
+ - id: check-merge-conflict
56
+ - id: check-xml
57
+ - id: check-yaml
58
+ - id: debug-statements
59
+ - id: end-of-file-fixer
60
+ - id: requirements-txt-fixer
61
+ - id: mixed-line-ending
62
+ args: ["--fix=lf"]
63
+ - id: no-commit-to-branch
64
+ args:
65
+ - --branch=dev
66
+ - --branch=master
67
+ - --branch=main
68
+ - --branch=rc
69
+ - --branch=production
70
+
71
+ - repo: https://github.com/gitleaks/gitleaks
72
+ rev: 2ca41cc1372d1e939a6a879f18cdc19fc1cac1ce # frozen: v8.30.0
73
+ hooks:
74
+ - id: gitleaks
75
+ always_run: true
76
+
77
+ - repo: https://github.com/jorisroovers/gitlint
78
+ rev: acc9d9de6369b76d22cb4167029d2035e8730b98 # frozen: v0.19.1
79
+ hooks:
80
+ - id: gitlint
81
+
82
+ - repo: https://github.com/adrienverge/yamllint.git
83
+ rev: cba56bcde1fdd01c1deb3f945e69764c291a6530 # frozen: v1.38.0
84
+ hooks:
85
+ - id: yamllint
86
+ types: [yaml]
87
+
88
+ - repo: https://github.com/astral-sh/ruff-pre-commit
89
+ rev: a56c0b927e6465d37cae3e97d35d4d18ab2b96cd # frozen: v0.16.9
90
+ hooks:
91
+ - id: ruff
92
+ files: ^(src|scripts|tests)/.+\.py$|^sitecustomize\.py$
93
+ args: [--fix, --exit-non-zero-on-fix]
94
+ - id: ruff-format
95
+ files: ^(src|scripts|tests)/.+\.py$|^sitecustomize\.py$
96
+
97
+ - repo: local
98
+ hooks:
99
+ - id: sync-mypy-pins
100
+ name: sync mypy hook pins with uv.lock
101
+ entry: python3 scripts/sync_mypy_pins.py
102
+ language: system
103
+ files: ^(\.pre-commit-config\.yaml|uv\.lock)$
104
+ pass_filenames: false
105
+
106
+ - repo: https://github.com/pre-commit/mirrors-mypy
107
+ rev: 7ff8d35ae36a7d2b968f2f90b4c723e292e594ee # frozen: v2.3.1
108
+ hooks:
109
+ - id: mypy
110
+ files: ^(src|scripts|tests)/.+\.py$|^sitecustomize\.py$
111
+ additional_dependencies:
112
+ - mypy==2.3.1
113
+ - click==8.5.0
114
+ - pytest==9.1.1
115
+ - responses==0.26.3
116
+ - rich==15.0.0
117
+ - typer==0.27.2
118
+ - types-PyYAML==6.0.12.20260906
119
+ - types-requests==2.33.0.20260906
120
+
121
+ - repo: https://github.com/btford/write-good
122
+ rev: ab66ce10136dfad5146e69e70f82a3efac8842c1 # frozen: v1.0.8
123
+ hooks:
124
+ - id: write-good
125
+ files: "\\.(rst|md|markdown|mdown|mkdn)$"
126
+ args: ["--no-adverb"]
127
+
128
+ - repo: https://github.com/shellcheck-py/shellcheck-py
129
+ rev: a6564f5d57444e123433a5c9af733e3975c77229 # frozen: v0.11.0.1-1
130
+ hooks:
131
+ - id: shellcheck
132
+
133
+ - repo: https://github.com/igorshubovych/markdownlint-cli
134
+ rev: 5b5dddc4fb0f83c3ea1fc5616fa63e115dce83e0 # frozen: v0.49.1
135
+ hooks:
136
+ - id: markdownlint
137
+ args: ["--fix", "--config", ".markdownlint.yaml"]
138
+ exclude: "GERRIT_URL_CENTRALIZATION.md"
139
+
140
+ - repo: https://github.com/fsfe/reuse-tool
141
+ rev: 9fabf9eb815a57aac116b435e8346c200cdb8604 # frozen: v6.2.0
142
+ hooks:
143
+ - id: reuse
144
+
145
+ - repo: https://github.com/kjanat/actionlint
146
+ rev: 2da2ceb4af2c7ecc48f5b9311d85080c3971b5f0 # frozen: v1.17.0
147
+ hooks:
148
+ - id: actionlint-shellcheck
149
+
150
+ - repo: https://github.com/codespell-project/codespell
151
+ rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3
152
+ hooks:
153
+ - id: codespell
154
+
155
+ - repo: https://github.com/DetachHead/basedpyright-prek-mirror
156
+ rev: 706e6acebe9e88c2c28d1527d3085a14b11794c4 # frozen: 1.40.1
157
+ hooks:
158
+ - id: basedpyright
159
+ files: ^(src|scripts|tests)/.+\.py$|^sitecustomize\.py$
160
+
161
+ - repo: https://github.com/lfreleng-actions/gha-workflow-linter
162
+ rev: 0c582e431022f1c7004196fb4ea32744d1fe4843 # frozen: v1.7.0
163
+ hooks:
164
+ - id: gha-workflow-linter
165
+
166
+ - repo: local
167
+ hooks:
168
+ - id: aislop
169
+ name: aislop
170
+ entry: aislop ci --human
171
+ language: node
172
+ additional_dependencies: ["aislop@0.14.1"]
173
+ pass_filenames: false
174
+ always_run: true
175
+
176
+ - repo: local
177
+ hooks:
178
+ - id: eslint
179
+ name: eslint
180
+ # yamllint disable-line rule:line-length
181
+ entry: bash -c 'export GUARD_EXCLUDE="(^|/)(dist|build|coverage|node_modules)/|(^|/)eslint[.]config[.](m|c)?js$"; sh .github/hooks/manifest-guard.sh package.json "*.js" "*.jsx" "*.mjs" "*.cjs" "*.ts" "*.tsx" "*.mts" "*.cts"; rc=$?; case "$rc" in 3|4) ;; *) exit "$rc";; esac; v=$(npx --no-install eslint --version 2>/dev/null | sed "s/^v//; s/[.].*$//"); if [ -z "$v" ]; then echo "eslint not installed - add eslint >=9 to devDependencies" >&2; exit 1; fi; if [ "$v" -lt 9 ]; then echo "eslint $v cannot load a flat config reliably - upgrade to >=9" >&2; exit 1; fi; if ! git ls-files -- eslint.config.mjs | grep -q .; then echo "eslint.config.mjs is not tracked - copy it from actions-template, or ESLint would lint against a config outside this repository" >&2; exit 1; fi; { sh .github/hooks/manifest-guard.sh --list package.json "*.js" "*.jsx" "*.mjs" "*.cjs" "*.ts" "*.tsx" "*.mts" "*.cts"; printf "eslint.config.mjs\0"; } | xargs -0 env ESLINT_USE_FLAT_CONFIG=true npx --no-install eslint --no-config-lookup --config eslint.config.mjs --fix'
182
+ language: system
183
+ always_run: true
184
+ pass_filenames: false
185
+
186
+ - repo: local
187
+ hooks:
188
+ - id: go-fmt
189
+ name: go format (gofmt + goimports)
190
+ # yamllint disable-line rule:line-length
191
+ entry: bash -c 'sh .github/hooks/manifest-guard.sh go.mod "*.go"; rc=$?; case "$rc" in 3) ;; 4) exit 0;; *) exit "$rc";; esac; command -v golangci-lint >/dev/null 2>&1 || { echo "golangci-lint not installed - see https://golangci-lint.run/welcome/install/" >&2; exit 1; }; sh .github/hooks/manifest-guard.sh --list go.mod "*.go" | xargs -0 golangci-lint fmt'
192
+ language: system
193
+ always_run: true
194
+ pass_filenames: false
195
+ - id: go-mod-tidy
196
+ name: go mod tidy
197
+ # yamllint disable-line rule:line-length
198
+ entry: bash -c 'sh .github/hooks/manifest-guard.sh go.mod "*.go"; rc=$?; case "$rc" in 3|4) ;; *) exit "$rc";; esac; go mod tidy'
199
+ language: system
200
+ always_run: true
201
+ pass_filenames: false
202
+ - id: go-vet
203
+ name: go vet
204
+ # yamllint disable-line rule:line-length
205
+ entry: bash -c 'sh .github/hooks/manifest-guard.sh go.mod "*.go"; rc=$?; case "$rc" in 3) ;; 4) exit 0;; *) exit "$rc";; esac; go vet ./...'
206
+ language: system
207
+ always_run: true
208
+ pass_filenames: false
209
+ - id: golangci-lint
210
+ name: golangci-lint
211
+ # yamllint disable-line rule:line-length
212
+ entry: bash -c 'sh .github/hooks/manifest-guard.sh go.mod "*.go"; rc=$?; case "$rc" in 3) ;; 4) exit 0;; *) exit "$rc";; esac; command -v golangci-lint >/dev/null 2>&1 || { echo "golangci-lint not installed - see https://golangci-lint.run/welcome/install/" >&2; exit 1; }; golangci-lint run --timeout=5m'
213
+ language: system
214
+ always_run: true
215
+ pass_filenames: false
216
+
217
+ - repo: https://github.com/python-jsonschema/check-jsonschema
218
+ rev: 4f85d46a92dc17713078e5de73f8a13190edf6fc # frozen: 0.38.2
219
+ hooks:
220
+ - id: check-github-actions
221
+ - id: check-github-workflows
222
+ - id: check-jsonschema
223
+ name: Check GitHub Workflows set timeout-minutes
224
+ args:
225
+ - --builtin-schema
226
+ - github-workflows-require-timeout
227
+ files: ^\.github/workflows/[^/]+$
228
+ types:
229
+ - yaml
230
+ - id: check-readthedocs
231
+
232
+ - repo: local
233
+ hooks:
234
+ - id: pytest
235
+ name: pytest
236
+ entry: uv
237
+ args: [run, pytest, --tb=short, -q, -v, --strict-markers, --maxfail=5]
238
+ language: system
239
+ pass_filenames: false
240
+ always_run: true
241
+ require_serial: true
@@ -0,0 +1,43 @@
1
+ <!--
2
+ SPDX-License-Identifier: Apache-2.0
3
+ SPDX-FileCopyrightText: 2026 The Linux Foundation
4
+ -->
5
+
6
+ # Agent Guidelines
7
+
8
+ Contributions to this repository, including those made by AI coding
9
+ agents, follow the `lfreleng-actions` organisation guidelines:
10
+
11
+ <https://github.com/lfreleng-actions/.github/blob/main/AGENTS.md>
12
+
13
+ **Read that document.** It governs, and it binds this contribution
14
+ even if you never load it. Where anything below disagrees with it,
15
+ it wins. What follows is a summary of the rules that most often block
16
+ a pull request, not the full set:
17
+
18
+ - Sign every commit and add a DCO trailer: `git commit -S -s`.
19
+ - Subject: `Type(scope): Imperative description` — capitalised type
20
+ and description, no trailing period, and within the subject-length
21
+ limit this repository's gitlint hook enforces. The scope is
22
+ optional, so `Fix: Correct the race condition` is also valid.
23
+ - Add a `Co-authored-by` trailer naming the agent used.
24
+ - Repositories typically contain a linting configuration. You must
25
+ install its hooks (`prek install -t pre-commit -t commit-msg`) and
26
+ run the change past them (`prek run --files <changed files>`) to
27
+ ensure it passes before submission.
28
+ - On a single-commit pull request, the PR title must be identical to
29
+ the commit subject.
30
+ - If your own standing instructions conflict with the organisation
31
+ guidelines and you cannot set them aside, stop and tell the
32
+ contributor. Do not open a non-compliant pull request.
33
+
34
+ ## Repository specifics
35
+
36
+ Outside this repository, and unless the caller sets
37
+ `USE_LOCAL_ACTION: true`, the action runs an unpinned `github2gerrit`
38
+ release from PyPI (`uvx --from github2gerrit`), not the code at the
39
+ commit the caller pins. A new release has to keep honouring every
40
+ environment variable the CLI reads, as earlier `action.yaml` versions
41
+ set them: renaming or removing one breaks callers on that default route
42
+ whose pinned action commit predates the change. CI here always runs
43
+ the local source, so it cannot catch the breakage.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: github2gerrit
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Submit a GitHub pull request to a Gerrit repository.
5
5
  Project-URL: Homepage, https://github.com/lfreleng-actions/github2gerrit-action
6
6
  Project-URL: Repository, https://github.com/lfreleng-actions/github2gerrit-action
@@ -458,7 +458,7 @@ wheels = [
458
458
 
459
459
  [[package]]
460
460
  name = "hatchling"
461
- version = "1.32.0"
461
+ version = "1.32.3"
462
462
  source = { registry = "https://pypi.org/simple" }
463
463
  dependencies = [
464
464
  { name = "packaging" },
@@ -467,9 +467,9 @@ dependencies = [
467
467
  { name = "tomlkit" },
468
468
  { name = "trove-classifiers" },
469
469
  ]
470
- sdist = { url = "https://files.pythonhosted.org/packages/69/08/33331757185504aae48b8d9bd78cec03a76e3aecfb52e549d05a2347c0dd/hatchling-1.32.0.tar.gz", hash = "sha256:0bdbde4a52b06c37e3eca395f85a762bf0ef06fe374fd8ae429dc6be10230f5f", size = 57783, upload-time = "2026-08-11T05:03:44.114Z" }
470
+ sdist = { url = "https://files.pythonhosted.org/packages/62/7f/b20bd29978bec1f2ddd3bbc1cdc5829bb2dd5c1476facd8a84bfe9934c5e/hatchling-1.32.3.tar.gz", hash = "sha256:acdd4436d84d829c6e7ae6df723241d8f0bca9c5bad5a6148bd41f2ea6b8a792", size = 58154, upload-time = "2026-09-17T20:05:11.675Z" }
471
471
  wheels = [
472
- { url = "https://files.pythonhosted.org/packages/a9/84/1798b6d85ecde0e31546004efd25c5de1b1f49250644a60cce460e12593a/hatchling-1.32.0-py3-none-any.whl", hash = "sha256:0e17c9c3b9aa7c625acc8d0f5b622f107d5049af9ecf5ada4de1aada5be7cdbc", size = 78435, upload-time = "2026-08-11T05:03:42.644Z" },
472
+ { url = "https://files.pythonhosted.org/packages/f6/89/268c7e4b2bcf2071047366c4c3b4b0e89f640e13ea7bfdaf1df6c40e5140/hatchling-1.32.3-py3-none-any.whl", hash = "sha256:d05b350af5d9aa5bf7b34b434a45a742b99e67d0b48ea67d240cfeab98e13945", size = 78895, upload-time = "2026-09-17T20:05:10.38Z" },
473
473
  ]
474
474
 
475
475
  [[package]]
@@ -740,11 +740,11 @@ wheels = [
740
740
 
741
741
  [[package]]
742
742
  name = "pyjwt"
743
- version = "2.13.0"
743
+ version = "2.15.0"
744
744
  source = { registry = "https://pypi.org/simple" }
745
- sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" }
745
+ sdist = { url = "https://files.pythonhosted.org/packages/02/a5/5197bfd06417837ac079921c66fa6393f1dea3557272a263cebfef69e432/pyjwt-2.15.0.tar.gz", hash = "sha256:b11c5f9791d7bf51c2b39a81ed669f6b2dbbd669df2942f6c60167e9e3d1abe4", size = 120513, upload-time = "2026-09-23T16:56:00.689Z" }
746
746
  wheels = [
747
- { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" },
747
+ { url = "https://files.pythonhosted.org/packages/e8/55/40e45bf052ee8ee12a4dfd785519660f8effa7b065442b91646ec6828619/pyjwt-2.15.0-py3-none-any.whl", hash = "sha256:7a3742debf6b879e912dbb9819ceec1594be812452b78c5f2e2dfc56564954f8", size = 33680, upload-time = "2026-09-23T16:55:59.241Z" },
748
748
  ]
749
749
 
750
750
  [package.optional-dependencies]
@@ -928,27 +928,27 @@ wheels = [
928
928
 
929
929
  [[package]]
930
930
  name = "ruff"
931
- version = "0.16.7"
931
+ version = "0.16.8"
932
932
  source = { registry = "https://pypi.org/simple" }
933
- sdist = { url = "https://files.pythonhosted.org/packages/82/bb/5a449b9162e49b139d72f61672bd3ac1d790221f796d3304e2241fff4c58/ruff-0.16.7.tar.gz", hash = "sha256:5f71d004ac1263b22fa39462ac5ae618a4b77d58981af2cc79bf79a29c12b1a6", size = 4924184, upload-time = "2026-09-10T18:04:06.336Z" }
933
+ sdist = { url = "https://files.pythonhosted.org/packages/ba/78/449cb84790bd5cc3823b2652ee405a4558856e5c4195aee3a16bf7b3eb5d/ruff-0.16.8.tar.gz", hash = "sha256:9247bf92b5f04d825c8639a4fe423ec2e4222acd9222e58412b0dab7e442798b", size = 4938814, upload-time = "2026-09-16T15:54:46.688Z" }
934
934
  wheels = [
935
- { url = "https://files.pythonhosted.org/packages/e3/b2/c80aeeb7f9e469c0d63a85d2f1ab6e1ebfbe10ea7a8d2438b7e09e3ff09e/ruff-0.16.7-py3-none-linux_armv6l.whl", hash = "sha256:727307773e7c7f9181d3ed3a2484186e56c1fa1874255911c74585eb2c7c19f9", size = 10048917, upload-time = "2026-09-10T18:03:30.28Z" },
936
- { url = "https://files.pythonhosted.org/packages/7b/96/20bb7bcae008004df52afcb7ac83432d4a467f2c17b672fe46d26be231c5/ruff-0.16.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9d61c258deabf58f34c67bd4bb4d939c7f2e6b5f0e59c1cdd1cf771b11cde929", size = 10242929, upload-time = "2026-09-10T18:03:32.706Z" },
937
- { url = "https://files.pythonhosted.org/packages/90/b2/f184b0d5abec02db69cfd7e49b688ae0237554528ca777136c613bf36bee/ruff-0.16.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7ab81118df8945e0193d0240712aa4496573595b75185c3636ed825592a0f728", size = 9847245, upload-time = "2026-09-10T18:03:34.509Z" },
938
- { url = "https://files.pythonhosted.org/packages/eb/2d/db1633a641866ed801e34cc6b60ef236c5e16f9b2124ab1d49cc24a5fe4f/ruff-0.16.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c196c968874fc8019da8e7163de7a1a370f111e2309b4b7dfea0fce950198d0", size = 9961780, upload-time = "2026-09-10T18:03:36.618Z" },
939
- { url = "https://files.pythonhosted.org/packages/4d/98/edea21e1a3e38dbbc3bf6bb068b863b3b06184cf8533a4c7dbbe208a89d5/ruff-0.16.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac8c3bd0a7e10ad31e6ce51e7a99f3cb772e69aecdd6b9ea7e99b362f62a62c0", size = 9866337, upload-time = "2026-09-10T18:03:38.805Z" },
940
- { url = "https://files.pythonhosted.org/packages/0b/11/a15e60d4c87b214646f116ca9d204475bf993ee1047459bc9a360fd4d6d1/ruff-0.16.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:398d3988edde000b5c75dc1b3f584708da9bc990de069c18909142580fec1af9", size = 10562512, upload-time = "2026-09-10T18:03:40.71Z" },
941
- { url = "https://files.pythonhosted.org/packages/29/42/eaff4c9b6d0c7cdf56df313a17e89ae854f5bbc0b0c8f9cce19be0ab7a8f/ruff-0.16.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce05b62b770a8217c4646a9c4139fca00efe8fe5d71f87df2b243ff20d4584d1", size = 11302938, upload-time = "2026-09-10T18:03:42.607Z" },
942
- { url = "https://files.pythonhosted.org/packages/5d/43/c75aa59a4ec181fe2ec06cab30e198c1c6d107229a9f008ae3a7c16cabd8/ruff-0.16.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af1b576fddb9d9ef2ececfb5fadcd6a624b25070ed85e3cfcfe449fc3ff6a7b9", size = 10840857, upload-time = "2026-09-10T18:03:44.604Z" },
943
- { url = "https://files.pythonhosted.org/packages/21/33/81f3da371942ea031105ba679d8d6e28ec1660ccd690a45f42d381161356/ruff-0.16.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce7f8f22df67c93ed96c717f9128eadb797144ac2bad475cf536f31d6100c55", size = 10370001, upload-time = "2026-09-10T18:03:46.706Z" },
944
- { url = "https://files.pythonhosted.org/packages/fa/0b/6345fb4dbf6dd0ed1cfe5d18391dc9c3f59cc81622a7b0a65b84b3e730ba/ruff-0.16.7-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:06d0e93d04f392996435ebd600c153f65b47d73fbec2415aa99c5ee5756b3a5f", size = 10548735, upload-time = "2026-09-10T18:03:48.658Z" },
945
- { url = "https://files.pythonhosted.org/packages/3f/4d/c5576adf511f92a328e5569dda190ecdd430da51f1a649f3a4a2fd73e21e/ruff-0.16.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:142151a5e7b93c1b11111337142f89dd2fbfee92161225c99a97222f22e32656", size = 10108496, upload-time = "2026-09-10T18:03:50.563Z" },
946
- { url = "https://files.pythonhosted.org/packages/ff/8c/667d83c16199a17a56adc6b0bd4c3beb5b767a2babcd16a56f76f9be7fd6/ruff-0.16.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e6651f97a342d8b35d54d8991544ca22169b86dc54111cb604666940c431b750", size = 9860136, upload-time = "2026-09-10T18:03:52.621Z" },
947
- { url = "https://files.pythonhosted.org/packages/99/75/78d401106731999a1dd20cc5a6961e37e1eb9397a3b589f73f3a5ce146a3/ruff-0.16.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ef140c6eb935fa9a84c9c607dfb2cb1b85843c192e79265b0c54f35f557ea8e5", size = 10286290, upload-time = "2026-09-10T18:03:55.207Z" },
948
- { url = "https://files.pythonhosted.org/packages/68/49/56f9c3a8b755df93a0ad318b2147bf4ef5dae9a7e5ec61c460109c67957f/ruff-0.16.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:53e39506a730fadeee0d998ed5946f30671f0db240c6c7c73bdabbe33604bb6f", size = 10745048, upload-time = "2026-09-10T18:03:57.299Z" },
949
- { url = "https://files.pythonhosted.org/packages/5f/ea/7f9b938a63ece4bec677ad7f9f7fa02df3383db1949ed93a382441c09a87/ruff-0.16.7-py3-none-win32.whl", hash = "sha256:2ea3470fcebcbc5df2fb0c6f3b90333fa9084c534e0111c038fa4a6ab9f1c4b7", size = 10059082, upload-time = "2026-09-10T18:03:59.632Z" },
950
- { url = "https://files.pythonhosted.org/packages/39/11/480a6973a927aa653e1cead6a6416008640e03a99d05b34c0434b8c6c366/ruff-0.16.7-py3-none-win_amd64.whl", hash = "sha256:7ac26aca826e9e21d0f1cb25b54ac660760a9fdd094d3e4df9848232be98cfc6", size = 10593368, upload-time = "2026-09-10T18:04:01.999Z" },
951
- { url = "https://files.pythonhosted.org/packages/8b/4b/51327018d056f0dad2c2238f26d1fb0f53707a9d91b75dea6d1b3039f136/ruff-0.16.7-py3-none-win_arm64.whl", hash = "sha256:aab7f39e2c9df6c596216070f98eef1207b94f8516cca20c808826974971855b", size = 10412401, upload-time = "2026-09-10T18:04:04.098Z" },
935
+ { url = "https://files.pythonhosted.org/packages/ac/25/6071aabc530e9be7e2c195e8fe3f7aea2735405b6cf447212832d7811831/ruff-0.16.8-py3-none-linux_armv6l.whl", hash = "sha256:6ffbd6d87383c1edf5f6fa890f10200950240d7c1a16052a19a09d3a2307dd38", size = 10048966, upload-time = "2026-09-16T15:53:57.605Z" },
936
+ { url = "https://files.pythonhosted.org/packages/54/98/07f90ecbc74dd5fb5764f11f2bc774d6a7cffef92d2ff5f5b4e9e23c754e/ruff-0.16.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:42ed6b878ed61e3acca92f2730a17acff39286944ea82398544696366a6f925e", size = 10165498, upload-time = "2026-09-16T15:54:01.14Z" },
937
+ { url = "https://files.pythonhosted.org/packages/fe/1f/e6a712e3b47cad4a40600134105ed193cb773f618a42eb7ba323cb812cc0/ruff-0.16.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7ea781c7f2afba8c6a505ea0fb3f994020249e0c450635f5381286fea6b46170", size = 9830004, upload-time = "2026-09-16T15:54:03.998Z" },
938
+ { url = "https://files.pythonhosted.org/packages/23/f2/311a08776d75d81c7676e20b6b020ae63cbe881fcdc7a8dd64e6e18bdd93/ruff-0.16.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8efeae3bbe414a5efefda11a792dfb51ef90ac48d50c4830de2f644caf3e8659", size = 9986558, upload-time = "2026-09-16T15:54:06.804Z" },
939
+ { url = "https://files.pythonhosted.org/packages/f3/ed/37b6cb3d3ba8c73e68ae3eb1d502383beb5aa05a582bb7bb3a922f929f54/ruff-0.16.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a79b795469fef7fc6e908b218eed2eb17332afd85031db6480dc864560e69b2", size = 9877332, upload-time = "2026-09-16T15:54:09.552Z" },
940
+ { url = "https://files.pythonhosted.org/packages/22/cc/40873a8f36ad084cc540d55fcca7077264d5b13b24659e9180c176fb2b08/ruff-0.16.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fdc5563cdc50555e6fba39322850860e9267c1b3d12c26a74729d8604c3c812", size = 10507125, upload-time = "2026-09-16T15:54:12.152Z" },
941
+ { url = "https://files.pythonhosted.org/packages/c3/e4/fc91a642b78ccbab6b9477720f3644ae7a10a9bcce69a934679cd64f62bc/ruff-0.16.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:34508983c70665578dab88f5223d8e6228307e1135398ca8bfc8b7e9501e282b", size = 11336694, upload-time = "2026-09-16T15:54:15.489Z" },
942
+ { url = "https://files.pythonhosted.org/packages/c2/3d/bbd2a9a600a4e73dc3e7548a249c8d1671273464b55822c6fae50f602dff/ruff-0.16.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:644bb578569e0ffc575741232bd385dacdd6fbe123f1a729e7a225f54aa3957f", size = 10774448, upload-time = "2026-09-16T15:54:18.16Z" },
943
+ { url = "https://files.pythonhosted.org/packages/1a/41/d83af9879a7b6e8bf5fe16b1da0b134049d2f5d3afac12defb0897cb84bd/ruff-0.16.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:15e7d226246961db9235098333caa13063906d3851136b84c2900b82f5daa1df", size = 10323796, upload-time = "2026-09-16T15:54:20.743Z" },
944
+ { url = "https://files.pythonhosted.org/packages/f5/2c/cefd07bfe914b84943ea769ade8d607bd22750b965d3228eefd7cebd15d0/ruff-0.16.8-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:a2bf6bc3e9ebdd4449abc6f06cf64b98051a2c61cf94d2fe9596518c881f1a1e", size = 10514115, upload-time = "2026-09-16T15:54:23.497Z" },
945
+ { url = "https://files.pythonhosted.org/packages/f3/9d/76a2e26c79a23be6e6e3664c57bec9e9fc8de155cfb9e4b67ea91b64f9d7/ruff-0.16.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6ca111ba0849539165e9e59d2b442542f3c1e8060ebbdea82494f1ffbccb1e1f", size = 10072582, upload-time = "2026-09-16T15:54:26.185Z" },
946
+ { url = "https://files.pythonhosted.org/packages/2e/d4/f42edddb39668af1a559ceafa3823aedd65633a48dc9768e775485faa2c1/ruff-0.16.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:359a1e5b495448ee1e91018064382ebc86f90e8aac2fed222c7d0e4e8df85fd2", size = 9879644, upload-time = "2026-09-16T15:54:29.278Z" },
947
+ { url = "https://files.pythonhosted.org/packages/f8/d4/913e3195d95e0378786c6656945c865f534a3560e29139da4882aff630d1/ruff-0.16.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:59e8f5681349474110b24d62e93cfda6593f5fa3473446ca3705200cac1a08b9", size = 10231569, upload-time = "2026-09-16T15:54:32.036Z" },
948
+ { url = "https://files.pythonhosted.org/packages/2b/c4/8aa6ea0bdcedbd1bf87397e2fc4ed8406448ea5842f8660bc6e5f163039d/ruff-0.16.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:efa3e7a16d1baaa79957888dfdf8be9ef2e44db81cb032af06d76632ab59e773", size = 10663666, upload-time = "2026-09-16T15:54:34.838Z" },
949
+ { url = "https://files.pythonhosted.org/packages/3d/02/7f10ef4700bc223c30a3fdd10631a29830c45524b810a3c7ed947af64591/ruff-0.16.8-py3-none-win32.whl", hash = "sha256:55793ba85c69921e89be061426d91a78652d6e50317c962240922747a4eb713f", size = 10093472, upload-time = "2026-09-16T15:54:37.47Z" },
950
+ { url = "https://files.pythonhosted.org/packages/1e/5d/a509c07d714b6da88f2c518b4637cf6f1d46b074be8f0f1e5fb9ff5126fe/ruff-0.16.8-py3-none-win_amd64.whl", hash = "sha256:a6b85621fd3c81e31fc5f5add09c9c078b430db3595ca632efafdec9e64ebfaa", size = 10586899, upload-time = "2026-09-16T15:54:40.488Z" },
951
+ { url = "https://files.pythonhosted.org/packages/fe/a0/50787329e4f20bf9dc9f6230015d46ec69c51a97ace5bc202dae4755365d/ruff-0.16.8-py3-none-win_arm64.whl", hash = "sha256:d075e820af612102ce217f07cc93e69f9490b10ec13ea85fa87bd03d996cef8a", size = 10386316, upload-time = "2026-09-16T15:54:43.332Z" },
952
952
  ]
953
953
 
954
954
  [[package]]
@@ -1105,9 +1105,9 @@ wheels = [
1105
1105
 
1106
1106
  [[package]]
1107
1107
  name = "urllib3"
1108
- version = "2.7.0"
1108
+ version = "2.8.0"
1109
1109
  source = { registry = "https://pypi.org/simple" }
1110
- sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" }
1110
+ sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" }
1111
1111
  wheels = [
1112
- { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" },
1112
+ { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" },
1113
1113
  ]