fix: resolve reviewer lease identity via host not remote alias
_authenticated_username expects a host for auth/API calls. Lease acquire/adopt/gate/release paths passed the remote alias (prgs), so identity resolved empty and same-identity release fail-closed across sessions — blocking author conflict-fix pushes after REQUEST_CHANGES. Pass resolved host h from _resolve into _authenticated_username.
This commit is contained in:
+10
-4
@@ -6153,7 +6153,9 @@ def _reviewer_pr_lease_gate(
|
||||
"""Return block reasons when the session lacks an owned PR reviewer lease."""
|
||||
session = reviewer_pr_lease.get_session_lease()
|
||||
session_id = (session or {}).get("session_id")
|
||||
identity = _authenticated_username(remote) or ""
|
||||
# Resolve host first: _authenticated_username expects a host, not remote name.
|
||||
h, _, _ = _resolve(remote, host, org, repo)
|
||||
identity = _authenticated_username(h) or ""
|
||||
try:
|
||||
comments = _fetch_pr_comments(
|
||||
pr_number, remote=remote, host=host, org=org, repo=repo)
|
||||
@@ -6207,7 +6209,8 @@ def gitea_acquire_reviewer_pr_lease(
|
||||
h, o, r = _resolve(remote, host, org, repo)
|
||||
auth = _auth(h)
|
||||
profile = get_profile()
|
||||
identity = _authenticated_username(remote) or profile.get("username") or ""
|
||||
# Host (not remote name) — remote aliases like "prgs" do not resolve identity.
|
||||
identity = _authenticated_username(h) or profile.get("username") or ""
|
||||
sid = (session_id or "").strip() or reviewer_pr_lease.new_session_id()
|
||||
repo_label = f"{o}/{r}"
|
||||
|
||||
@@ -6350,7 +6353,8 @@ def gitea_adopt_merger_pr_lease(
|
||||
auth = _auth(h)
|
||||
profile = get_profile()
|
||||
profile_name = profile.get("profile_name") or "unknown"
|
||||
identity = _authenticated_username(remote) or profile.get("username") or ""
|
||||
# Host (not remote name) — remote aliases like "prgs" do not resolve identity.
|
||||
identity = _authenticated_username(h) or profile.get("username") or ""
|
||||
sid = (session_id or "").strip() or reviewer_pr_lease.new_session_id()
|
||||
repo_label = f"{o}/{r}"
|
||||
|
||||
@@ -6738,7 +6742,9 @@ def gitea_release_reviewer_pr_lease(
|
||||
"reasons": ["no active reviewer lease found on PR"],
|
||||
}
|
||||
|
||||
identity = _authenticated_username(remote) or ""
|
||||
# Host (not remote name). Passing "prgs"/"dadeschools" yields empty identity
|
||||
# and incorrectly blocks same-identity release across sessions.
|
||||
identity = _authenticated_username(h) or ""
|
||||
session = reviewer_pr_lease.get_session_lease() or {}
|
||||
session_id = session.get("session_id")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user