You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by po...@apache.org on 2026/05/10 00:26:43 UTC

(airflow) branch v3-2-test updated: [v3-2-test] Fix uv.lock-conflict notifier hitting GitHub GraphQL with trailing slash (#66539) (#66540)

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

potiuk pushed a commit to branch v3-2-test
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/v3-2-test by this push:
     new 5cc3222d68c [v3-2-test] Fix uv.lock-conflict notifier hitting GitHub GraphQL with trailing slash (#66539) (#66540)
5cc3222d68c is described below

commit 5cc3222d68c898236e675e02a89ad96456b0022b
Author: github-actions[bot] <41...@users.noreply.github.com>
AuthorDate: Sun May 10 02:26:36 2026 +0200

    [v3-2-test] Fix uv.lock-conflict notifier hitting GitHub GraphQL with trailing slash (#66539) (#66540)
    
    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
    (cherry picked from commit 6026c1e81c9991cc22bf4c4a62ef9cac48988980)
    
    Co-authored-by: Jarek Potiuk <ja...@potiuk.com>
---
 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: