Skip to content

Add QP and graph building performance baselines - #1220

Draft
kamilkisiela wants to merge 1 commit into
mainfrom
kamil-heavy-qp-benchmarks
Draft

Add QP and graph building performance baselines#1220
kamilkisiela wants to merge 1 commit into
mainfrom
kamil-heavy-qp-benchmarks

Conversation

@kamilkisiela

Copy link
Copy Markdown
Contributor

Some benchmarks here will either take 16 minutes or never end, but it's the PR number 1 that I will use as the umbrella for step-by-step fixes and improvements.

Things that take 15-20-30 minutes will take 10ms at the end (on my machine though).

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several new query planning benchmarks along with their corresponding GraphQL schemas and operations as fixtures. The review feedback suggests refactoring the highly duplicated benchmark loop bodies into a helper function to improve readability and maintainability, which aligns with the repository's style guide on avoiding duplicated logic.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +137 to +339
c.bench_function("query_plan_abstract_many_subgraphs", |b| {
let supergraph_sdl =
std::fs::read_to_string("./fixture/abstract-many-subgraphs/supergraph.graphql")
.expect("Unable to read input file");
let parsed_schema = parse_schema(&supergraph_sdl);
let supergraph_state = SupergraphState::new(&parsed_schema);
let graph =
Graph::graph_from_supergraph_state(&supergraph_state).expect("failed to create graph");

let parsed_document = get_operation("./fixture/abstract-many-subgraphs/operation.graphql");
let operation = get_executable_operation(
&parsed_document,
&supergraph_state,
Some("AbstractManySubgraphsBench"),
);
let override_context = PlannerOverrideContext::default();

b.iter(|| {
let bb_graph = black_box(&graph);
let bb_operation = black_box(&operation);
let bb_kind = black_box(OperationKind::Query);
let bb_supergraph_state = black_box(&supergraph_state);
let bb_override_context = black_box(&override_context);

let best_paths_per_leaf = walk_operation(
bb_graph,
bb_supergraph_state,
bb_override_context,
bb_operation,
&cancellation_token,
)
.expect("walk_operation failed during benchmark");
let query_tree =
find_best_combination(bb_graph, best_paths_per_leaf, &cancellation_token).unwrap();
let fetch_graph = build_fetch_graph_from_query_tree(
bb_graph,
bb_supergraph_state,
bb_override_context,
query_tree,
bb_kind,
&QueryPlannerOptions::default(),
&cancellation_token,
)
.unwrap();
let query_plan = build_query_plan_from_fetch_graph(
fetch_graph,
bb_supergraph_state,
&cancellation_token,
)
.unwrap();
black_box(query_plan);
})
});

c.bench_function("query_plan_heavy_query", |b| {
let supergraph_sdl = std::fs::read_to_string("./fixture/heavy-query/supergraph.graphql")
.expect("Unable to read input file");
let parsed_schema = parse_schema(&supergraph_sdl);
let supergraph_state = SupergraphState::new(&parsed_schema);
let graph =
Graph::graph_from_supergraph_state(&supergraph_state).expect("failed to create graph");

let parsed_document = get_operation("./fixture/heavy-query/operation.graphql");
let operation =
get_executable_operation(&parsed_document, &supergraph_state, Some("TvpVod"));
let override_context = PlannerOverrideContext::default();

b.iter(|| {
let bb_graph = black_box(&graph);
let bb_operation = black_box(&operation);
let bb_kind = black_box(OperationKind::Query);
let bb_supergraph_state = black_box(&supergraph_state);
let bb_override_context = black_box(&override_context);

let best_paths_per_leaf = walk_operation(
bb_graph,
bb_supergraph_state,
bb_override_context,
bb_operation,
&cancellation_token,
)
.expect("walk_operation failed during benchmark");
let query_tree =
find_best_combination(bb_graph, best_paths_per_leaf, &cancellation_token).unwrap();
let fetch_graph = build_fetch_graph_from_query_tree(
bb_graph,
bb_supergraph_state,
bb_override_context,
query_tree,
bb_kind,
&QueryPlannerOptions::default(),
&cancellation_token,
)
.unwrap();
let query_plan = build_query_plan_from_fetch_graph(
fetch_graph,
bb_supergraph_state,
&cancellation_token,
)
.unwrap();
black_box(query_plan);
})
});

c.bench_function("query_plan_bfg_1", |b| {
let supergraph_sdl = std::fs::read_to_string("./fixture/bfg/supergraph.graphql")
.expect("Unable to read input file");
let parsed_schema = parse_schema(&supergraph_sdl);
let supergraph_state = SupergraphState::new(&parsed_schema);
let graph =
Graph::graph_from_supergraph_state(&supergraph_state).expect("failed to create graph");

let parsed_document = get_operation("./fixture/bfg/operation-1.graphql");
let operation =
get_executable_operation(&parsed_document, &supergraph_state, Some("Query1"));
let override_context = PlannerOverrideContext::default();

b.iter(|| {
let bb_graph = black_box(&graph);
let bb_operation = black_box(&operation);
let bb_kind = black_box(OperationKind::Query);
let bb_supergraph_state = black_box(&supergraph_state);
let bb_override_context = black_box(&override_context);

let best_paths_per_leaf = walk_operation(
bb_graph,
bb_supergraph_state,
bb_override_context,
bb_operation,
&cancellation_token,
)
.expect("walk_operation failed during benchmark");
let query_tree =
find_best_combination(bb_graph, best_paths_per_leaf, &cancellation_token).unwrap();
let fetch_graph = build_fetch_graph_from_query_tree(
bb_graph,
bb_supergraph_state,
bb_override_context,
query_tree,
bb_kind,
&QueryPlannerOptions::default(),
&cancellation_token,
)
.unwrap();
let query_plan = build_query_plan_from_fetch_graph(
fetch_graph,
bb_supergraph_state,
&cancellation_token,
)
.unwrap();
black_box(query_plan);
})
});

