This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 6026c1e81c9 Fix uv.lock-conflict notifier hitting GitHub GraphQL with 
trailing slash (#66539)
6026c1e81c9 is described below

commit 6026c1e81c9991cc22bf4c4a62ef9cac48988980
Author: Jarek Potiuk <[email protected]>
AuthorDate: Thu May 7 13:50:38 2026 +0200

    Fix uv.lock-conflict notifier hitting GitHub GraphQL with trailing slash 
(#66539)
    
    The notify_uv_lock_conflicts.py script created an httpx.Client with
    `base_url=GRAPHQL_URL` and posted to a relative path of "". httpx
    normalises `base_url` to end with `/`, so the resolved URL became
    `https://api.github.com/graphql/` — which GitHub's GraphQL API
    rejects with 404, breaking the workflow's main run.
    
    Drop the `base_url=` and pass the full URL to `.post()` directly so
    the trailing slash never gets added.
    
    Failure observed in 
https://github.com/apache/airflow/actions/runs/25492428820/job/74803563077
---
 scripts/ci/notify_uv_lock_conflicts.py | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/scripts/ci/notify_uv_lock_conflicts.py 
b/scripts/ci/notify_uv_lock_conflicts.py
index 84002266544..d22614b079a 100644
--- a/scripts/ci/notify_uv_lock_conflicts.py
+++ b/scripts/ci/notify_uv_lock_conflicts.py
@@ -145,8 +145,11 @@ class Stats:
 
 class GitHubGraphQL:
     def __init__(self, token: str) -> None:
+        # NOTE: do not use `base_url=GRAPHQL_URL` — httpx normalises base_url 
to
+        # end with `/`, so a relative POST to `""` resolves to
+        # https://api.github.com/graphql/ (trailing slash), which GitHub
+        # rejects with 404. Pass the full URL to .post() directly instead.
         self._http = httpx.Client(
-            base_url=GRAPHQL_URL,
             headers={
                 "Authorization": f"Bearer {token}",
                 "Accept": "application/vnd.github+json",
@@ -161,7 +164,7 @@ class GitHubGraphQL:
         self._http.close()
 
     def call(self, query: str, variables: dict[str, Any]) -> dict[str, Any]:
-        r = self._http.post("", json={"query": query, "variables": variables})
+        r = self._http.post(GRAPHQL_URL, json={"query": query, "variables": 
variables})
         r.raise_for_status()
         data = r.json()
         if "errors" in data:

Reply via email to