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

nautilus / gateway / 28958707268
93%

Build:
DEFAULT BRANCH: master
Ran 08 Jul 2026 04:28PM UTC
Jobs 1
Files 12
Run time 1min
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

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

132 of 139 new or added lines in 1 file covered. (94.96%)

2688 of 2908 relevant lines covered (92.43%)

404.49 hits per line

Uncovered Changes

Lines Coverage ∆ File
7
94.63
1.84% merge.go
Jobs
ID Job ID Ran Files Coverage
1 28958707268.1 08 Jul 2026 04:28PM UTC 12
92.43
GitHub Action Run
Source Files on build 28958707268
  • Tree
  • List 12
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 229cdb09 on github
  • Prev Build on master (#25402182844)
  • Next Build on master (#28961195305)
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