c.bench_function("query_plan_bfg_2", |b| {
let supergraph_sdl = std::fs::read_to_string("./fixture/bfg/supergraph.graphql")
.expect("Unable to read input file");
let parsed_schema = parse_schema(&supergraph_sdl);
let supergraph_state = SupergraphState::new(&parsed_schema);
let graph =
Graph::graph_from_supergraph_state(&supergraph_state).expect("failed to create graph");

let parsed_document = get_operation("./fixture/bfg/operation-2.graphql");
let operation =
get_executable_operation(&parsed_document, &supergraph_state, Some("Query2"));
let override_context = PlannerOverrideContext::default();

b.iter(|| {
let bb_graph = black_box(&graph);
let bb_operation = black_box(&operation);
let bb_kind = black_box(OperationKind::Query);
let bb_supergraph_state = black_box(&supergraph_state);
let bb_override_context = black_box(&override_context);

let best_paths_per_leaf = walk_operation(
bb_graph,
bb_supergraph_state,
bb_override_context,
bb_operation,
&cancellation_token,
)
.expect("walk_operation failed during benchmark");
let query_tree =
find_best_combination(bb_graph, best_paths_per_leaf, &cancellation_token).unwrap();
let fetch_graph = build_fetch_graph_from_query_tree(
bb_graph,
bb_supergraph_state,
bb_override_context,
query_tree,
bb_kind,
&QueryPlannerOptions::default(),
&cancellation_token,
)
.unwrap();
let query_plan = build_query_plan_from_fetch_graph(
fetch_graph,
bb_supergraph_state,
&cancellation_token,
)
.unwrap();
black_box(query_plan);
})
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The newly added benchmark functions contain highly duplicated benchmark loop bodies. We can refactor the duplicated logic into a nested helper function run_query_plan_bench that handles the benchmark iteration. This improves readability and maintainability of the benchmark suite. Note that using .unwrap() is permissible here since this is benchmark/test code with controlled input data.

    fn run_query_plan_bench(
        b: &mut criterion::Bencher,
        graph: &Graph,
        supergraph_state: &SupergraphState,
        operation: &OperationDefinition,
        override_context: &PlannerOverrideContext,
        cancellation_token: &CancellationToken,
    ) {
        b.iter(|| {
            let bb_graph = black_box(graph);
            let bb_operation = black_box(operation);
            let bb_kind = black_box(OperationKind::Query);
            let bb_supergraph_state = black_box(supergraph_state);
            let bb_override_context = black_box(override_context);

            let best_paths_per_leaf = walk_operation(
                bb_graph,
                bb_supergraph_state,
                bb_override_context,
                bb_operation,
                cancellation_token,
            )
            .unwrap();
            let query_tree = 
                find_best_combination(bb_graph, best_paths_per_leaf, cancellation_token)
                    .unwrap();
            let fetch_graph = build_fetch_graph_from_query_tree(
                bb_graph,
                bb_supergraph_state,
                bb_override_context,
                query_tree,
                bb_kind,
                &QueryPlannerOptions::default(),
                cancellation_token,
            )
            .unwrap();
            let query_plan = build_query_plan_from_fetch_graph(
                fetch_graph,
                bb_supergraph_state,
                cancellation_token,
            )
            .unwrap();
            black_box(query_plan);
        })
    }

    c.bench_function("query_plan_abstract_many_subgraphs", |b| {
        let supergraph_sdl =
            std::fs::read_to_string("./fixture/abstract-many-subgraphs/supergraph.graphql")
                .unwrap();
        let parsed_schema = parse_schema(&supergraph_sdl);
        let supergraph_state = SupergraphState::new(&parsed_schema);
        let graph =
            Graph::graph_from_supergraph_state(&supergraph_state).unwrap();

        let parsed_document = get_operation("./fixture/abstract-many-subgraphs/operation.graphql");
        let operation = get_executable_operation(
            &parsed_document,
            &supergraph_state,
            Some("AbstractManySubgraphsBench"),
        );
        let override_context = PlannerOverrideContext::default();

        run_query_plan_bench(
            b,
            &graph,
            &supergraph_state,
            &operation,
            &override_context,
            &cancellation_token,
        );
    });

    c.bench_function("query_plan_heavy_query", |b| {
        let supergraph_sdl = std::fs::read_to_string("./fixture/heavy-query/supergraph.graphql")
            .unwrap();
        let parsed_schema = parse_schema(&supergraph_sdl);
        let supergraph_state = SupergraphState::new(&parsed_schema);
        let graph =
            Graph::graph_from_supergraph_state(&supergraph_state).unwrap();

        let parsed_document = get_operation("./fixture/heavy-query/operation.graphql");
        let operation =
            get_executable_operation(&parsed_document, &supergraph_state, Some("TvpVod"));
        let override_context = PlannerOverrideContext::default();

        run_query_plan_bench(
            b,
            &graph,
            &supergraph_state,
            &operation,
            &override_context,
            &cancellation_token,
        );
    });

    c.bench_function("query_plan_bfg_1", |b| {
        let supergraph_sdl = std::fs::read_to_string("./fixture/bfg/supergraph.graphql")
            .unwrap();
        let parsed_schema = parse_schema(&supergraph_sdl);
        let supergraph_state = SupergraphState::new(&parsed_schema);
        let graph =
            Graph::graph_from_supergraph_state(&supergraph_state).unwrap();

        let parsed_document = get_operation("./fixture/bfg/operation-1.graphql");
        let operation =
            get_executable_operation(&parsed_document, &supergraph_state, Some("Query1"));
        let override_context = PlannerOverrideContext::default();

        run_query_plan_bench(
            b,
            &graph,
            &supergraph_state,
            &operation,
            &override_context,
            &cancellation_token,
        );
    });

    c.bench_function("query_plan_bfg_2", |b| {
        let supergraph_sdl = std::fs::read_to_string("./fixture/bfg/supergraph.graphql")
            .unwrap();
        let parsed_schema = parse_schema(&supergraph_sdl);
        let supergraph_state = SupergraphState::new(&parsed_schema);
        let graph =
            Graph::graph_from_supergraph_state(&supergraph_state).unwrap();

        let parsed_document = get_operation("./fixture/bfg/operation-2.graphql");
        let operation =
            get_executable_operation(&parsed_document, &supergraph_state, Some("Query2"));
        let override_context = PlannerOverrideContext::default();

        run_query_plan_bench(
            b,
            &graph,
            &supergraph_state,
            &operation,
            &override_context,
            &cancellation_token,
        );
    });
References
  1. Rule E: Large monolithic functions or duplicated logic should be split into focused helpers. (link)
  2. In tests, using unwrap() is permissible if the test data is controlled, as the developer can ensure that the operation will not panic.

@github-actions

Copy link
Copy Markdown

🐋 This PR was built and pushed to the following Docker images:

Image Names: ghcr.io/graphql-hive/router

Platforms: linux/amd64,linux/arm64

Image Tags: ghcr.io/graphql-hive/router:pr-1220 ghcr.io/graphql-hive/router:sha-f0d6600

Docker metadata
{
"buildx.build.provenance/linux/amd64": {
  "builder": {
    "id": "https://github.com/graphql-hive/router/actions/runs/28443185592/attempts/1"
  },
  "buildType": "https://mobyproject.org/buildkit@v1",
  "materials": [
    {
      "uri": "pkg:docker/docker/dockerfile@1.22",
      "digest": {
        "sha256": "4a43a54dd1fedceb30ba47e76cfcf2b47304f4161c0caeac2db1c61804ea3c91"
      }
    },
    {
      "uri": "pkg:docker/gcr.io/distroless/cc-debian12@latest?platform=linux%2Famd64",
      "digest": {
        "sha256": "d703b626ba455c4e6c6fbe5f36e6f427c85d51445598d564652a2f334179f96e"
      }
    }
  ],
  "invocation": {
    "configSource": {
      "entryPoint": "router.Dockerfile"
    },
    "parameters": {
      "frontend": "gateway.v0",
      "args": {
        "cmdline": "docker/dockerfile:1.22",
        "label:org.opencontainers.image.created": "2026-06-30T12:31:54.769Z",
        "label:org.opencontainers.image.description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
        "label:org.opencontainers.image.licenses": "MIT",
        "label:org.opencontainers.image.revision": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
        "label:org.opencontainers.image.source": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.title": "router",
        "label:org.opencontainers.image.url": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.vendor": "theguild",
        "label:org.opencontainers.image.version": "pr-1220",
        "source": "docker/dockerfile:1.22"
      },
      "locals": [
        {
          "name": "context"
        },
        {
          "name": "dockerfile"
        }
      ],
      "root": {
        "configSource": {
          "path": "router.Dockerfile"
        },
        "request": {
          "args": {
            "label:org.opencontainers.image.created": "2026-06-30T12:31:54.769Z",
            "label:org.opencontainers.image.description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
            "label:org.opencontainers.image.licenses": "MIT",
            "label:org.opencontainers.image.revision": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
            "label:org.opencontainers.image.source": "https://github.com/graphql-hive/router",
            "label:org.opencontainers.image.title": "router",
            "label:org.opencontainers.image.url": "https://github.com/graphql-hive/router",
            "label:org.opencontainers.image.vendor": "theguild",
            "label:org.opencontainers.image.version": "pr-1220",
            "vcs:localdir:context": ".",
            "vcs:localdir:dockerfile": "docker",
            "vcs:revision": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
            "vcs:source": "https://github.com/graphql-hive/router"
          }
        }
      },
      "compatibilityVersion": 20
    },
    "environment": {
      "github_actor": "kamilkisiela",
      "github_actor_id": "8167190",
      "github_event_name": "pull_request",
      "github_event_payload": {
        "action": "opened",
        "enterprise": {
          "avatar_url": "https://avatars.githubusercontent.com/b/187753?v=4",
          "created_at": "2024-07-02T08:52:28Z",
          "description": "",
          "html_url": "https://github.com/enterprises/the-guild",
          "id": 187753,
          "name": "The Guild",
          "node_id": "E_kgDOAALdaQ",
          "slug": "the-guild",
          "updated_at": "2026-06-11T22:23:13Z",
          "website_url": "https://the-guild.dev/"
        },
        "number": 1220,
        "organization": {
          "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
          "description": "Schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs.",
          "events_url": "https://api.github.com/orgs/graphql-hive/events",
          "hooks_url": "https://api.github.com/orgs/graphql-hive/hooks",
          "id": 182742256,
          "issues_url": "https://api.github.com/orgs/graphql-hive/issues",
          "login": "graphql-hive",
          "members_url": "https://api.github.com/orgs/graphql-hive/members{/member}",
          "node_id": "O_kgDOCuRs8A",
          "public_members_url": "https://api.github.com/orgs/graphql-hive/public_members{/member}",
          "repos_url": "https://api.github.com/orgs/graphql-hive/repos",
          "url": "https://api.github.com/orgs/graphql-hive"
        },
        "pull_request": {
          "_links": {
            "comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/1220/comments"
            },
            "commits": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/1220/commits"
            },
            "html": {
              "href": "https://github.com/graphql-hive/router/pull/1220"
            },
            "issue": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/1220"
            },
            "review_comment": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}"
            },
            "review_comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/1220/comments"
            },
            "self": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/1220"
            },
            "statuses": {
              "href": "https://api.github.com/repos/graphql-hive/router/statuses/fcdcae94ee5691c1097ccb42c6d375083ea1c963"
            }
          },
          "active_lock_reason": null,
          "additions": 544020,
          "assignee": null,
          "assignees": [],
          "author_association": "CONTRIBUTOR",
          "auto_merge": null,
          "base": {
            "label": "graphql-hive:main",
            "ref": "main",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 15,
              "forks_count": 15,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 60,
              "open_issues_count": 60,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-06-30T12:07:30Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 8479,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 91,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-06-30T11:26:47Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 91,
              "watchers_count": 91,
              "web_commit_signoff_required": false
            },
            "sha": "803fa73b1b8fe990e1c508aad19cf88e0fe1209e",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "body": "Some benchmarks here will either take 16 minutes or never end, but it's the PR number 1 that I will use as the umbrella for step-by-step fixes and improvements.\r\n\r\nThings that take 15-20-30 minutes will take 10ms at the end (on my machine though).",
          "changed_files": 8,
          "closed_at": null,
          "comments": 0,
          "comments_url": "https://api.github.com/repos/graphql-hive/router/issues/1220/comments",
          "commits": 1,
          "commits_url": "https://api.github.com/repos/graphql-hive/router/pulls/1220/commits",
          "created_at": "2026-06-30T12:09:23Z",
          "deletions": 0,
          "diff_url": "https://github.com/graphql-hive/router/pull/1220.diff",
          "draft": true,
          "head": {
            "label": "graphql-hive:kamil-heavy-qp-benchmarks",
            "ref": "kamil-heavy-qp-benchmarks",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 15,
              "forks_count": 15,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 60,
              "open_issues_count": 60,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-06-30T12:07:30Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 8479,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 91,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-06-30T11:26:47Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 91,
              "watchers_count": 91,
              "web_commit_signoff_required": false
            },
            "sha": "fcdcae94ee5691c1097ccb42c6d375083ea1c963",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "html_url": "https://github.com/graphql-hive/router/pull/1220",
          "id": 3963010943,
          "issue_url": "https://api.github.com/repos/graphql-hive/router/issues/1220",
          "labels": [],
          "locked": false,
          "maintainer_can_modify": false,
          "merge_commit_sha": null,
          "mergeable": null,
          "mergeable_state": "unknown",
          "merged": false,
          "merged_at": null,
          "merged_by": null,
          "milestone": null,
          "node_id": "PR_kwDONSTNFM7sNr9_",
          "number": 1220,
          "patch_url": "https://github.com/graphql-hive/router/pull/1220.patch",
          "rebaseable": null,
          "requested_reviewers": [],
          "requested_teams": [],
          "review_comment_url": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}",
          "review_comments": 0,
          "review_comments_url": "https://api.github.com/repos/graphql-hive/router/pulls/1220/comments",
          "state": "open",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/fcdcae94ee5691c1097ccb42c6d375083ea1c963",
          "title": "Add QP and graph building performance baselines",
          "updated_at": "2026-06-30T12:09:23Z",
          "url": "https://api.github.com/repos/graphql-hive/router/pulls/1220",
          "user": {
            "avatar_url": "https://avatars.githubusercontent.com/u/8167190?v=4",
            "events_url": "https://api.github.com/users/kamilkisiela/events{/privacy}",
            "followers_url": "https://api.github.com/users/kamilkisiela/followers",
            "following_url": "https://api.github.com/users/kamilkisiela/following{/other_user}",
            "gists_url": "https://api.github.com/users/kamilkisiela/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/kamilkisiela",
            "id": 8167190,
            "login": "kamilkisiela",
            "node_id": "MDQ6VXNlcjgxNjcxOTA=",
            "organizations_url": "https://api.github.com/users/kamilkisiela/orgs",
            "received_events_url": "https://api.github.com/users/kamilkisiela/received_events",
            "repos_url": "https://api.github.com/users/kamilkisiela/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/kamilkisiela/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/kamilkisiela/subscriptions",
            "type": "User",
            "url": "https://api.github.com/users/kamilkisiela",
            "user_view_type": "public"
          }
        },
        "repository": {
          "allow_forking": true,
          "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
          "archived": false,
          "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
          "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
          "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
          "clone_url": "https://github.com/graphql-hive/router.git",
          "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
          "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
          "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
          "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
          "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
          "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
          "created_at": "2024-11-20T16:16:12Z",
          "custom_properties": {
            "vanta_production_branch_name": "main"
          },
          "default_branch": "main",
          "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
          "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
          "disabled": false,
          "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
          "events_url": "https://api.github.com/repos/graphql-hive/router/events",
          "fork": false,
          "forks": 15,
          "forks_count": 15,
          "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
          "full_name": "graphql-hive/router",
          "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
          "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
          "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
          "git_url": "git://github.com/graphql-hive/router.git",
          "has_discussions": false,
          "has_downloads": true,
          "has_issues": true,
          "has_pages": false,
          "has_projects": false,
          "has_pull_requests": true,
          "has_wiki": false,
          "homepage": "https://the-guild.dev/graphql/hive/docs/router",
          "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
          "html_url": "https://github.com/graphql-hive/router",
          "id": 891604244,
          "is_template": false,
          "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
          "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
          "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
          "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
          "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
          "language": "Rust",
          "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
          "license": {
            "key": "mit",
            "name": "MIT License",
            "node_id": "MDc6TGljZW5zZTEz",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit"
          },
          "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
          "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
          "mirror_url": null,
          "name": "router",
          "node_id": "R_kgDONSTNFA",
          "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
          "open_issues": 60,
          "open_issues_count": 60,
          "owner": {
            "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
            "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
            "followers_url": "https://api.github.com/users/graphql-hive/followers",
            "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
            "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/graphql-hive",
            "id": 182742256,
            "login": "graphql-hive",
            "node_id": "O_kgDOCuRs8A",
            "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
            "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
            "repos_url": "https://api.github.com/users/graphql-hive/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
            "type": "Organization",
            "url": "https://api.github.com/users/graphql-hive",
            "user_view_type": "public"
          },
          "private": false,
          "pull_request_creation_policy": "all",
          "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
          "pushed_at": "2026-06-30T12:07:30Z",
          "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
          "size": 8479,
          "ssh_url": "git@github.com:graphql-hive/router.git",
          "stargazers_count": 91,
          "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
          "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
          "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
          "svn_url": "https://github.com/graphql-hive/router",
          "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
          "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
          "topics": [
            "apollo-federation",
            "federation",
            "federation-gateway",
            "graphql",
            "graphql-federation",
            "router"
          ],
          "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
          "updated_at": "2026-06-30T11:26:47Z",
          "url": "https://api.github.com/repos/graphql-hive/router",
          "visibility": "public",
          "watchers": 91,
          "watchers_count": 91,
          "web_commit_signoff_required": false
        },
        "sender": {
          "avatar_url": "https://avatars.githubusercontent.com/u/8167190?v=4",
          "events_url": "https://api.github.com/users/kamilkisiela/events{/privacy}",
          "followers_url": "https://api.github.com/users/kamilkisiela/followers",
          "following_url": "https://api.github.com/users/kamilkisiela/following{/other_user}",
          "gists_url": "https://api.github.com/users/kamilkisiela/gists{/gist_id}",
          "gravatar_id": "",
          "html_url": "https://github.com/kamilkisiela",
          "id": 8167190,
          "login": "kamilkisiela",
          "node_id": "MDQ6VXNlcjgxNjcxOTA=",
          "organizations_url": "https://api.github.com/users/kamilkisiela/orgs",
          "received_events_url": "https://api.github.com/users/kamilkisiela/received_events",
          "repos_url": "https://api.github.com/users/kamilkisiela/repos",
          "site_admin": false,
          "starred_url": "https://api.github.com/users/kamilkisiela/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/kamilkisiela/subscriptions",
          "type": "User",
          "url": "https://api.github.com/users/kamilkisiela",
          "user_view_type": "public"
        }
      },
      "github_job": "docker",
      "github_ref": "refs/pull/1220/merge",
      "github_ref_name": "1220/merge",
      "github_ref_protected": "false",
      "github_ref_type": "branch",
      "github_repository": "graphql-hive/router",
      "github_repository_id": "891604244",
      "github_repository_owner": "graphql-hive",
      "github_repository_owner_id": "182742256",
      "github_run_attempt": "1",
      "github_run_id": "28443185592",
      "github_run_number": "4090",
      "github_runner_arch": "X64",
      "github_runner_environment": "github-hosted",
      "github_runner_image_os": "ubuntu24",
      "github_runner_image_version": "20260622.220.1",
      "github_runner_name": "GitHub Actions 1000889994",
      "github_runner_os": "Linux",
      "github_runner_tracking_id": "github_ea515e07-836c-434d-9962-53e04431ef59",
      "github_server_url": "https://github.com",
      "github_triggering_actor": "kamilkisiela",
      "github_workflow": "build-router",
      "github_workflow_ref": "graphql-hive/router/.github/workflows/build-router.yaml@refs/pull/1220/merge",
      "github_workflow_sha": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
      "platform": "linux/amd64"
    }
  }
},
"buildx.build.provenance/linux/arm64": {
  "builder": {
    "id": "https://github.com/graphql-hive/router/actions/runs/28443185592/attempts/1"
  },
  "buildType": "https://mobyproject.org/buildkit@v1",
  "materials": [
    {
      "uri": "pkg:docker/docker/dockerfile@1.22",
      "digest": {
        "sha256": "4a43a54dd1fedceb30ba47e76cfcf2b47304f4161c0caeac2db1c61804ea3c91"
      }
    },
    {
      "uri": "pkg:docker/gcr.io/distroless/cc-debian12@latest?platform=linux%2Farm64",
      "digest": {
        "sha256": "d703b626ba455c4e6c6fbe5f36e6f427c85d51445598d564652a2f334179f96e"
      }
    }
  ],
  "invocation": {
    "configSource": {
      "entryPoint": "router.Dockerfile"
    },
    "parameters": {
      "frontend": "gateway.v0",
      "args": {
        "cmdline": "docker/dockerfile:1.22",
        "label:org.opencontainers.image.created": "2026-06-30T12:31:54.769Z",
        "label:org.opencontainers.image.description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
        "label:org.opencontainers.image.licenses": "MIT",
        "label:org.opencontainers.image.revision": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
        "label:org.opencontainers.image.source": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.title": "router",
        "label:org.opencontainers.image.url": "https://github.com/graphql-hive/router",
        "label:org.opencontainers.image.vendor": "theguild",
        "label:org.opencontainers.image.version": "pr-1220",
        "source": "docker/dockerfile:1.22"
      },
      "locals": [
        {
          "name": "context"
        },
        {
          "name": "dockerfile"
        }
      ],
      "root": {
        "configSource": {
          "path": "router.Dockerfile"
        },
        "request": {
          "args": {
            "label:org.opencontainers.image.created": "2026-06-30T12:31:54.769Z",
            "label:org.opencontainers.image.description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
            "label:org.opencontainers.image.licenses": "MIT",
            "label:org.opencontainers.image.revision": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
            "label:org.opencontainers.image.source": "https://github.com/graphql-hive/router",
            "label:org.opencontainers.image.title": "router",
            "label:org.opencontainers.image.url": "https://github.com/graphql-hive/router",
            "label:org.opencontainers.image.vendor": "theguild",
            "label:org.opencontainers.image.version": "pr-1220",
            "vcs:localdir:context": ".",
            "vcs:localdir:dockerfile": "docker",
            "vcs:revision": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
            "vcs:source": "https://github.com/graphql-hive/router"
          }
        }
      },
      "compatibilityVersion": 20
    },
    "environment": {
      "github_actor": "kamilkisiela",
      "github_actor_id": "8167190",
      "github_event_name": "pull_request",
      "github_event_payload": {
        "action": "opened",
        "enterprise": {
          "avatar_url": "https://avatars.githubusercontent.com/b/187753?v=4",
          "created_at": "2024-07-02T08:52:28Z",
          "description": "",
          "html_url": "https://github.com/enterprises/the-guild",
          "id": 187753,
          "name": "The Guild",
          "node_id": "E_kgDOAALdaQ",
          "slug": "the-guild",
          "updated_at": "2026-06-11T22:23:13Z",
          "website_url": "https://the-guild.dev/"
        },
        "number": 1220,
        "organization": {
          "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
          "description": "Schema registry, analytics and gateway for GraphQL federation and other GraphQL APIs.",
          "events_url": "https://api.github.com/orgs/graphql-hive/events",
          "hooks_url": "https://api.github.com/orgs/graphql-hive/hooks",
          "id": 182742256,
          "issues_url": "https://api.github.com/orgs/graphql-hive/issues",
          "login": "graphql-hive",
          "members_url": "https://api.github.com/orgs/graphql-hive/members{/member}",
          "node_id": "O_kgDOCuRs8A",
          "public_members_url": "https://api.github.com/orgs/graphql-hive/public_members{/member}",
          "repos_url": "https://api.github.com/orgs/graphql-hive/repos",
          "url": "https://api.github.com/orgs/graphql-hive"
        },
        "pull_request": {
          "_links": {
            "comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/1220/comments"
            },
            "commits": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/1220/commits"
            },
            "html": {
              "href": "https://github.com/graphql-hive/router/pull/1220"
            },
            "issue": {
              "href": "https://api.github.com/repos/graphql-hive/router/issues/1220"
            },
            "review_comment": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}"
            },
            "review_comments": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/1220/comments"
            },
            "self": {
              "href": "https://api.github.com/repos/graphql-hive/router/pulls/1220"
            },
            "statuses": {
              "href": "https://api.github.com/repos/graphql-hive/router/statuses/fcdcae94ee5691c1097ccb42c6d375083ea1c963"
            }
          },
          "active_lock_reason": null,
          "additions": 544020,
          "assignee": null,
          "assignees": [],
          "author_association": "CONTRIBUTOR",
          "auto_merge": null,
          "base": {
            "label": "graphql-hive:main",
            "ref": "main",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 15,
              "forks_count": 15,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 60,
              "open_issues_count": 60,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-06-30T12:07:30Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 8479,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 91,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-06-30T11:26:47Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 91,
              "watchers_count": 91,
              "web_commit_signoff_required": false
            },
            "sha": "803fa73b1b8fe990e1c508aad19cf88e0fe1209e",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "body": "Some benchmarks here will either take 16 minutes or never end, but it's the PR number 1 that I will use as the umbrella for step-by-step fixes and improvements.\r\n\r\nThings that take 15-20-30 minutes will take 10ms at the end (on my machine though).",
          "changed_files": 8,
          "closed_at": null,
          "comments": 0,
          "comments_url": "https://api.github.com/repos/graphql-hive/router/issues/1220/comments",
          "commits": 1,
          "commits_url": "https://api.github.com/repos/graphql-hive/router/pulls/1220/commits",
          "created_at": "2026-06-30T12:09:23Z",
          "deletions": 0,
          "diff_url": "https://github.com/graphql-hive/router/pull/1220.diff",
          "draft": true,
          "head": {
            "label": "graphql-hive:kamil-heavy-qp-benchmarks",
            "ref": "kamil-heavy-qp-benchmarks",
            "repo": {
              "allow_auto_merge": false,
              "allow_forking": true,
              "allow_merge_commit": false,
              "allow_rebase_merge": false,
              "allow_squash_merge": true,
              "allow_update_branch": true,
              "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
              "archived": false,
              "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
              "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
              "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
              "clone_url": "https://github.com/graphql-hive/router.git",
              "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
              "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
              "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
              "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
              "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
              "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
              "created_at": "2024-11-20T16:16:12Z",
              "default_branch": "main",
              "delete_branch_on_merge": true,
              "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
              "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
              "disabled": false,
              "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
              "events_url": "https://api.github.com/repos/graphql-hive/router/events",
              "fork": false,
              "forks": 15,
              "forks_count": 15,
              "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
              "full_name": "graphql-hive/router",
              "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
              "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
              "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
              "git_url": "git://github.com/graphql-hive/router.git",
              "has_discussions": false,
              "has_downloads": true,
              "has_issues": true,
              "has_pages": false,
              "has_projects": false,
              "has_pull_requests": true,
              "has_wiki": false,
              "homepage": "https://the-guild.dev/graphql/hive/docs/router",
              "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
              "html_url": "https://github.com/graphql-hive/router",
              "id": 891604244,
              "is_template": false,
              "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
              "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
              "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
              "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
              "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
              "language": "Rust",
              "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
              "license": {
                "key": "mit",
                "name": "MIT License",
                "node_id": "MDc6TGljZW5zZTEz",
                "spdx_id": "MIT",
                "url": "https://api.github.com/licenses/mit"
              },
              "merge_commit_message": "PR_TITLE",
              "merge_commit_title": "MERGE_MESSAGE",
              "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
              "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
              "mirror_url": null,
              "name": "router",
              "node_id": "R_kgDONSTNFA",
              "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
              "open_issues": 60,
              "open_issues_count": 60,
              "owner": {
                "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
                "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
                "followers_url": "https://api.github.com/users/graphql-hive/followers",
                "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
                "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
                "gravatar_id": "",
                "html_url": "https://github.com/graphql-hive",
                "id": 182742256,
                "login": "graphql-hive",
                "node_id": "O_kgDOCuRs8A",
                "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
                "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
                "repos_url": "https://api.github.com/users/graphql-hive/repos",
                "site_admin": false,
                "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
                "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
                "type": "Organization",
                "url": "https://api.github.com/users/graphql-hive",
                "user_view_type": "public"
              },
              "private": false,
              "pull_request_creation_policy": "all",
              "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
              "pushed_at": "2026-06-30T12:07:30Z",
              "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
              "size": 8479,
              "squash_merge_commit_message": "PR_BODY",
              "squash_merge_commit_title": "PR_TITLE",
              "ssh_url": "git@github.com:graphql-hive/router.git",
              "stargazers_count": 91,
              "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
              "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
              "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
              "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
              "svn_url": "https://github.com/graphql-hive/router",
              "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
              "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
              "topics": [
                "apollo-federation",
                "federation",
                "federation-gateway",
                "graphql",
                "graphql-federation",
                "router"
              ],
              "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
              "updated_at": "2026-06-30T11:26:47Z",
              "url": "https://api.github.com/repos/graphql-hive/router",
              "use_squash_pr_title_as_default": true,
              "visibility": "public",
              "watchers": 91,
              "watchers_count": 91,
              "web_commit_signoff_required": false
            },
            "sha": "fcdcae94ee5691c1097ccb42c6d375083ea1c963",
            "user": {
              "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
              "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
              "followers_url": "https://api.github.com/users/graphql-hive/followers",
              "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
              "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
              "gravatar_id": "",
              "html_url": "https://github.com/graphql-hive",
              "id": 182742256,
              "login": "graphql-hive",
              "node_id": "O_kgDOCuRs8A",
              "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
              "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
              "repos_url": "https://api.github.com/users/graphql-hive/repos",
              "site_admin": false,
              "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
              "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
              "type": "Organization",
              "url": "https://api.github.com/users/graphql-hive",
              "user_view_type": "public"
            }
          },
          "html_url": "https://github.com/graphql-hive/router/pull/1220",
          "id": 3963010943,
          "issue_url": "https://api.github.com/repos/graphql-hive/router/issues/1220",
          "labels": [],
          "locked": false,
          "maintainer_can_modify": false,
          "merge_commit_sha": null,
          "mergeable": null,
          "mergeable_state": "unknown",
          "merged": false,
          "merged_at": null,
          "merged_by": null,
          "milestone": null,
          "node_id": "PR_kwDONSTNFM7sNr9_",
          "number": 1220,
          "patch_url": "https://github.com/graphql-hive/router/pull/1220.patch",
          "rebaseable": null,
          "requested_reviewers": [],
          "requested_teams": [],
          "review_comment_url": "https://api.github.com/repos/graphql-hive/router/pulls/comments{/number}",
          "review_comments": 0,
          "review_comments_url": "https://api.github.com/repos/graphql-hive/router/pulls/1220/comments",
          "state": "open",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/fcdcae94ee5691c1097ccb42c6d375083ea1c963",
          "title": "Add QP and graph building performance baselines",
          "updated_at": "2026-06-30T12:09:23Z",
          "url": "https://api.github.com/repos/graphql-hive/router/pulls/1220",
          "user": {
            "avatar_url": "https://avatars.githubusercontent.com/u/8167190?v=4",
            "events_url": "https://api.github.com/users/kamilkisiela/events{/privacy}",
            "followers_url": "https://api.github.com/users/kamilkisiela/followers",
            "following_url": "https://api.github.com/users/kamilkisiela/following{/other_user}",
            "gists_url": "https://api.github.com/users/kamilkisiela/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/kamilkisiela",
            "id": 8167190,
            "login": "kamilkisiela",
            "node_id": "MDQ6VXNlcjgxNjcxOTA=",
            "organizations_url": "https://api.github.com/users/kamilkisiela/orgs",
            "received_events_url": "https://api.github.com/users/kamilkisiela/received_events",
            "repos_url": "https://api.github.com/users/kamilkisiela/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/kamilkisiela/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/kamilkisiela/subscriptions",
            "type": "User",
            "url": "https://api.github.com/users/kamilkisiela",
            "user_view_type": "public"
          }
        },
        "repository": {
          "allow_forking": true,
          "archive_url": "https://api.github.com/repos/graphql-hive/router/{archive_format}{/ref}",
          "archived": false,
          "assignees_url": "https://api.github.com/repos/graphql-hive/router/assignees{/user}",
          "blobs_url": "https://api.github.com/repos/graphql-hive/router/git/blobs{/sha}",
          "branches_url": "https://api.github.com/repos/graphql-hive/router/branches{/branch}",
          "clone_url": "https://github.com/graphql-hive/router.git",
          "collaborators_url": "https://api.github.com/repos/graphql-hive/router/collaborators{/collaborator}",
          "comments_url": "https://api.github.com/repos/graphql-hive/router/comments{/number}",
          "commits_url": "https://api.github.com/repos/graphql-hive/router/commits{/sha}",
          "compare_url": "https://api.github.com/repos/graphql-hive/router/compare/{base}...{head}",
          "contents_url": "https://api.github.com/repos/graphql-hive/router/contents/{+path}",
          "contributors_url": "https://api.github.com/repos/graphql-hive/router/contributors",
          "created_at": "2024-11-20T16:16:12Z",
          "custom_properties": {
            "vanta_production_branch_name": "main"
          },
          "default_branch": "main",
          "deployments_url": "https://api.github.com/repos/graphql-hive/router/deployments",
          "description": "Open-source (MIT) GraphQL Federation Router. Built with Rust for maximum performance and robustness.",
          "disabled": false,
          "downloads_url": "https://api.github.com/repos/graphql-hive/router/downloads",
          "events_url": "https://api.github.com/repos/graphql-hive/router/events",
          "fork": false,
          "forks": 15,
          "forks_count": 15,
          "forks_url": "https://api.github.com/repos/graphql-hive/router/forks",
          "full_name": "graphql-hive/router",
          "git_commits_url": "https://api.github.com/repos/graphql-hive/router/git/commits{/sha}",
          "git_refs_url": "https://api.github.com/repos/graphql-hive/router/git/refs{/sha}",
          "git_tags_url": "https://api.github.com/repos/graphql-hive/router/git/tags{/sha}",
          "git_url": "git://github.com/graphql-hive/router.git",
          "has_discussions": false,
          "has_downloads": true,
          "has_issues": true,
          "has_pages": false,
          "has_projects": false,
          "has_pull_requests": true,
          "has_wiki": false,
          "homepage": "https://the-guild.dev/graphql/hive/docs/router",
          "hooks_url": "https://api.github.com/repos/graphql-hive/router/hooks",
          "html_url": "https://github.com/graphql-hive/router",
          "id": 891604244,
          "is_template": false,
          "issue_comment_url": "https://api.github.com/repos/graphql-hive/router/issues/comments{/number}",
          "issue_events_url": "https://api.github.com/repos/graphql-hive/router/issues/events{/number}",
          "issues_url": "https://api.github.com/repos/graphql-hive/router/issues{/number}",
          "keys_url": "https://api.github.com/repos/graphql-hive/router/keys{/key_id}",
          "labels_url": "https://api.github.com/repos/graphql-hive/router/labels{/name}",
          "language": "Rust",
          "languages_url": "https://api.github.com/repos/graphql-hive/router/languages",
          "license": {
            "key": "mit",
            "name": "MIT License",
            "node_id": "MDc6TGljZW5zZTEz",
            "spdx_id": "MIT",
            "url": "https://api.github.com/licenses/mit"
          },
          "merges_url": "https://api.github.com/repos/graphql-hive/router/merges",
          "milestones_url": "https://api.github.com/repos/graphql-hive/router/milestones{/number}",
          "mirror_url": null,
          "name": "router",
          "node_id": "R_kgDONSTNFA",
          "notifications_url": "https://api.github.com/repos/graphql-hive/router/notifications{?since,all,participating}",
          "open_issues": 60,
          "open_issues_count": 60,
          "owner": {
            "avatar_url": "https://avatars.githubusercontent.com/u/182742256?v=4",
            "events_url": "https://api.github.com/users/graphql-hive/events{/privacy}",
            "followers_url": "https://api.github.com/users/graphql-hive/followers",
            "following_url": "https://api.github.com/users/graphql-hive/following{/other_user}",
            "gists_url": "https://api.github.com/users/graphql-hive/gists{/gist_id}",
            "gravatar_id": "",
            "html_url": "https://github.com/graphql-hive",
            "id": 182742256,
            "login": "graphql-hive",
            "node_id": "O_kgDOCuRs8A",
            "organizations_url": "https://api.github.com/users/graphql-hive/orgs",
            "received_events_url": "https://api.github.com/users/graphql-hive/received_events",
            "repos_url": "https://api.github.com/users/graphql-hive/repos",
            "site_admin": false,
            "starred_url": "https://api.github.com/users/graphql-hive/starred{/owner}{/repo}",
            "subscriptions_url": "https://api.github.com/users/graphql-hive/subscriptions",
            "type": "Organization",
            "url": "https://api.github.com/users/graphql-hive",
            "user_view_type": "public"
          },
          "private": false,
          "pull_request_creation_policy": "all",
          "pulls_url": "https://api.github.com/repos/graphql-hive/router/pulls{/number}",
          "pushed_at": "2026-06-30T12:07:30Z",
          "releases_url": "https://api.github.com/repos/graphql-hive/router/releases{/id}",
          "size": 8479,
          "ssh_url": "git@github.com:graphql-hive/router.git",
          "stargazers_count": 91,
          "stargazers_url": "https://api.github.com/repos/graphql-hive/router/stargazers",
          "statuses_url": "https://api.github.com/repos/graphql-hive/router/statuses/{sha}",
          "subscribers_url": "https://api.github.com/repos/graphql-hive/router/subscribers",
          "subscription_url": "https://api.github.com/repos/graphql-hive/router/subscription",
          "svn_url": "https://github.com/graphql-hive/router",
          "tags_url": "https://api.github.com/repos/graphql-hive/router/tags",
          "teams_url": "https://api.github.com/repos/graphql-hive/router/teams",
          "topics": [
            "apollo-federation",
            "federation",
            "federation-gateway",
            "graphql",
            "graphql-federation",
            "router"
          ],
          "trees_url": "https://api.github.com/repos/graphql-hive/router/git/trees{/sha}",
          "updated_at": "2026-06-30T11:26:47Z",
          "url": "https://api.github.com/repos/graphql-hive/router",
          "visibility": "public",
          "watchers": 91,
          "watchers_count": 91,
          "web_commit_signoff_required": false
        },
        "sender": {
          "avatar_url": "https://avatars.githubusercontent.com/u/8167190?v=4",
          "events_url": "https://api.github.com/users/kamilkisiela/events{/privacy}",
          "followers_url": "https://api.github.com/users/kamilkisiela/followers",
          "following_url": "https://api.github.com/users/kamilkisiela/following{/other_user}",
          "gists_url": "https://api.github.com/users/kamilkisiela/gists{/gist_id}",
          "gravatar_id": "",
          "html_url": "https://github.com/kamilkisiela",
          "id": 8167190,
          "login": "kamilkisiela",
          "node_id": "MDQ6VXNlcjgxNjcxOTA=",
          "organizations_url": "https://api.github.com/users/kamilkisiela/orgs",
          "received_events_url": "https://api.github.com/users/kamilkisiela/received_events",
          "repos_url": "https://api.github.com/users/kamilkisiela/repos",
          "site_admin": false,
          "starred_url": "https://api.github.com/users/kamilkisiela/starred{/owner}{/repo}",
          "subscriptions_url": "https://api.github.com/users/kamilkisiela/subscriptions",
          "type": "User",
          "url": "https://api.github.com/users/kamilkisiela",
          "user_view_type": "public"
        }
      },
      "github_job": "docker",
      "github_ref": "refs/pull/1220/merge",
      "github_ref_name": "1220/merge",
      "github_ref_protected": "false",
      "github_ref_type": "branch",
      "github_repository": "graphql-hive/router",
      "github_repository_id": "891604244",
      "github_repository_owner": "graphql-hive",
      "github_repository_owner_id": "182742256",
      "github_run_attempt": "1",
      "github_run_id": "28443185592",
      "github_run_number": "4090",
      "github_runner_arch": "X64",
      "github_runner_environment": "github-hosted",
      "github_runner_image_os": "ubuntu24",
      "github_runner_image_version": "20260622.220.1",
      "github_runner_name": "GitHub Actions 1000889994",
      "github_runner_os": "Linux",
      "github_runner_tracking_id": "github_ea515e07-836c-434d-9962-53e04431ef59",
      "github_server_url": "https://github.com",
      "github_triggering_actor": "kamilkisiela",
      "github_workflow": "build-router",
      "github_workflow_ref": "graphql-hive/router/.github/workflows/build-router.yaml@refs/pull/1220/merge",
      "github_workflow_sha": "f0d6600d1655f8c287b8afc613b758e5f85d1880",
      "platform": "linux/amd64"
    }
  }
},
"buildx.build.ref": "builder-b7de30df-3009-4462-865e-7165bd8b8e8d/builder-b7de30df-3009-4462-865e-7165bd8b8e8d0/84m7w3v92bj890vhyr0iyhyd9",
"containerimage.descriptor": {
  "mediaType": "application/vnd.oci.image.index.v1+json",
  "digest": "sha256:31401a43084d79e398367c4c37070614143511f6a05976feb86085af2c242c08",
  "size": 1609
},
"containerimage.digest": "sha256:31401a43084d79e398367c4c37070614143511f6a05976feb86085af2c242c08",
"image.name": "ghcr.io/graphql-hive/router:pr-1220,ghcr.io/graphql-hive/router:sha-f0d6600"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant