• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nautilus / gateway / 28958707268 / 1
93%
master: 93%

Build:
DEFAULT BRANCH: master
Ran 08 Jul 2026 04:28PM UTC
Files 12
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Jul 2026 04:27PM UTC coverage: 92.435% (+0.4%) from 92.049%
28958707268.1

push

github

web-flow
Allow merging some cases of unordered directives (built-in) with ordered directives (custom) (#235)

Merging directive lists like `scalar Foo @bar @baz @biff` across service schemas can be unnecessarily arduous when the lists are nearly identical.
This change permits some cases to merge cleanly when they do not impact expected behavior.

Critically, the GraphQL spec says [directive order is significant](https://spec.graphql.org/October2021/#sec-Language.Directives.Directive-order-is-significant), so
this change goes through some extra merging pain in gateway to allow more flexible service schemas.

This is most obviously painful when a built-in directive is reused identically across service schemas, like so:

    scalar Foo @specifiedBy(url: "bar")
    scalar Foo @specifiedBy(url: "bar")

However, this change also permits custom directives if they are only in one of the services, or are identical.
For example, in the below list of service schemas, A+C and B+C are permitted to merge. Note that A+B cannot be merged because they do not have identical custom directives.

    scalar Foo @specifiedBy(url: "bar") @baz(biff: 1)
    scalar Foo @specifiedBy(url: "bar") @baz(biff: 2)
    scalar Foo @specifiedBy(url: "bar")

There are other edge cases due to significant ordering, but I've documented those on the relevant functions.


All changes:

* Allow merging slightly dissimilar directive lists
    - Allow non-empty with empty directive lists
    - Permit different sets of definitely-unordered directives. This allows one schema to add @specifiedBy and another a custom directive
* Improve error messages and docs
    - Clarify directive location merge docs
    - Extract helper to identify executable directive locations, improve error message clarity
    - Include mismatched directives in error
    - Fix invalid error message for scalar directive merge
    - Add type, field, and directive names for context on merge errors
* Fix merges for input objects

2688 of 2908 relevant lines covered (92.43%)

404.49 hits per line

Source Files on job 28958707268.1
  • Tree
  • List 12
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 28958707268
  • 229cdb09 on github
  • Prev Job for on master (#25402182844.1)
  • Next Job for on master (#28961195305.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc