github2gerrit 1.1.0__tar.gz → 1.2.0__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 (129) hide show
  1. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.pre-commit-config.yaml +14 -9
  2. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/PKG-INFO +1 -1
  3. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/action.yaml +39 -2
  4. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/pyproject.toml +1 -13
  5. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/cli.py +8 -0
  6. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_cli.py +49 -0
  7. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/uv.lock +60 -60
  8. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.editorconfig +0 -0
  9. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.gitignore +0 -0
  10. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.gitlint +0 -0
  11. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.markdownlint.yaml +0 -0
  12. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.readthedocs.yml +0 -0
  13. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/.yamllint +0 -0
  14. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/LICENSE +0 -0
  15. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/LICENSES/Apache-2.0.txt +0 -0
  16. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/README.md +0 -0
  17. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/REUSE.toml +0 -0
  18. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/docs/COMMIT_RULES.md +0 -0
  19. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/docs/COMPOSITE_ACTION_TESTING.md +0 -0
  20. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/docs/PR_UPDATE_IMPLEMENTATION.md +0 -0
  21. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/docs/RELEASE-v0.2.0.md +0 -0
  22. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/docs/github2gerrit_token_permissions_classic.png +0 -0
  23. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/sitecustomize.py +0 -0
  24. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/__init__.py +0 -0
  25. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/commit_normalization.py +0 -0
  26. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/commit_rules.py +0 -0
  27. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/config.py +0 -0
  28. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/constants.py +0 -0
  29. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/core.py +0 -0
  30. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/duplicate_detection.py +0 -0
  31. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/error_codes.py +0 -0
  32. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/external_api.py +0 -0
  33. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/gerrit_pr_closer.py +0 -0
  34. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/gerrit_query.py +0 -0
  35. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/gerrit_rest.py +0 -0
  36. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/gerrit_urls.py +0 -0
  37. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/github_api.py +0 -0
  38. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/gitreview.py +0 -0
  39. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/gitutils.py +0 -0
  40. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/mapping_comment.py +0 -0
  41. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/models.py +0 -0
  42. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/netrc.py +0 -0
  43. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/orchestrator/__init__.py +0 -0
  44. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/orchestrator/reconciliation.py +0 -0
  45. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/pr_commands.py +0 -0
  46. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/pr_content_filter.py +0 -0
  47. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/reconcile_matcher.py +0 -0
  48. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/rich_display.py +0 -0
  49. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/rich_logging.py +0 -0
  50. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/similarity.py +0 -0
  51. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/ssh_agent_setup.py +0 -0
  52. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/ssh_common.py +0 -0
  53. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/ssh_config_parser.py +0 -0
  54. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/ssh_discovery.py +0 -0
  55. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/trailers.py +0 -0
  56. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/src/github2gerrit/utils.py +0 -0
  57. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/conftest.py +0 -0
  58. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/fixtures/__init__.py +0 -0
  59. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/fixtures/make_repo.py +0 -0
  60. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/fixtures/ssh_config_samples.py +0 -0
  61. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_action_environment_mapping.py +0 -0
  62. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_action_outputs.py +0 -0
  63. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_action_pr_number_handling.py +0 -0
  64. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_action_step_validation.py +0 -0
  65. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_automation_only.py +0 -0
  66. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_change_id_deduplication.py +0 -0
  67. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_cli_helpers.py +0 -0
  68. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_cli_netrc_options.py +0 -0
  69. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_cli_outputs_file.py +0 -0
  70. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_cli_url_and_dryrun.py +0 -0
  71. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_commit_normalization.py +0 -0
  72. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_commit_rules.py +0 -0
  73. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_composite_action_coverage.py +0 -0
  74. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_config_and_reviewers.py +0 -0
  75. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_config_helpers.py +0 -0
  76. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_close_pr_policy.py +0 -0
  77. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_config_and_errors.py +0 -0
  78. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_gerrit_backref_comment.py +0 -0
  79. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_gerrit_push_errors.py +0 -0
  80. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_gerrit_rest_results.py +0 -0
  81. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_integration_fixture_repo.py +0 -0
  82. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_prepare_commits.py +0 -0
  83. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_shallow_clone.py +0 -0
  84. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_ssh_setup.py +0 -0
  85. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_core_ssrf_protection.py +0 -0
  86. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_dns_validation_and_no_gerrit.py +0 -0
  87. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_duplicate_detection.py +0 -0
  88. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_email_case_normalization.py +0 -0
  89. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_error_codes.py +0 -0
  90. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_external_api_framework.py +0 -0
  91. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_force_flag_cli.py +0 -0
  92. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gerrit_change_id_footer.py +0 -0
  93. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gerrit_change_status_checks.py +0 -0
  94. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gerrit_pr_closer.py +0 -0
  95. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gerrit_rest_client.py +0 -0
  96. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gerrit_urls.py +0 -0
  97. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gerrit_urls_more.py +0 -0
  98. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ghe_and_gitreview_args.py +0 -0
  99. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_github_api_error_handling.py +0 -0
  100. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_github_api_helpers.py +0 -0
  101. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_github_api_retry_and_helpers.py +0 -0
  102. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gitreview.py +0 -0
  103. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_gitutils_helpers.py +0 -0
  104. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_issue_157_regressions.py +0 -0
  105. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_mapping_comment_additional.py +0 -0
  106. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_mapping_comment_digest_and_backref.py +0 -0
  107. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_metadata_and_reconciliation.py +0 -0
  108. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_metadata_trailer_separation_bug.py +0 -0
  109. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_misc_small_coverage.py +0 -0
  110. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_netrc.py +0 -0
  111. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_orphan_rest_side_effects.py +0 -0
  112. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_pr_commands.py +0 -0
  113. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_pr_content_filter.py +0 -0
  114. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_pr_content_filter_integration.py +0 -0
  115. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_pr_update_detection.py +0 -0
  116. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_reconciliation_extracted_module.py +0 -0
  117. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_reconciliation_plan_and_orphans.py +0 -0
  118. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_reconciliation_scenarios.py +0 -0
  119. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ssh_agent.py +0 -0
  120. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ssh_agent_ownership.py +0 -0
  121. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ssh_artifact_prevention.py +0 -0
  122. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ssh_common.py +0 -0
  123. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ssh_discovery.py +0 -0
  124. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_ssh_discovery_dry_run.py +0 -0
  125. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_trailers_additional.py +0 -0
  126. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_url_parser.py +0 -0
  127. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/test_utils.py +0 -0
  128. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/unit/test_config_integration.py +0 -0
  129. {github2gerrit-1.1.0 → github2gerrit-1.2.0}/tests/unit/test_ssh_config_parser.py +0 -0
@@ -3,7 +3,7 @@
3
3
  # SPDX-FileCopyrightText: 2025 The Linux Foundation
4
4
 
5
5
  ci:
6
- skip: [pytest]
6
+ skip: [pytest, gha-workflow-linter]
7
7
  autofix_commit_msg: |
8
8
  Chore: pre-commit autofixes
9
9
 
@@ -59,7 +59,7 @@ repos:
59
59
  types: [yaml]
60
60
 
61
61
  - repo: https://github.com/astral-sh/ruff-pre-commit
62
- rev: b969e2851312ca2b24bbec879ba4954341d1bd12 # frozen: v0.15.5
62
+ rev: e05c5c0818279e5ac248ac9e954431ba58865e61 # frozen: v0.15.7
63
63
  hooks:
64
64
  - id: ruff
65
65
  files: ^(src|scripts|tests)/.+\.py$
@@ -76,13 +76,6 @@ repos:
76
76
  - types-PyYAML
77
77
  - types-requests
78
78
 
79
- # Doesn't seem to run reliably inside pre-commit.ci
80
- # - repo: https://github.com/RobertCraigie/pyright-python
81
- # rev: d393df1703a808473b84bd14a2702f4793014031 # frozen: v1.1.404
82
- # hooks:
83
- # - id: pyright
84
- # files: ^(src|scripts|tests)/.+\.py$
85
-
86
79
  - repo: https://github.com/btford/write-good
