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

dangernoodle-io / breadboard / 24968247698
100%

Build:
DEFAULT BRANCH: main
Ran 26 Apr 2026 10:07PM UTC
Jobs 1
Files 6
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

26 Apr 2026 10:07PM UTC coverage: 100.0%. Remained the same
24968247698

push

github

web-flow
feat(bb_openapi): runtime + host emitter for openapi 3.1 spec (#96)

walks the bb_http route descriptor registry (added in #95) and emits a
complete openapi 3.1 document. two consumers share the same emitter:

- runtime: `bb_openapi_register(server, meta)` adds GET /api/openapi.json
  so external tools (taipan-cli, fleet ops, third-party integrators) can
  introspect a live device.
- build-time: host_tools/emit_openapi links the same emitter against a
  consumer's descriptor TUs to print the spec to stdout, driving codegen
  (e.g. openapi-typescript for the webui types).

- public header: bb_openapi_meta_t, bb_openapi_emit, bb_openapi_register.
- portable bb_openapi_emit.c uses bb_json only; no httpd dependency.
- bb_json: adds bb_json_obj_set_raw (parse json_literal via cJSON and
  attach as a live node) so schema fragments are injected as raw json
  objects rather than strings.
- bb_json: host-only bb_json_host_force_alloc_fail_after() fault-injection
  hook (mirrors bb_http_host_force_register_fail) so tests can exercise
  the OOM cleanup branches in the emitter that are otherwise unreachable
  on the host.
- host_tools/emit_openapi: minimal CLI; fixtures gated on
  BB_OPENAPI_HARNESS_FIXTURES so consumer projects reuse the same main
  by linking their own describe-routes TUs.
- response gzip deferred — json body is plaintext; for ~30 routes the
  spec is well under 8 KB; revisit if size becomes an issue.
- redocly lint passes (security-defined and 4xx-response are opinionated
  ruleset warnings, not structural errors; `--skip-rule` clean).

host tests cover: openapi version, info, paths count, summary, raw schema
injection, derived operationId across all http methods + edge cases (no
/api prefix, dashes, underscores, consecutive slashes), tag omission,
servers present/absent, multi-method path grouping, multiple/zero/null
responses, null meta fields, null route fields, and OOM cleanup at every
allocation site in the emitter (root, info, servers/se... (continued)

196 of 196 branches covered (100.0%)

Branch coverage included in aggregate %.

136 of 136 new or added lines in 1 file covered. (100.0%)

270 of 270 relevant lines covered (100.0%)

192.98 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24968247698.1 26 Apr 2026 10:07PM UTC 6
100.0
GitHub Action Run
Source Files on build 24968247698
  • Tree
  • List 6
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #24968247698
  • 46ef306a on github
  • Prev Build on main (#24966884875)
  • Next Build on main (#24968767699)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc