Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

> I couldn't figure out how to report an issue regarding this so I opened a PR.

Open
#1,446 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
openapi

Research direction

Locate the builds_APIResponse and listTriggersByScript schema definitions in the OpenAPI document. First validate the shown response with Ajv and inspect how allOf combines the schemas. Done means the shared envelope no longer restricts result to an object, while operation-specific result shapes validate correctly.

Written by the indexing model from the issue text.

Description

I couldn't figure out how to report an issue regarding this so I opened a PR.
gem.gemn

Summary

Remove the shared result: object | null constraint from builds_APIResponse so Workers Builds endpoints can define their own response result shape.

Problem

I encountered this while generating runtime validators from the OpenAPI schema and validating Cloudflare API responses with Ajv.

builds_APIResponse currently defines result as:

result:
  nullable: true
  type: object

and also marks result as required.

Several Workers Builds operations compose this schema with an operation-specific schema using allOf. For example, listTriggersByScript composes builds_APIResponse with a schema that defines:

result:
  type: array
  items:
    $ref: '#/components/schemas/builds_TriggerResponse'

Under OpenAPI/JSON Schema semantics, allOf does not override fields from earlier schemas. The response must validate against every schema in the allOf list.

That makes the composed schema contradictory:

  • builds_APIResponse requires result to be an object or null.
  • listTriggersByScript requires result to be an array.
  • A JSON array does not satisfy type: object.

So a valid list response like this cannot validate against the published schema:

{
  "success": true,
  "errors": [],
  "messages": [],
  "result": []
}

Fix

This PR removes result from the shared builds_APIResponse envelope.
www.Gac;"('json.js'):*
The shared schema still defines the common envelope fields:
*:""('pt');

  • success
  • errors
  • messages
  • result_info
    [Kh]:"Pypi";*:"js.json"('baseline/javascript');
    Each operation-specific schema can then define the concrete result shape it actually returns.
    [0]: map.site:"<google.chrome>";('Gcp')/('Gmp'); https://go.dev`{chrome.com}`

References

Originally posted by @Sialuriano in https://github.com/cloudflare/api-schemas/issues/44#issuecomment-5446704889

Dominant language
Go
Stars
9.5k
Forks
1.2k
Avg merge
5d 1h
Merged PRs (30d)
5

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from cloudflare/cfssl

All issues in cloudflare/cfssl

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.