87
80
  rev: ab66ce10136dfad5146e69e70f82a3efac8842c1 # frozen: v1.0.8
88
81
  hooks:
@@ -120,6 +113,18 @@ repos:
120
113
  hooks:
121
114
  - id: codespell
122
115
 
116
+ # Requires a mirror, primary repo lacks .pre-commit-hooks.yaml
117
+ - repo: https://github.com/DetachHead/basedpyright-prek-mirror
118
+ rev: d58fe7fc44458fa7e41e2d38c04598a3c87833f2 # frozen: 1.38.3
119
+ hooks:
120
+ - id: basedpyright
121
+ files: ^src/.+\.py$
122
+
123
+ - repo: https://github.com/lfreleng-actions/gha-workflow-linter
124
+ rev: a7caf8f3a1a05688d1cee46615ff94def617e5a3 # frozen: v1.0.2
125
+ hooks:
126
+ - id: gha-workflow-linter
127
+
123
128
  - repo: https://github.com/python-jsonschema/check-jsonschema
124
129
  rev: 8db279a37c552206d2df62269ff6f9d31125815a # frozen: 0.37.0
125
130
  hooks:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: github2gerrit
3
- Version: 1.1.0
3
+ Version: 1.2.0
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
@@ -157,6 +157,10 @@ inputs:
157
157
  description: "Create a Gerrit change when an UPDATE operation cannot find an existing one"
158
158
  required: false
159
159
  default: "false"
160
+ G2G_DISABLED:
161
+ description: "Set to 'true' to disable the action entirely (exits successfully with a message)"
162
+ required: false
163
+ default: ""
160
164
 
161
165
  outputs:
162
166
  gerrit_change_request_url:
@@ -172,7 +176,34 @@ outputs:
172
176
  runs:
173
177
  using: "composite"
174
178
  steps:
179
+ - name: "Check if GitHub2Gerrit is disabled"
180
+ id: disabled-check
181
+ shell: bash
182
+ run: |
183
+ # Check if GitHub2Gerrit is disabled
184
+ set -euo pipefail
185
+ DISABLED_ENV="${G2G_DISABLED:-}"
186
+ DISABLED_INPUT="${{ inputs.G2G_DISABLED }}"
187
+ # Normalize: accept the same truthy set as env_bool()
188
+ # (1/true/yes/on, case-insensitive, trimmed)
189
+ _normalize() {
190
+ printf '%s' "$1" | tr '[:upper:]' '[:lower:]' | xargs
191
+ }
192
+ _is_truthy() {
193
+ case "$(_normalize "$1")" in
194
+ 1|true|yes|on) return 0 ;;
195
+ *) return 1 ;;
196
+ esac
197
+ }
198
+ if _is_truthy "${DISABLED_ENV}" || _is_truthy "${DISABLED_INPUT}"; then
199
+ echo "🛑 GitHub2Gerrit is disabled by check of G2G_DISABLED variable or input"
200
+ echo "disabled=true" >> "$GITHUB_OUTPUT"
201
+ else
202
+ echo "disabled=false" >> "$GITHUB_OUTPUT"
203
+ fi
204
+
175
205
  - name: "Checkout repository"
206
+ if: steps.disabled-check.outputs.disabled != 'true'
176
207
  # yamllint disable-line rule:line-length
177
208
  uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
178
209
  with:
@@ -181,18 +212,21 @@ runs:
181
212
  ref: ${{ github.event.pull_request.head.sha || github.sha }}
182
213
 
183
214
  - name: "Setup Python"
215
+ if: steps.disabled-check.outputs.disabled != 'true'
184
216
  # yamllint disable-line rule:line-length
185
217
  uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
186
218
  with:
187
219
  python-version-file: '${{ github.action_path }}/pyproject.toml'
188
220
 
189
221
  - name: "Setup uv"
222
+ if: steps.disabled-check.outputs.disabled != 'true'
190
223
  # yamllint disable-line rule:line-length
191
224
  uses: astral-sh/setup-uv@37802adc94f370d6bfd71619e3f0bf239e1f3b78 # v7.6.0
192
225
  with:
193
226
  enable-cache: false
194
227
 
195
228
  - name: "Setup github2gerrit"
229
+ if: steps.disabled-check.outputs.disabled != 'true'
196
230
  shell: bash
197
231
  env:
198
232
  # Provide version for hatch-vcs (via setuptools-scm)
@@ -214,7 +248,7 @@ runs:
214
248
 
215
249
  - name: "Validate PR_NUMBER usage"
216
250
  # yamllint disable-line rule:line-length
217
- if: ${{ github.event_name != 'workflow_dispatch' && inputs.PR_NUMBER != '' && inputs.PR_NUMBER != '0' }}
251
+ if: ${{ steps.disabled-check.outputs.disabled != 'true' && github.event_name != 'workflow_dispatch' && inputs.PR_NUMBER != '' && inputs.PR_NUMBER != '0' }}
218
252
  shell: bash
219
253
  run: |
220
254
  # Validate PR_NUMBER usage
@@ -223,7 +257,7 @@ runs:
223
257
  exit 2
224
258
 
225
259
  - name: "Normalize PR_NUMBER"
226
- if: ${{ github.event_name == 'workflow_dispatch' }}
260
+ if: ${{ steps.disabled-check.outputs.disabled != 'true' && github.event_name == 'workflow_dispatch' }}
227
261
  shell: bash
228
262
  run: |
229
263
  # Normalize PR_NUMBER
@@ -243,6 +277,7 @@ runs:
243
277
  fi
244
278
 
245
279
  - name: "Extract PR number, validate context"
280
+ if: steps.disabled-check.outputs.disabled != 'true'
246
281
  shell: bash
247
282
  run: |
248
283
  # Extract PR number, validate context
@@ -284,6 +319,7 @@ runs:
284
319
  fi
285
320
 
286
321
  - name: "Run github2gerrit Python CLI"
322
+ if: steps.disabled-check.outputs.disabled != 'true'
287
323
  id: run-cli
288
324
  shell: bash
289
325
  env:
@@ -357,6 +393,7 @@ runs:
357
393
  fi
358
394
 
359
395
  - name: "Capture outputs"
396
+ if: steps.disabled-check.outputs.disabled != 'true'
360
397
  id: capture-outputs
361
398
  shell: bash
362
399
  # yamllint disable rule:line-length
