github2gerrit 1.0.6__tar.gz → 1.0.7__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.
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.pre-commit-config.yaml +1 -1
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/PKG-INFO +1 -1
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/core.py +6 -5
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/models.py +6 -1
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_close_pr_policy.py +58 -4
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_duplicate_detection.py +10 -2
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/uv.lock +6 -6
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.editorconfig +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.gitignore +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.gitlint +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.markdownlint.yaml +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.readthedocs.yml +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/.yamllint +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/LICENSE +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/LICENSES/Apache-2.0.txt +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/README.md +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/REUSE.toml +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/action.yaml +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/docs/COMPOSITE_ACTION_TESTING.md +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/docs/PR_UPDATE_IMPLEMENTATION.md +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/docs/RELEASE-v0.2.0.md +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/docs/github2gerrit_token_permissions_classic.png +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/pyproject.toml +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/sitecustomize.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/__init__.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/cli.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/commit_normalization.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/config.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/constants.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/duplicate_detection.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/error_codes.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/external_api.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/gerrit_pr_closer.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/gerrit_query.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/gerrit_rest.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/gerrit_urls.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/github_api.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/gitutils.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/mapping_comment.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/netrc.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/orchestrator/__init__.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/orchestrator/reconciliation.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/pr_content_filter.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/reconcile_matcher.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/rich_display.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/rich_logging.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/similarity.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/ssh_agent_setup.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/ssh_common.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/ssh_config_parser.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/ssh_discovery.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/trailers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/utils.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/conftest.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/fixtures/__init__.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/fixtures/make_repo.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/fixtures/ssh_config_samples.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_action_environment_mapping.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_action_outputs.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_action_pr_number_handling.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_action_step_validation.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_automation_only.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_change_id_deduplication.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_cli.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_cli_helpers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_cli_netrc_options.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_cli_outputs_file.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_cli_url_and_dryrun.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_commit_normalization.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_composite_action_coverage.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_config_and_reviewers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_config_helpers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_config_and_errors.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_gerrit_backref_comment.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_gerrit_push_errors.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_gerrit_rest_results.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_integration_fixture_repo.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_prepare_commits.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_shallow_clone.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_ssh_setup.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_core_ssrf_protection.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_email_case_normalization.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_error_codes.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_external_api_framework.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_force_flag_cli.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gerrit_change_id_footer.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gerrit_change_status_checks.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gerrit_pr_closer.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gerrit_rest_client.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gerrit_urls.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gerrit_urls_more.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ghe_and_gitreview_args.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_github_api_error_handling.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_github_api_helpers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_github_api_retry_and_helpers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_gitutils_helpers.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_mapping_comment_additional.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_mapping_comment_digest_and_backref.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_metadata_and_reconciliation.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_metadata_trailer_separation_bug.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_misc_small_coverage.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_netrc.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_orphan_rest_side_effects.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_pr_content_filter.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_pr_content_filter_integration.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_pr_update_detection.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_reconciliation_extracted_module.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_reconciliation_plan_and_orphans.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_reconciliation_scenarios.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ssh_agent.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ssh_agent_ownership.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ssh_artifact_prevention.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ssh_common.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ssh_discovery.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_ssh_discovery_dry_run.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_trailers_additional.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_url_parser.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_utils.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/unit/test_config_integration.py +0 -0
- {github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/unit/test_ssh_config_parser.py +0 -0
|
@@ -59,7 +59,7 @@ repos:
|
|
|
59
59
|
types: [yaml]
|
|
60
60
|
|
|
61
61
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
62
|
-
rev:
|
|
62
|
+
rev: 0839f92796ae388643a08a21640a029b322be5c2 # frozen: v0.15.2
|
|
63
63
|
hooks:
|
|
64
64
|
- id: ruff
|
|
65
65
|
files: ^(src|scripts|tests)/.+\.py$
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: github2gerrit
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.7
|
|
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
|
|
@@ -3424,7 +3424,7 @@ class Orchestrator:
|
|
|
3424
3424
|
)
|
|
3425
3425
|
if (
|
|
3426
3426
|
not sync_all_prs
|
|
3427
|
-
and gh.event_name
|
|
3427
|
+
and gh.event_name in ("pull_request", "pull_request_target")
|
|
3428
3428
|
and gh.event_action in ("reopened", "synchronize")
|
|
3429
3429
|
):
|
|
3430
3430
|
try:
|
|
@@ -5518,8 +5518,9 @@ class Orchestrator:
|
|
|
5518
5518
|
self,
|
|
5519
5519
|
gh: GitHubContext,
|
|
5520
5520
|
) -> None:
|
|
5521
|
-
"""Close the PR if policy requires
|
|
5521
|
+
"""Close the PR if policy requires.
|
|
5522
5522
|
|
|
5523
|
+
Supports both ``pull_request`` and ``pull_request_target`` triggers.
|
|
5523
5524
|
When PRESERVE_GITHUB_PRS is true, skip closing PRs (useful for testing).
|
|
5524
5525
|
"""
|
|
5525
5526
|
# Respect PRESERVE_GITHUB_PRS to avoid closing PRs during tests
|
|
@@ -5530,9 +5531,9 @@ class Orchestrator:
|
|
|
5530
5531
|
gh.pr_number,
|
|
5531
5532
|
)
|
|
5532
5533
|
return
|
|
5533
|
-
#
|
|
5534
|
-
if gh.event_name
|
|
5535
|
-
log.debug("Event is not
|
|
5534
|
+
# Close PRs on pull_request or pull_request_target events.
|
|
5535
|
+
if gh.event_name not in ("pull_request", "pull_request_target"):
|
|
5536
|
+
log.debug("Event is not a pull_request event; not closing PR")
|
|
5536
5537
|
return
|
|
5537
5538
|
log.info("Closing PR #%s", gh.pr_number)
|
|
5538
5539
|
try:
|
|
@@ -117,10 +117,15 @@ class GitHubContext:
|
|
|
117
117
|
def get_operation_mode(self) -> PROperationMode:
|
|
118
118
|
"""Determine the operation mode based on event type and action.
|
|
119
119
|
|
|
120
|
+
Supports both ``pull_request`` and ``pull_request_target`` triggers.
|
|
121
|
+
Using ``pull_request`` is preferred for security (avoids granting
|
|
122
|
+
secrets to untrusted fork code), while ``pull_request_target`` is
|
|
123
|
+
accepted for backward compatibility.
|
|
124
|
+
|
|
120
125
|
Returns:
|
|
121
126
|
PROperationMode enum indicating the type of operation
|
|
122
127
|
"""
|
|
123
|
-
if self.event_name
|
|
128
|
+
if self.event_name not in ("pull_request", "pull_request_target"):
|
|
124
129
|
return PROperationMode.UNKNOWN
|
|
125
130
|
|
|
126
131
|
action = self.event_action.lower() if self.event_action else ""
|
|
@@ -58,16 +58,16 @@ def test_close_pr_skipped_when_preserve_github_prs_true(
|
|
|
58
58
|
orch._close_pull_request_if_required(gh)
|
|
59
59
|
|
|
60
60
|
|
|
61
|
-
def
|
|
61
|
+
def test_close_pr_not_invoked_for_non_pr_event(
|
|
62
62
|
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
63
63
|
) -> None:
|
|
64
64
|
# Ensure preservation is disabled so only event controls behavior
|
|
65
65
|
monkeypatch.delenv("PRESERVE_GITHUB_PRS", raising=False)
|
|
66
66
|
|
|
67
|
-
# Non-
|
|
67
|
+
# Non-PR events (e.g. workflow_dispatch, push) should not attempt to close
|
|
68
68
|
def _fail(*args: Any, **kwargs: Any) -> Any:
|
|
69
69
|
raise AssertionError(
|
|
70
|
-
"GitHub API should not be called for non-
|
|
70
|
+
"GitHub API should not be called for non-PR events"
|
|
71
71
|
)
|
|
72
72
|
|
|
73
73
|
monkeypatch.setattr("github2gerrit.core.build_client", _fail)
|
|
@@ -75,12 +75,66 @@ def test_close_pr_not_invoked_for_non_target_event(
|
|
|
75
75
|
monkeypatch.setattr("github2gerrit.core.get_pull", _fail)
|
|
76
76
|
monkeypatch.setattr("github2gerrit.core.close_pr", _fail)
|
|
77
77
|
|
|
78
|
+
orch = Orchestrator(workspace=tmp_path)
|
|
79
|
+
gh = _gh_ctx(event_name="workflow_dispatch", pr_number=42)
|
|
80
|
+
|
|
81
|
+
# Act: should no-op for non-PR events
|
|
82
|
+
orch._close_pull_request_if_required(gh)
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
def test_close_pr_invoked_for_pull_request_event(
|
|
86
|
+
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
87
|
+
) -> None:
|
|
88
|
+
"""Verify that pull_request events (not just pull_request_target) close PRs.
|
|
89
|
+
|
|
90
|
+
The code now supports both ``pull_request`` and ``pull_request_target``
|
|
91
|
+
triggers. Using ``pull_request`` is preferred for security.
|
|
92
|
+
"""
|
|
93
|
+
# Ensure preservation is disabled so closing is allowed
|
|
94
|
+
monkeypatch.delenv("PRESERVE_GITHUB_PRS", raising=False)
|
|
95
|
+
|
|
96
|
+
calls: dict[str, Any] = {}
|
|
97
|
+
|
|
98
|
+
class DummyClient:
|
|
99
|
+
pass
|
|
100
|
+
|
|
101
|
+
class DummyRepo:
|
|
102
|
+
pass
|
|
103
|
+
|
|
104
|
+
class DummyPR:
|
|
105
|
+
def __init__(self, number: int) -> None:
|
|
106
|
+
self.number = number
|
|
107
|
+
self.closed_state: str | None = None
|
|
108
|
+
|
|
109
|
+
# Patch the GitHub helper functions used by the close path
|
|
110
|
+
monkeypatch.setattr("github2gerrit.core.build_client", DummyClient)
|
|
111
|
+
monkeypatch.setattr(
|
|
112
|
+
"github2gerrit.core.get_repo_from_env", lambda _c: DummyRepo()
|
|
113
|
+
)
|
|
114
|
+
|
|
115
|
+
def _get_pull(_repo: DummyRepo, number: int) -> DummyPR:
|
|
116
|
+
calls["get_pull_number"] = number
|
|
117
|
+
return DummyPR(number)
|
|
118
|
+
|
|
119
|
+
def _close_pr(pr: DummyPR, *, comment: str | None = None) -> None:
|
|
120
|
+
calls["closed_pr_number"] = pr.number
|
|
121
|
+
calls["comment"] = comment
|
|
122
|
+
pr.closed_state = "closed"
|
|
123
|
+
|
|
124
|
+
monkeypatch.setattr("github2gerrit.core.get_pull", _get_pull)
|
|
125
|
+
monkeypatch.setattr("github2gerrit.core.close_pr", _close_pr)
|
|
126
|
+
|
|
78
127
|
orch = Orchestrator(workspace=tmp_path)
|
|
79
128
|
gh = _gh_ctx(event_name="pull_request", pr_number=42)
|
|
80
129
|
|
|
81
|
-
# Act: should
|
|
130
|
+
# Act: pull_request events should now close the PR
|
|
82
131
|
orch._close_pull_request_if_required(gh)
|
|
83
132
|
|
|
133
|
+
# Assert
|
|
134
|
+
assert calls.get("get_pull_number") == 42
|
|
135
|
+
assert calls.get("closed_pr_number") == 42
|
|
136
|
+
assert calls.get("comment") == "Auto-closing pull request"
|
|
137
|
+
|
|
84
138
|
|
|
85
139
|
def test_close_pr_invoked_for_pull_request_target_event(
|
|
86
140
|
tmp_path: Path, monkeypatch: pytest.MonkeyPatch
|
|
@@ -425,7 +425,10 @@ project=test/project.git
|
|
|
425
425
|
|
|
426
426
|
responses.add(
|
|
427
427
|
responses.GET,
|
|
428
|
-
re.compile(
|
|
428
|
+
re.compile(
|
|
429
|
+
r"https://gerrit\.example\.org"
|
|
430
|
+
r"(/[a-z]+)?/a?/?changes/\?.*"
|
|
431
|
+
),
|
|
429
432
|
json=gerrit_response,
|
|
430
433
|
status=200,
|
|
431
434
|
)
|
|
@@ -435,6 +438,7 @@ project=test/project.git
|
|
|
435
438
|
{
|
|
436
439
|
"GERRIT_SERVER": "gerrit.example.org",
|
|
437
440
|
"GERRIT_PROJECT": "test/project",
|
|
441
|
+
"GERRIT_HTTP_BASE_PATH": "r",
|
|
438
442
|
},
|
|
439
443
|
):
|
|
440
444
|
with pytest.raises(DuplicateChangeError) as exc_info:
|
|
@@ -489,7 +493,10 @@ project=test/project.git
|
|
|
489
493
|
|
|
490
494
|
responses.add(
|
|
491
495
|
responses.GET,
|
|
492
|
-
re.compile(
|
|
496
|
+
re.compile(
|
|
497
|
+
r"https://gerrit\.example\.org"
|
|
498
|
+
r"(/[a-z]+)?/a?/?changes/\?.*"
|
|
499
|
+
),
|
|
493
500
|
json=gerrit_response,
|
|
494
501
|
status=200,
|
|
495
502
|
)
|
|
@@ -499,6 +506,7 @@ project=test/project.git
|
|
|
499
506
|
{
|
|
500
507
|
"GERRIT_SERVER": "gerrit.example.org",
|
|
501
508
|
"GERRIT_PROJECT": "test/project",
|
|
509
|
+
"GERRIT_HTTP_BASE_PATH": "r",
|
|
502
510
|
},
|
|
503
511
|
):
|
|
504
512
|
# Should NOT raise when allow_duplicates=True
|
|
@@ -415,7 +415,7 @@ wheels = [
|
|
|
415
415
|
|
|
416
416
|
[[package]]
|
|
417
417
|
name = "hatchling"
|
|
418
|
-
version = "1.
|
|
418
|
+
version = "1.29.0"
|
|
419
419
|
source = { registry = "https://pypi.org/simple" }
|
|
420
420
|
dependencies = [
|
|
421
421
|
{ name = "packaging" },
|
|
@@ -423,9 +423,9 @@ dependencies = [
|
|
|
423
423
|
{ name = "pluggy" },
|
|
424
424
|
{ name = "trove-classifiers" },
|
|
425
425
|
]
|
|
426
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
426
|
+
sdist = { url = "https://files.pythonhosted.org/packages/cf/9c/b4cfe330cd4f49cff17fd771154730555fa4123beb7f292cf0098b4e6c20/hatchling-1.29.0.tar.gz", hash = "sha256:793c31816d952cee405b83488ce001c719f325d9cda69f1fc4cd750527640ea6", size = 55656, upload-time = "2026-02-23T19:42:06.539Z" }
|
|
427
427
|
wheels = [
|
|
428
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
428
|
+
{ url = "https://files.pythonhosted.org/packages/d3/8a/44032265776062a89171285ede55a0bdaadc8ac00f27f0512a71a9e3e1c8/hatchling-1.29.0-py3-none-any.whl", hash = "sha256:50af9343281f34785fab12da82e445ed987a6efb34fd8c2fc0f6e6630dbcc1b0", size = 76356, upload-time = "2026-02-23T19:42:05.197Z" },
|
|
429
429
|
]
|
|
430
430
|
|
|
431
431
|
[[package]]
|
|
@@ -965,7 +965,7 @@ wheels = [
|
|
|
965
965
|
|
|
966
966
|
[[package]]
|
|
967
967
|
name = "typer"
|
|
968
|
-
version = "0.24.
|
|
968
|
+
version = "0.24.1"
|
|
969
969
|
source = { registry = "https://pypi.org/simple" }
|
|
970
970
|
dependencies = [
|
|
971
971
|
{ name = "annotated-doc" },
|
|
@@ -973,9 +973,9 @@ dependencies = [
|
|
|
973
973
|
{ name = "rich" },
|
|
974
974
|
{ name = "shellingham" },
|
|
975
975
|
]
|
|
976
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
976
|
+
sdist = { url = "https://files.pythonhosted.org/packages/f5/24/cb09efec5cc954f7f9b930bf8279447d24618bb6758d4f6adf2574c41780/typer-0.24.1.tar.gz", hash = "sha256:e39b4732d65fbdcde189ae76cf7cd48aeae72919dea1fdfc16593be016256b45", size = 118613, upload-time = "2026-02-21T16:54:40.609Z" }
|
|
977
977
|
wheels = [
|
|
978
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
978
|
+
{ url = "https://files.pythonhosted.org/packages/4a/91/48db081e7a63bb37284f9fbcefda7c44c277b18b0e13fbc36ea2335b71e6/typer-0.24.1-py3-none-any.whl", hash = "sha256:112c1f0ce578bfb4cab9ffdabc68f031416ebcc216536611ba21f04e9aa84c9e", size = 56085, upload-time = "2026-02-21T16:54:41.616Z" },
|
|
979
979
|
]
|
|
980
980
|
|
|
981
981
|
[[package]]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{github2gerrit-1.0.6 → github2gerrit-1.0.7}/docs/github2gerrit_token_permissions_classic.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{github2gerrit-1.0.6 → github2gerrit-1.0.7}/src/github2gerrit/orchestrator/reconciliation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{github2gerrit-1.0.6 → github2gerrit-1.0.7}/tests/test_mapping_comment_digest_and_backref.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|