@@ -235,19 +235,7 @@ markers = [
235
235
 
236
236
  [tool.pyright]
237
237
  pythonVersion = "3.11"
238
- include = ["src", "tests"]
239
- exclude = [
240
- "build/",
241
- "dist/",
242
- "docs/",
243
- "scripts/",
244
- "tests/fixtures/",
245
- ".venv/",
246
- ".mypy_cache/",
247
- ".pytest_cache/",
248
- ".ruff_cache/",
249
- "coverage_html_report/",
250
- ]
238
+ include = ["src"]
251
239
  typeCheckingMode = "strict"
252
240
  reportMissingImports = "none"
253
241
  reportMissingTypeStubs = "none"
@@ -845,6 +845,14 @@ def main(
845
845
  typer.echo("Version information not available")
846
846
  sys.exit(int(ExitCode.SUCCESS))
847
847
 
848
+ # Check if GitHub2Gerrit is disabled via environment variable
849
+ if env_bool("G2G_DISABLED"):
850
+ typer.echo(
851
+ "\U0001f6d1 GitHub2Gerrit is disabled by check of "
852
+ "G2G_DISABLED variable"
853
+ )
854
+ sys.exit(int(ExitCode.SUCCESS))
855
+
848
856
  # Override boolean parameters with properly parsed environment variables.
849
857
  # This ensures that string "false" from GitHub Actions is handled
850
858
  # correctly (Typer/Click treats any non-empty string as truthy).
@@ -156,6 +156,55 @@ def test_missing_required_inputs_exits_2(tmp_path: Path) -> None:
156
156
  assert "Missing required input" in error_output
157
157
 
158
158
 
159
+ def test_disabled_variable_true_exits_0(tmp_path: Path) -> None:
160
+ """Setting G2G_DISABLED=true should exit 0 with a message."""
161
+ env = _base_env(tmp_path)
162
+ env["G2G_DISABLED"] = "true"
163
+
164
+ result = runner.invoke(app, [], env=env)
165
+ assert result.exit_code == 0
166
+ output = _get_combined_output(result)
167
+ assert (
168
+ "GitHub2Gerrit is disabled by check of G2G_DISABLED variable" in output
169
+ )
170
+
171
+
172
+ def test_disabled_variable_false_does_not_exit_early(tmp_path: Path) -> None:
173
+ """Setting G2G_DISABLED=false should not trigger the disabled check."""
174
+ env = _base_env(tmp_path)
175
+ env["G2G_DISABLED"] = "false"
176
+
177
+ result = runner.invoke(app, [], env=env)
178
+ assert result.exit_code == 0
179
+ output = _get_combined_output(result)
180
+ assert "GitHub2Gerrit is disabled" not in output
181
+ assert "Validation complete" in output
182
+
183
+
184
+ def test_disabled_variable_absent_does_not_exit_early(tmp_path: Path) -> None:
185
+ """When G2G_DISABLED is not set, the disabled check should not trigger."""
186
+ env = _base_env(tmp_path)
187
+ env.pop("G2G_DISABLED", None)
188
+
189
+ result = runner.invoke(app, [], env=env)
190
+ assert result.exit_code == 0
191
+ output = _get_combined_output(result)
192
+ assert "GitHub2Gerrit is disabled" not in output
193
+ assert "Validation complete" in output
194
+
195
+
196
+ def test_disabled_variable_empty_does_not_exit_early(tmp_path: Path) -> None:
197
+ """An empty G2G_DISABLED should not trigger the disabled check."""
198
+ env = _base_env(tmp_path)
199
+ env["G2G_DISABLED"] = ""
200
+
201
+ result = runner.invoke(app, [], env=env)
202
+ assert result.exit_code == 0
203
+ output = _get_combined_output(result)
204
+ assert "GitHub2Gerrit is disabled" not in output
205
+ assert "Validation complete" in output
206
+
207
+
159
208
  def test_parses_pr_number_and_returns_zero(tmp_path: Path) -> None:
160
209
  env = _base_env(tmp_path)
161
210
  # Ensure non-conflicting options and sane defaults
@@ -266,61 +266,61 @@ toml = [
266
266
 
267
267
  [[package]]
268
268
  name = "cryptography"
269
- version = "46.0.5"
269
+ version = "46.0.6"
270
270
  source = { registry = "https://pypi.org/simple" }
271
271
  dependencies = [
272
272
  { name = "cffi", marker = "platform_python_implementation != 'PyPy'" },
273
273
  ]
274
- sdist = { url = "https://files.pythonhosted.org/packages/60/04/ee2a9e8542e4fa2773b81771ff8349ff19cdd56b7258a0cc442639052edb/cryptography-46.0.5.tar.gz", hash = "sha256:abace499247268e3757271b2f1e244b36b06f8515cf27c4d49468fc9eb16e93d", size = 750064, upload-time = "2026-02-10T19:18:38.255Z" }
275
- wheels = [
276
- { url = "https://files.pythonhosted.org/packages/f7/81/b0bb27f2ba931a65409c6b8a8b358a7f03c0e46eceacddff55f7c84b1f3b/cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:351695ada9ea9618b3500b490ad54c739860883df6c1f555e088eaf25b1bbaad", size = 7176289, upload-time = "2026-02-10T19:17:08.274Z" },
277
- { url = "https://files.pythonhosted.org/packages/ff/9e/6b4397a3e3d15123de3b1806ef342522393d50736c13b20ec4c9ea6693a6/cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c18ff11e86df2e28854939acde2d003f7984f721eba450b56a200ad90eeb0e6b", size = 4275637, upload-time = "2026-02-10T19:17:10.53Z" },
278
- { url = "https://files.pythonhosted.org/packages/63/e7/471ab61099a3920b0c77852ea3f0ea611c9702f651600397ac567848b897/cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4d7e3d356b8cd4ea5aff04f129d5f66ebdc7b6f8eae802b93739ed520c47c79b", size = 4424742, upload-time = "2026-02-10T19:17:12.388Z" },
279
- { url = "https://files.pythonhosted.org/packages/37/53/a18500f270342d66bf7e4d9f091114e31e5ee9e7375a5aba2e85a91e0044/cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:50bfb6925eff619c9c023b967d5b77a54e04256c4281b0e21336a130cd7fc263", size = 4277528, upload-time = "2026-02-10T19:17:13.853Z" },
280
- { url = "https://files.pythonhosted.org/packages/22/29/c2e812ebc38c57b40e7c583895e73c8c5adb4d1e4a0cc4c5a4fdab2b1acc/cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:803812e111e75d1aa73690d2facc295eaefd4439be1023fefc4995eaea2af90d", size = 4947993, upload-time = "2026-02-10T19:17:15.618Z" },
281
- { url = "https://files.pythonhosted.org/packages/6b/e7/237155ae19a9023de7e30ec64e5d99a9431a567407ac21170a046d22a5a3/cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ee190460e2fbe447175cda91b88b84ae8322a104fc27766ad09428754a618ed", size = 4456855, upload-time = "2026-02-10T19:17:17.221Z" },
282
- { url = "https://files.pythonhosted.org/packages/2d/87/fc628a7ad85b81206738abbd213b07702bcbdada1dd43f72236ef3cffbb5/cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:f145bba11b878005c496e93e257c1e88f154d278d2638e6450d17e0f31e558d2", size = 3984635, upload-time = "2026-02-10T19:17:18.792Z" },
283
- { url = "https://files.pythonhosted.org/packages/84/29/65b55622bde135aedf4565dc509d99b560ee4095e56989e815f8fd2aa910/cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:e9251e3be159d1020c4030bd2e5f84d6a43fe54b6c19c12f51cde9542a2817b2", size = 4277038, upload-time = "2026-02-10T19:17:20.256Z" },
284
- { url = "https://files.pythonhosted.org/packages/bc/36/45e76c68d7311432741faf1fbf7fac8a196a0a735ca21f504c75d37e2558/cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:47fb8a66058b80e509c47118ef8a75d14c455e81ac369050f20ba0d23e77fee0", size = 4912181, upload-time = "2026-02-10T19:17:21.825Z" },
285
- { url = "https://files.pythonhosted.org/packages/6d/1a/c1ba8fead184d6e3d5afcf03d569acac5ad063f3ac9fb7258af158f7e378/cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:4c3341037c136030cb46e4b1e17b7418ea4cbd9dd207e4a6f3b2b24e0d4ac731", size = 4456482, upload-time = "2026-02-10T19:17:25.133Z" },
286
- { url = "https://files.pythonhosted.org/packages/f9/e5/3fb22e37f66827ced3b902cf895e6a6bc1d095b5b26be26bd13c441fdf19/cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:890bcb4abd5a2d3f852196437129eb3667d62630333aacc13dfd470fad3aaa82", size = 4405497, upload-time = "2026-02-10T19:17:26.66Z" },
287
- { url = "https://files.pythonhosted.org/packages/1a/df/9d58bb32b1121a8a2f27383fabae4d63080c7ca60b9b5c88be742be04ee7/cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:80a8d7bfdf38f87ca30a5391c0c9ce4ed2926918e017c29ddf643d0ed2778ea1", size = 4667819, upload-time = "2026-02-10T19:17:28.569Z" },
288
- { url = "https://files.pythonhosted.org/packages/ea/ed/325d2a490c5e94038cdb0117da9397ece1f11201f425c4e9c57fe5b9f08b/cryptography-46.0.5-cp311-abi3-win32.whl", hash = "sha256:60ee7e19e95104d4c03871d7d7dfb3d22ef8a9b9c6778c94e1c8fcc8365afd48", size = 3028230, upload-time = "2026-02-10T19:17:30.518Z" },
289
- { url = "https://files.pythonhosted.org/packages/e9/5a/ac0f49e48063ab4255d9e3b79f5def51697fce1a95ea1370f03dc9db76f6/cryptography-46.0.5-cp311-abi3-win_amd64.whl", hash = "sha256:38946c54b16c885c72c4f59846be9743d699eee2b69b6988e0a00a01f46a61a4", size = 3480909, upload-time = "2026-02-10T19:17:32.083Z" },
290
- { url = "https://files.pythonhosted.org/packages/00/13/3d278bfa7a15a96b9dc22db5a12ad1e48a9eb3d40e1827ef66a5df75d0d0/cryptography-46.0.5-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:94a76daa32eb78d61339aff7952ea819b1734b46f73646a07decb40e5b3448e2", size = 7119287, upload-time = "2026-02-10T19:17:33.801Z" },
291
- { url = "https://files.pythonhosted.org/packages/67/c8/581a6702e14f0898a0848105cbefd20c058099e2c2d22ef4e476dfec75d7/cryptography-46.0.5-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5be7bf2fb40769e05739dd0046e7b26f9d4670badc7b032d6ce4db64dddc0678", size = 4265728, upload-time = "2026-02-10T19:17:35.569Z" },
292
- { url = "https://files.pythonhosted.org/packages/dd/4a/ba1a65ce8fc65435e5a849558379896c957870dd64fecea97b1ad5f46a37/cryptography-46.0.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe346b143ff9685e40192a4960938545c699054ba11d4f9029f94751e3f71d87", size = 4408287, upload-time = "2026-02-10T19:17:36.938Z" },
293
- { url = "https://files.pythonhosted.org/packages/f8/67/8ffdbf7b65ed1ac224d1c2df3943553766914a8ca718747ee3871da6107e/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:c69fd885df7d089548a42d5ec05be26050ebcd2283d89b3d30676eb32ff87dee", size = 4270291, upload-time = "2026-02-10T19:17:38.748Z" },
294
- { url = "https://files.pythonhosted.org/packages/f8/e5/f52377ee93bc2f2bba55a41a886fd208c15276ffbd2569f2ddc89d50e2c5/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:8293f3dea7fc929ef7240796ba231413afa7b68ce38fd21da2995549f5961981", size = 4927539, upload-time = "2026-02-10T19:17:40.241Z" },
295
- { url = "https://files.pythonhosted.org/packages/3b/02/cfe39181b02419bbbbcf3abdd16c1c5c8541f03ca8bda240debc467d5a12/cryptography-46.0.5-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:1abfdb89b41c3be0365328a410baa9df3ff8a9110fb75e7b52e66803ddabc9a9", size = 4442199, upload-time = "2026-02-10T19:17:41.789Z" },
296
- { url = "https://files.pythonhosted.org/packages/c0/96/2fcaeb4873e536cf71421a388a6c11b5bc846e986b2b069c79363dc1648e/cryptography-46.0.5-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:d66e421495fdb797610a08f43b05269e0a5ea7f5e652a89bfd5a7d3c1dee3648", size = 3960131, upload-time = "2026-02-10T19:17:43.379Z" },
297
- { url = "https://files.pythonhosted.org/packages/d8/d2/b27631f401ddd644e94c5cf33c9a4069f72011821cf3dc7309546b0642a0/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:4e817a8920bfbcff8940ecfd60f23d01836408242b30f1a708d93198393a80b4", size = 4270072, upload-time = "2026-02-10T19:17:45.481Z" },
298
- { url = "https://files.pythonhosted.org/packages/f4/a7/60d32b0370dae0b4ebe55ffa10e8599a2a59935b5ece1b9f06edb73abdeb/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:68f68d13f2e1cb95163fa3b4db4bf9a159a418f5f6e7242564fc75fcae667fd0", size = 4892170, upload-time = "2026-02-10T19:17:46.997Z" },
299
- { url = "https://files.pythonhosted.org/packages/d2/b9/cf73ddf8ef1164330eb0b199a589103c363afa0cf794218c24d524a58eab/cryptography-46.0.5-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:a3d1fae9863299076f05cb8a778c467578262fae09f9dc0ee9b12eb4268ce663", size = 4441741, upload-time = "2026-02-10T19:17:48.661Z" },
300
- { url = "https://files.pythonhosted.org/packages/5f/eb/eee00b28c84c726fe8fa0158c65afe312d9c3b78d9d01daf700f1f6e37ff/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c4143987a42a2397f2fc3b4d7e3a7d313fbe684f67ff443999e803dd75a76826", size = 4396728, upload-time = "2026-02-10T19:17:50.058Z" },
301
- { url = "https://files.pythonhosted.org/packages/65/f4/6bc1a9ed5aef7145045114b75b77c2a8261b4d38717bd8dea111a63c3442/cryptography-46.0.5-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7d731d4b107030987fd61a7f8ab512b25b53cef8f233a97379ede116f30eb67d", size = 4652001, upload-time = "2026-02-10T19:17:51.54Z" },
302
- { url = "https://files.pythonhosted.org/packages/86/ef/5d00ef966ddd71ac2e6951d278884a84a40ffbd88948ef0e294b214ae9e4/cryptography-46.0.5-cp314-cp314t-win32.whl", hash = "sha256:c3bcce8521d785d510b2aad26ae2c966092b7daa8f45dd8f44734a104dc0bc1a", size = 3003637, upload-time = "2026-02-10T19:17:52.997Z" },
303
- { url = "https://files.pythonhosted.org/packages/b7/57/f3f4160123da6d098db78350fdfd9705057aad21de7388eacb2401dceab9/cryptography-46.0.5-cp314-cp314t-win_amd64.whl", hash = "sha256:4d8ae8659ab18c65ced284993c2265910f6c9e650189d4e3f68445ef82a810e4", size = 3469487, upload-time = "2026-02-10T19:17:54.549Z" },
304
- { url = "https://files.pythonhosted.org/packages/e2/fa/a66aa722105ad6a458bebd64086ca2b72cdd361fed31763d20390f6f1389/cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:4108d4c09fbbf2789d0c926eb4152ae1760d5a2d97612b92d508d96c861e4d31", size = 7170514, upload-time = "2026-02-10T19:17:56.267Z" },
305
- { url = "https://files.pythonhosted.org/packages/0f/04/c85bdeab78c8bc77b701bf0d9bdcf514c044e18a46dcff330df5448631b0/cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7d1f30a86d2757199cb2d56e48cce14deddf1f9c95f1ef1b64ee91ea43fe2e18", size = 4275349, upload-time = "2026-02-10T19:17:58.419Z" },
306
- { url = "https://files.pythonhosted.org/packages/5c/32/9b87132a2f91ee7f5223b091dc963055503e9b442c98fc0b8a5ca765fab0/cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:039917b0dc418bb9f6edce8a906572d69e74bd330b0b3fea4f79dab7f8ddd235", size = 4420667, upload-time = "2026-02-10T19:18:00.619Z" },
307
- { url = "https://files.pythonhosted.org/packages/a1/a6/a7cb7010bec4b7c5692ca6f024150371b295ee1c108bdc1c400e4c44562b/cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ba2a27ff02f48193fc4daeadf8ad2590516fa3d0adeeb34336b96f7fa64c1e3a", size = 4276980, upload-time = "2026-02-10T19:18:02.379Z" },
308
- { url = "https://files.pythonhosted.org/packages/8e/7c/c4f45e0eeff9b91e3f12dbd0e165fcf2a38847288fcfd889deea99fb7b6d/cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:61aa400dce22cb001a98014f647dc21cda08f7915ceb95df0c9eaf84b4b6af76", size = 4939143, upload-time = "2026-02-10T19:18:03.964Z" },
309
- { url = "https://files.pythonhosted.org/packages/37/19/e1b8f964a834eddb44fa1b9a9976f4e414cbb7aa62809b6760c8803d22d1/cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3ce58ba46e1bc2aac4f7d9290223cead56743fa6ab94a5d53292ffaac6a91614", size = 4453674, upload-time = "2026-02-10T19:18:05.588Z" },
310
- { url = "https://files.pythonhosted.org/packages/db/ed/db15d3956f65264ca204625597c410d420e26530c4e2943e05a0d2f24d51/cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:420d0e909050490d04359e7fdb5ed7e667ca5c3c402b809ae2563d7e66a92229", size = 3978801, upload-time = "2026-02-10T19:18:07.167Z" },
311
- { url = "https://files.pythonhosted.org/packages/41/e2/df40a31d82df0a70a0daf69791f91dbb70e47644c58581d654879b382d11/cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:582f5fcd2afa31622f317f80426a027f30dc792e9c80ffee87b993200ea115f1", size = 4276755, upload-time = "2026-02-10T19:18:09.813Z" },
312
- { url = "https://files.pythonhosted.org/packages/33/45/726809d1176959f4a896b86907b98ff4391a8aa29c0aaaf9450a8a10630e/cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:bfd56bb4b37ed4f330b82402f6f435845a5f5648edf1ad497da51a8452d5d62d", size = 4901539, upload-time = "2026-02-10T19:18:11.263Z" },
313
- { url = "https://files.pythonhosted.org/packages/99/0f/a3076874e9c88ecb2ecc31382f6e7c21b428ede6f55aafa1aa272613e3cd/cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:a3d507bb6a513ca96ba84443226af944b0f7f47dcc9a399d110cd6146481d24c", size = 4452794, upload-time = "2026-02-10T19:18:12.914Z" },
314
- { url = "https://files.pythonhosted.org/packages/02/ef/ffeb542d3683d24194a38f66ca17c0a4b8bf10631feef44a7ef64e631b1a/cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9f16fbdf4da055efb21c22d81b89f155f02ba420558db21288b3d0035bafd5f4", size = 4404160, upload-time = "2026-02-10T19:18:14.375Z" },
315
- { url = "https://files.pythonhosted.org/packages/96/93/682d2b43c1d5f1406ed048f377c0fc9fc8f7b0447a478d5c65ab3d3a66eb/cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:ced80795227d70549a411a4ab66e8ce307899fad2220ce5ab2f296e687eacde9", size = 4667123, upload-time = "2026-02-10T19:18:15.886Z" },
316
- { url = "https://files.pythonhosted.org/packages/45/2d/9c5f2926cb5300a8eefc3f4f0b3f3df39db7f7ce40c8365444c49363cbda/cryptography-46.0.5-cp38-abi3-win32.whl", hash = "sha256:02f547fce831f5096c9a567fd41bc12ca8f11df260959ecc7c3202555cc47a72", size = 3010220, upload-time = "2026-02-10T19:18:17.361Z" },
317
- { url = "https://files.pythonhosted.org/packages/48/ef/0c2f4a8e31018a986949d34a01115dd057bf536905dca38897bacd21fac3/cryptography-46.0.5-cp38-abi3-win_amd64.whl", hash = "sha256:556e106ee01aa13484ce9b0239bca667be5004efb0aabbed28d353df86445595", size = 3467050, upload-time = "2026-02-10T19:18:18.899Z" },
318
- { url = "https://files.pythonhosted.org/packages/eb/dd/2d9fdb07cebdf3d51179730afb7d5e576153c6744c3ff8fded23030c204e/cryptography-46.0.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:3b4995dc971c9fb83c25aa44cf45f02ba86f71ee600d81091c2f0cbae116b06c", size = 3476964, upload-time = "2026-02-10T19:18:20.687Z" },
319
- { url = "https://files.pythonhosted.org/packages/e9/6f/6cc6cc9955caa6eaf83660b0da2b077c7fe8ff9950a3c5e45d605038d439/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:bc84e875994c3b445871ea7181d424588171efec3e185dced958dad9e001950a", size = 4218321, upload-time = "2026-02-10T19:18:22.349Z" },
320
- { url = "https://files.pythonhosted.org/packages/3e/5d/c4da701939eeee699566a6c1367427ab91a8b7088cc2328c09dbee940415/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2ae6971afd6246710480e3f15824ed3029a60fc16991db250034efd0b9fb4356", size = 4381786, upload-time = "2026-02-10T19:18:24.529Z" },
321
- { url = "https://files.pythonhosted.org/packages/ac/97/a538654732974a94ff96c1db621fa464f455c02d4bb7d2652f4edc21d600/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:d861ee9e76ace6cf36a6a89b959ec08e7bc2493ee39d07ffe5acb23ef46d27da", size = 4217990, upload-time = "2026-02-10T19:18:25.957Z" },
322
- { url = "https://files.pythonhosted.org/packages/ae/11/7e500d2dd3ba891197b9efd2da5454b74336d64a7cc419aa7327ab74e5f6/cryptography-46.0.5-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:2b7a67c9cd56372f3249b39699f2ad479f6991e62ea15800973b956f4b73e257", size = 4381252, upload-time = "2026-02-10T19:18:27.496Z" },
323
- { url = "https://files.pythonhosted.org/packages/bc/58/6b3d24e6b9bc474a2dcdee65dfd1f008867015408a271562e4b690561a4d/cryptography-46.0.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:8456928655f856c6e1533ff59d5be76578a7157224dbd9ce6872f25055ab9ab7", size = 3407605, upload-time = "2026-02-10T19:18:29.233Z" },
274
+ sdist = { url = "https://files.pythonhosted.org/packages/a4/ba/04b1bd4218cbc58dc90ce967106d51582371b898690f3ae0402876cc4f34/cryptography-46.0.6.tar.gz", hash = "sha256:27550628a518c5c6c903d84f637fbecf287f6cb9ced3804838a1295dc1fd0759", size = 750542, upload-time = "2026-03-25T23:34:53.396Z" }
275
+ wheels = [
276
+ { url = "https://files.pythonhosted.org/packages/47/23/9285e15e3bc57325b0a72e592921983a701efc1ee8f91c06c5f0235d86d9/cryptography-46.0.6-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:64235194bad039a10bb6d2d930ab3323baaec67e2ce36215fd0952fad0930ca8", size = 7176401, upload-time = "2026-03-25T23:33:22.096Z" },
277
+ { url = "https://files.pythonhosted.org/packages/60/f8/e61f8f13950ab6195b31913b42d39f0f9afc7d93f76710f299b5ec286ae6/cryptography-46.0.6-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:26031f1e5ca62fcb9d1fcb34b2b60b390d1aacaa15dc8b895a9ed00968b97b30", size = 4275275, upload-time = "2026-03-25T23:33:23.844Z" },
278
+ { url = "https://files.pythonhosted.org/packages/19/69/732a736d12c2631e140be2348b4ad3d226302df63ef64d30dfdb8db7ad1c/cryptography-46.0.6-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:9a693028b9cbe51b5a1136232ee8f2bc242e4e19d456ded3fa7c86e43c713b4a", size = 4425320, upload-time = "2026-03-25T23:33:25.703Z" },
279
+ { url = "https://files.pythonhosted.org/packages/d4/12/123be7292674abf76b21ac1fc0e1af50661f0e5b8f0ec8285faac18eb99e/cryptography-46.0.6-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:67177e8a9f421aa2d3a170c3e56eca4e0128883cf52a071a7cbf53297f18b175", size = 4278082, upload-time = "2026-03-25T23:33:27.423Z" },
280
+ { url = "https://files.pythonhosted.org/packages/5b/ba/d5e27f8d68c24951b0a484924a84c7cdaed7502bac9f18601cd357f8b1d2/cryptography-46.0.6-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:d9528b535a6c4f8ff37847144b8986a9a143585f0540fbcb1a98115b543aa463", size = 4926514, upload-time = "2026-03-25T23:33:29.206Z" },
281
+ { url = "https://files.pythonhosted.org/packages/34/71/1ea5a7352ae516d5512d17babe7e1b87d9db5150b21f794b1377eac1edc0/cryptography-46.0.6-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:22259338084d6ae497a19bae5d4c66b7ca1387d3264d1c2c0e72d9e9b6a77b97", size = 4457766, upload-time = "2026-03-25T23:33:30.834Z" },
282
+ { url = "https://files.pythonhosted.org/packages/01/59/562be1e653accee4fdad92c7a2e88fced26b3fdfce144047519bbebc299e/cryptography-46.0.6-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:760997a4b950ff00d418398ad73fbc91aa2894b5c1db7ccb45b4f68b42a63b3c", size = 3986535, upload-time = "2026-03-25T23:33:33.02Z" },
283
+ { url = "https://files.pythonhosted.org/packages/d6/8b/b1ebfeb788bf4624d36e45ed2662b8bd43a05ff62157093c1539c1288a18/cryptography-46.0.6-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:3dfa6567f2e9e4c5dceb8ccb5a708158a2a871052fa75c8b78cb0977063f1507", size = 4277618, upload-time = "2026-03-25T23:33:34.567Z" },
284
+ { url = "https://files.pythonhosted.org/packages/dd/52/a005f8eabdb28df57c20f84c44d397a755782d6ff6d455f05baa2785bd91/cryptography-46.0.6-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:cdcd3edcbc5d55757e5f5f3d330dd00007ae463a7e7aa5bf132d1f22a4b62b19", size = 4890802, upload-time = "2026-03-25T23:33:37.034Z" },
285
+ { url = "https://files.pythonhosted.org/packages/ec/4d/8e7d7245c79c617d08724e2efa397737715ca0ec830ecb3c91e547302555/cryptography-46.0.6-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:d4e4aadb7fc1f88687f47ca20bb7227981b03afaae69287029da08096853b738", size = 4457425, upload-time = "2026-03-25T23:33:38.904Z" },
286
+ { url = "https://files.pythonhosted.org/packages/1d/5c/f6c3596a1430cec6f949085f0e1a970638d76f81c3ea56d93d564d04c340/cryptography-46.0.6-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:2b417edbe8877cda9022dde3a008e2deb50be9c407eef034aeeb3a8b11d9db3c", size = 4405530, upload-time = "2026-03-25T23:33:40.842Z" },
287
+ { url = "https://files.pythonhosted.org/packages/7e/c9/9f9cea13ee2dbde070424e0c4f621c091a91ffcc504ffea5e74f0e1daeff/cryptography-46.0.6-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:380343e0653b1c9d7e1f55b52aaa2dbb2fdf2730088d48c43ca1c7c0abb7cc2f", size = 4667896, upload-time = "2026-03-25T23:33:42.781Z" },
288
+ { url = "https://files.pythonhosted.org/packages/ad/b5/1895bc0821226f129bc74d00eccfc6a5969e2028f8617c09790bf89c185e/cryptography-46.0.6-cp311-abi3-win32.whl", hash = "sha256:bcb87663e1f7b075e48c3be3ecb5f0b46c8fc50b50a97cf264e7f60242dca3f2", size = 3026348, upload-time = "2026-03-25T23:33:45.021Z" },
289
+ { url = "https://files.pythonhosted.org/packages/c3/f8/c9bcbf0d3e6ad288b9d9aa0b1dee04b063d19e8c4f871855a03ab3a297ab/cryptography-46.0.6-cp311-abi3-win_amd64.whl", hash = "sha256:6739d56300662c468fddb0e5e291f9b4d084bead381667b9e654c7dd81705124", size = 3483896, upload-time = "2026-03-25T23:33:46.649Z" },
290
+ { url = "https://files.pythonhosted.org/packages/01/41/3a578f7fd5c70611c0aacba52cd13cb364a5dee895a5c1d467208a9380b0/cryptography-46.0.6-cp314-cp314t-macosx_10_9_universal2.whl", hash = "sha256:2ef9e69886cbb137c2aef9772c2e7138dc581fad4fcbcf13cc181eb5a3ab6275", size = 7117147, upload-time = "2026-03-25T23:33:48.249Z" },
291
+ { url = "https://files.pythonhosted.org/packages/fa/87/887f35a6fca9dde90cad08e0de0c89263a8e59b2d2ff904fd9fcd8025b6f/cryptography-46.0.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7f417f034f91dcec1cb6c5c35b07cdbb2ef262557f701b4ecd803ee8cefed4f4", size = 4266221, upload-time = "2026-03-25T23:33:49.874Z" },
292
+ { url = "https://files.pythonhosted.org/packages/aa/a8/0a90c4f0b0871e0e3d1ed126aed101328a8a57fd9fd17f00fb67e82a51ca/cryptography-46.0.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d24c13369e856b94892a89ddf70b332e0b70ad4a5c43cf3e9cb71d6d7ffa1f7b", size = 4408952, upload-time = "2026-03-25T23:33:52.128Z" },
293
+ { url = "https://files.pythonhosted.org/packages/16/0b/b239701eb946523e4e9f329336e4ff32b1247e109cbab32d1a7b61da8ed7/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:aad75154a7ac9039936d50cf431719a2f8d4ed3d3c277ac03f3339ded1a5e707", size = 4270141, upload-time = "2026-03-25T23:33:54.11Z" },
294
+ { url = "https://files.pythonhosted.org/packages/0f/a8/976acdd4f0f30df7b25605f4b9d3d89295351665c2091d18224f7ad5cdbf/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:3c21d92ed15e9cfc6eb64c1f5a0326db22ca9c2566ca46d845119b45b4400361", size = 4904178, upload-time = "2026-03-25T23:33:55.725Z" },
295
+ { url = "https://files.pythonhosted.org/packages/b1/1b/bf0e01a88efd0e59679b69f42d4afd5bced8700bb5e80617b2d63a3741af/cryptography-46.0.6-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:4668298aef7cddeaf5c6ecc244c2302a2b8e40f384255505c22875eebb47888b", size = 4441812, upload-time = "2026-03-25T23:33:57.364Z" },
296
+ { url = "https://files.pythonhosted.org/packages/bb/8b/11df86de2ea389c65aa1806f331cae145f2ed18011f30234cc10ca253de8/cryptography-46.0.6-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:8ce35b77aaf02f3b59c90b2c8a05c73bac12cea5b4e8f3fbece1f5fddea5f0ca", size = 3963923, upload-time = "2026-03-25T23:33:59.361Z" },
297
+ { url = "https://files.pythonhosted.org/packages/91/e0/207fb177c3a9ef6a8108f234208c3e9e76a6aa8cf20d51932916bd43bda0/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:c89eb37fae9216985d8734c1afd172ba4927f5a05cfd9bf0e4863c6d5465b013", size = 4269695, upload-time = "2026-03-25T23:34:00.909Z" },
298
+ { url = "https://files.pythonhosted.org/packages/21/5e/19f3260ed1e95bced52ace7501fabcd266df67077eeb382b79c81729d2d3/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:ed418c37d095aeddf5336898a132fba01091f0ac5844e3e8018506f014b6d2c4", size = 4869785, upload-time = "2026-03-25T23:34:02.796Z" },
299
+ { url = "https://files.pythonhosted.org/packages/10/38/cd7864d79aa1d92ef6f1a584281433419b955ad5a5ba8d1eb6c872165bcb/cryptography-46.0.6-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:69cf0056d6947edc6e6760e5f17afe4bea06b56a9ac8a06de9d2bd6b532d4f3a", size = 4441404, upload-time = "2026-03-25T23:34:04.35Z" },
300
+ { url = "https://files.pythonhosted.org/packages/09/0a/4fe7a8d25fed74419f91835cf5829ade6408fd1963c9eae9c4bce390ecbb/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8e7304c4f4e9490e11efe56af6713983460ee0780f16c63f219984dab3af9d2d", size = 4397549, upload-time = "2026-03-25T23:34:06.342Z" },
301
+ { url = "https://files.pythonhosted.org/packages/5f/a0/7d738944eac6513cd60a8da98b65951f4a3b279b93479a7e8926d9cd730b/cryptography-46.0.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b928a3ca837c77a10e81a814a693f2295200adb3352395fad024559b7be7a736", size = 4651874, upload-time = "2026-03-25T23:34:07.916Z" },
302
+ { url = "https://files.pythonhosted.org/packages/cb/f1/c2326781ca05208845efca38bf714f76939ae446cd492d7613808badedf1/cryptography-46.0.6-cp314-cp314t-win32.whl", hash = "sha256:97c8115b27e19e592a05c45d0dd89c57f81f841cc9880e353e0d3bf25b2139ed", size = 3001511, upload-time = "2026-03-25T23:34:09.892Z" },
303
+ { url = "https://files.pythonhosted.org/packages/c9/57/fe4a23eb549ac9d903bd4698ffda13383808ef0876cc912bcb2838799ece/cryptography-46.0.6-cp314-cp314t-win_amd64.whl", hash = "sha256:c797e2517cb7880f8297e2c0f43bb910e91381339336f75d2c1c2cbf811b70b4", size = 3471692, upload-time = "2026-03-25T23:34:11.613Z" },
304
+ { url = "https://files.pythonhosted.org/packages/c4/cc/f330e982852403da79008552de9906804568ae9230da8432f7496ce02b71/cryptography-46.0.6-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:12cae594e9473bca1a7aceb90536060643128bb274fcea0fc459ab90f7d1ae7a", size = 7162776, upload-time = "2026-03-25T23:34:13.308Z" },
305
+ { url = "https://files.pythonhosted.org/packages/49/b3/dc27efd8dcc4bff583b3f01d4a3943cd8b5821777a58b3a6a5f054d61b79/cryptography-46.0.6-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:639301950939d844a9e1c4464d7e07f902fe9a7f6b215bb0d4f28584729935d8", size = 4270529, upload-time = "2026-03-25T23:34:15.019Z" },
306
+ { url = "https://files.pythonhosted.org/packages/e6/05/e8d0e6eb4f0d83365b3cb0e00eb3c484f7348db0266652ccd84632a3d58d/cryptography-46.0.6-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ed3775295fb91f70b4027aeba878d79b3e55c0b3e97eaa4de71f8f23a9f2eb77", size = 4414827, upload-time = "2026-03-25T23:34:16.604Z" },
307
+ { url = "https://files.pythonhosted.org/packages/2f/97/daba0f5d2dc6d855e2dcb70733c812558a7977a55dd4a6722756628c44d1/cryptography-46.0.6-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8927ccfbe967c7df312ade694f987e7e9e22b2425976ddbf28271d7e58845290", size = 4271265, upload-time = "2026-03-25T23:34:18.586Z" },
308
+ { url = "https://files.pythonhosted.org/packages/89/06/fe1fce39a37ac452e58d04b43b0855261dac320a2ebf8f5260dd55b201a9/cryptography-46.0.6-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:b12c6b1e1651e42ab5de8b1e00dc3b6354fdfd778e7fa60541ddacc27cd21410", size = 4916800, upload-time = "2026-03-25T23:34:20.561Z" },
309
+ { url = "https://files.pythonhosted.org/packages/ff/8a/b14f3101fe9c3592603339eb5d94046c3ce5f7fc76d6512a2d40efd9724e/cryptography-46.0.6-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:063b67749f338ca9c5a0b7fe438a52c25f9526b851e24e6c9310e7195aad3b4d", size = 4448771, upload-time = "2026-03-25T23:34:22.406Z" },
310
+ { url = "https://files.pythonhosted.org/packages/01/b3/0796998056a66d1973fd52ee89dc1bb3b6581960a91ad4ac705f182d398f/cryptography-46.0.6-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:02fad249cb0e090b574e30b276a3da6a149e04ee2f049725b1f69e7b8351ec70", size = 3978333, upload-time = "2026-03-25T23:34:24.281Z" },
311
+ { url = "https://files.pythonhosted.org/packages/c5/3d/db200af5a4ffd08918cd55c08399dc6c9c50b0bc72c00a3246e099d3a849/cryptography-46.0.6-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:7e6142674f2a9291463e5e150090b95a8519b2fb6e6aaec8917dd8d094ce750d", size = 4271069, upload-time = "2026-03-25T23:34:25.895Z" },
312
+ { url = "https://files.pythonhosted.org/packages/d7/18/61acfd5b414309d74ee838be321c636fe71815436f53c9f0334bf19064fa/cryptography-46.0.6-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:456b3215172aeefb9284550b162801d62f5f264a081049a3e94307fe20792cfa", size = 4878358, upload-time = "2026-03-25T23:34:27.67Z" },
313
+ { url = "https://files.pythonhosted.org/packages/8b/65/5bf43286d566f8171917cae23ac6add941654ccf085d739195a4eacf1674/cryptography-46.0.6-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:341359d6c9e68834e204ceaf25936dffeafea3829ab80e9503860dcc4f4dac58", size = 4448061, upload-time = "2026-03-25T23:34:29.375Z" },
314
+ { url = "https://files.pythonhosted.org/packages/e0/25/7e49c0fa7205cf3597e525d156a6bce5b5c9de1fd7e8cb01120e459f205a/cryptography-46.0.6-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:9a9c42a2723999a710445bc0d974e345c32adfd8d2fac6d8a251fa829ad31cfb", size = 4399103, upload-time = "2026-03-25T23:34:32.036Z" },
315
+ { url = "https://files.pythonhosted.org/packages/44/46/466269e833f1c4718d6cd496ffe20c56c9c8d013486ff66b4f69c302a68d/cryptography-46.0.6-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:6617f67b1606dfd9fe4dbfa354a9508d4a6d37afe30306fe6c101b7ce3274b72", size = 4659255, upload-time = "2026-03-25T23:34:33.679Z" },
316
+ { url = "https://files.pythonhosted.org/packages/0a/09/ddc5f630cc32287d2c953fc5d32705e63ec73e37308e5120955316f53827/cryptography-46.0.6-cp38-abi3-win32.whl", hash = "sha256:7f6690b6c55e9c5332c0b59b9c8a3fb232ebf059094c17f9019a51e9827df91c", size = 3010660, upload-time = "2026-03-25T23:34:35.418Z" },
317
+ { url = "https://files.pythonhosted.org/packages/1b/82/ca4893968aeb2709aacfb57a30dec6fa2ab25b10fa9f064b8882ce33f599/cryptography-46.0.6-cp38-abi3-win_amd64.whl", hash = "sha256:79e865c642cfc5c0b3eb12af83c35c5aeff4fa5c672dc28c43721c2c9fdd2f0f", size = 3471160, upload-time = "2026-03-25T23:34:37.191Z" },
318
+ { url = "https://files.pythonhosted.org/packages/2e/84/7ccff00ced5bac74b775ce0beb7d1be4e8637536b522b5df9b73ada42da2/cryptography-46.0.6-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:2ea0f37e9a9cf0df2952893ad145fd9627d326a59daec9b0802480fa3bcd2ead", size = 3475444, upload-time = "2026-03-25T23:34:38.944Z" },
319
+ { url = "https://files.pythonhosted.org/packages/bc/1f/4c926f50df7749f000f20eede0c896769509895e2648db5da0ed55db711d/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a3e84d5ec9ba01f8fd03802b2147ba77f0c8f2617b2aff254cedd551844209c8", size = 4218227, upload-time = "2026-03-25T23:34:40.871Z" },
320
+ { url = "https://files.pythonhosted.org/packages/c6/65/707be3ffbd5f786028665c3223e86e11c4cda86023adbc56bd72b1b6bab5/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:12f0fa16cc247b13c43d56d7b35287ff1569b5b1f4c5e87e92cc4fcc00cd10c0", size = 4381399, upload-time = "2026-03-25T23:34:42.609Z" },
321
+ { url = "https://files.pythonhosted.org/packages/f3/6d/73557ed0ef7d73d04d9aba745d2c8e95218213687ee5e76b7d236a5030fc/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:50575a76e2951fe7dbd1f56d181f8c5ceeeb075e9ff88e7ad997d2f42af06e7b", size = 4217595, upload-time = "2026-03-25T23:34:44.205Z" },
322
+ { url = "https://files.pythonhosted.org/packages/9e/c5/e1594c4eec66a567c3ac4400008108a415808be2ce13dcb9a9045c92f1a0/cryptography-46.0.6-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:90e5f0a7b3be5f40c3a0a0eafb32c681d8d2c181fc2a1bdabe9b3f611d9f6b1a", size = 4380912, upload-time = "2026-03-25T23:34:46.328Z" },
323
+ { url = "https://files.pythonhosted.org/packages/1a/89/843b53614b47f97fe1abc13f9a86efa5ec9e275292c457af1d4a60dc80e0/cryptography-46.0.6-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:6728c49e3b2c180ef26f8e9f0a883a2c585638db64cf265b49c9ba10652d430e", size = 3409955, upload-time = "2026-03-25T23:34:48.465Z" },
324
324
  ]
325
325
 
326
326
  [[package]]
@@ -636,7 +636,7 @@ sdist = { url = "https://files.pythonhosted.org/packages/73/6a/25fe59e806ff48d25
636
636
 
637
637
  [[package]]
638
638
  name = "pygithub"
639
- version = "2.8.1"
639
+ version = "2.9.0"
640
640
  source = { registry = "https://pypi.org/simple" }
641
641
  dependencies = [
642
642
  { name = "pyjwt", extra = ["crypto"] },
@@ -645,9 +645,9 @@ dependencies = [
645
645
  { name = "typing-extensions" },
646
646
  { name = "urllib3" },
647
647
  ]
648
- sdist = { url = "https://files.pythonhosted.org/packages/c1/74/e560bdeffea72ecb26cff27f0fad548bbff5ecc51d6a155311ea7f9e4c4c/pygithub-2.8.1.tar.gz", hash = "sha256:341b7c78521cb07324ff670afd1baa2bf5c286f8d9fd302c1798ba594a5400c9", size = 2246994, upload-time = "2025-09-02T17:41:54.674Z" }
648
+ sdist = { url = "https://files.pythonhosted.org/packages/a6/9a/44f918e9be12e49cb8b053f09d5d0733b74df52bf4dabc570da1c3ecd9f6/pygithub-2.9.0.tar.gz", hash = "sha256:a26abda1222febba31238682634cad11d8b966137ed6cc3c5e445b29a11cb0a4", size = 2592289, upload-time = "2026-03-22T21:14:39.053Z" }
649
649
  wheels = [
650
- { url = "https://files.pythonhosted.org/packages/07/ba/7049ce39f653f6140aac4beb53a5aaf08b4407b6a3019aae394c1c5244ff/pygithub-2.8.1-py3-none-any.whl", hash = "sha256:23a0a5bca93baef082e03411bf0ce27204c32be8bfa7abc92fe4a3e132936df0", size = 432709, upload-time = "2025-09-02T17:41:52.947Z" },
650
+ { url = "https://files.pythonhosted.org/packages/2f/de/72e02bc7674e161b155a4b5a03b2347129d0626115bc97ba5bad5070cac9/pygithub-2.9.0-py3-none-any.whl", hash = "sha256:5e2b260ce327bffce9b00f447b65953ef7078ffe93e5a5425624a3075483927c", size = 449653, upload-time = "2026-03-22T21:14:37.726Z" },
651
651
  ]
652
652
 
653
653
  [[package]]
@@ -726,16 +726,16 @@ wheels = [
726
726
 
727
727
  [[package]]
728
728
  name = "pytest-cov"
729
- version = "7.0.0"
729
+ version = "7.1.0"
730
730
  source = { registry = "https://pypi.org/simple" }
731
731
  dependencies = [
732
732
  { name = "coverage", extra = ["toml"] },
733
733
  { name = "pluggy" },
734
734
  { name = "pytest" },
735
735
  ]
736
- sdist = { url = "https://files.pythonhosted.org/packages/5e/f7/c933acc76f5208b3b00089573cf6a2bc26dc80a8aece8f52bb7d6b1855ca/pytest_cov-7.0.0.tar.gz", hash = "sha256:33c97eda2e049a0c5298e91f519302a1334c26ac65c1a483d6206fd458361af1", size = 54328, upload-time = "2025-09-09T10:57:02.113Z" }
736
+ sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload-time = "2026-03-21T20:11:16.284Z" }
737
737
  wheels = [
738
- { url = "https://files.pythonhosted.org/packages/ee/49/1377b49de7d0c1ce41292161ea0f721913fa8722c19fb9c1e3aa0367eecb/pytest_cov-7.0.0-py3-none-any.whl", hash = "sha256:3b8e9558b16cc1479da72058bdecf8073661c7f57f7d3c5f22a1c23507f2d861", size = 22424, upload-time = "2025-09-09T10:57:00.695Z" },
738
+ { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" },
739
739
  ]
740
740
 
741
741
  [[package]]
@@ -978,14 +978,14 @@ wheels = [
978
978
 
979
979
  [[package]]
980
980
  name = "types-requests"
981
- version = "2.32.4.20260107"
981
+ version = "2.32.4.20260324"
982
982
  source = { registry = "https://pypi.org/simple" }
983
983
  dependencies = [
984
984
  { name = "urllib3" },
985
985
  ]
986
- sdist = { url = "https://files.pythonhosted.org/packages/0f/f3/a0663907082280664d745929205a89d41dffb29e89a50f753af7d57d0a96/types_requests-2.32.4.20260107.tar.gz", hash = "sha256:018a11ac158f801bfa84857ddec1650750e393df8a004a8a9ae2a9bec6fcb24f", size = 23165, upload-time = "2026-01-07T03:20:54.091Z" }
986
+ sdist = { url = "https://files.pythonhosted.org/packages/6c/b1/66bafdc85965e5aa3db42e1b9128bf8abe252edd7556d00a07ef437a3e0e/types_requests-2.32.4.20260324.tar.gz", hash = "sha256:33a2a9ccb1de7d4e4da36e347622c35418f6761269014cc32857acabd5df739e", size = 23765, upload-time = "2026-03-24T04:06:35.106Z" }
987
987
  wheels = [
988
- { url = "https://files.pythonhosted.org/packages/1c/12/709ea261f2bf91ef0a26a9eed20f2623227a8ed85610c1e54c5805692ecb/types_requests-2.32.4.20260107-py3-none-any.whl", hash = "sha256:b703fe72f8ce5b31ef031264fe9395cac8f46a04661a79f7ed31a80fb308730d", size = 20676, upload-time = "2026-01-07T03:20:52.929Z" },
988
+ { url = "https://files.pythonhosted.org/packages/5b/5a/ce5999f9bd72c7fac681d26cd0a5782b379053bfc2214e2a3fbe30852c9e/types_requests-2.32.4.20260324-py3-none-any.whl", hash = "sha256:f83ef2deb284fe99a249b8b0b0a3e4b9809e01ff456063c4df0aac7670c07ab9", size = 20735, upload-time = "2026-03-24T04:06:33.9Z" },
989
989
  ]
990
990
 
991
991
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes