main · last commit
18 hours ago ·
8tmadfpi
spec-0m2 Bump gqlparser/gqlgen in specs past the GO-2024-2920 floor and fix broken codegen
Lined Up
bd update spec-0m2 --claim
bd close spec-0m2
| Created by | Eugene Blikh |
| Owner | bigbes@gmail.com |
| Created | 2026-08-17T20:40:04Z |
| Updated | 2026-08-17T20:40:04Z |
What is wrong: `sourcehut-specs/go.mod` pins `github.com/vektah/gqlparser/v2 v2.5.8` + `github.com/99designs/gqlgen v0.17.36`, and `sourcehut-specs/graph/generate.go`'s `go:generate` directive is unpinned (`go run github.com/99designs/gqlgen generate`). Two failure modes on one pin: gqlparser v2.5.8 is below the GO-2024-2920 floor (a DoS in `parseDirectives`, fixed in v2.5.14); and gqlgen v0.17.36 itself pins `golang.org/x/tools v0.9.3`, which does not compile under this toolchain, so `go generate ./graph` in specs is broken outright — specs' own comment records the cause. Why it matters: specs' `/query` parses only after `graph/server.go::resolveCaller`/`::gate`, so this is not the fully unauthenticated shape the advisory describes — that's the mitigation. But codegen being broken means specs cannot regenerate its own GraphQL resolvers when the schema changes. Sibling that does it correctly: `sourcehut-artifacts`, `sourcehut-bench`, `sourcehut-coverage`, `sourcehut-curator`, `sourcehut-dolt` (and `thistle`, `sr-ht-api`, `sourcehut-federation`) are all on `gqlparser v2.5.36` + `gqlgen v0.17.94`. Fix: bump `sr-ht-core` and `sr-ht-ecore` first (they are libraries and set the floor for every consumer, tracked as separate issues in those repos), then in specs: `go get github.com/vektah/gqlparser/v2@v2.5.36 github.com/99designs/gqlgen@v0.17.94`; pin the `go:generate` line in `graph/generate.go` to `@v0.17.94` like the other five services. Note: confidence verified — go.mod version strings were read directly across all nine services plus core/ecore, split exactly 5/5. Audit: D06 (cross-repo audit, 2026-08-17)
No outgoing dependencies.
Nothing depends on this issue.
| id | spec-0m2 |
| content_hash | 85310dd4858ac34216534b3cb2e7c029a0a7107d1a63c1dc37492e9eac29913d |
| title | Bump gqlparser/gqlgen in specs past the GO-2024-2920 floor and fix broken codegen |
| description | What is wrong: `sourcehut-specs/go.mod` pins `github.com/vektah/gqlparser/v2 v2.5.8` + `github.com/99designs/gqlgen v0.17.36`, and `sourcehut-specs/graph/generate.go`'s `go:generate` directive is unpinned (`go run github.com/99designs/gqlgen generate`). Two failure modes on one pin: gqlparser v2.5.8 is below the GO-2024-2920 floor (a DoS in `parseDirectives`, fixed in v2.5.14); and gqlgen v0.17.36 itself pins `golang.org/x/tools v0.9.3`, which does not compile under this toolchain, so `go generate ./graph` in specs is broken outright — specs' own comment records the cause. Why it matters: specs' `/query` parses only after `graph/server.go::resolveCaller`/`::gate`, so this is not the fully unauthenticated shape the advisory describes — that's the mitigation. But codegen being broken means specs cannot regenerate its own GraphQL resolvers when the schema changes. Sibling that does it correctly: `sourcehut-artifacts`, `sourcehut-bench`, `sourcehut-coverage`, `sourcehut-curator`, `sourcehut-dolt` (and `thistle`, `sr-ht-api`, `sourcehut-federation`) are all on `gqlparser v2.5.36` + `gqlgen v0.17.94`. Fix: bump `sr-ht-core` and `sr-ht-ecore` first (they are libraries and set the floor for every consumer, tracked as separate issues in those repos), then in specs: `go get github.com/vektah/gqlparser/v2@v2.5.36 github.com/99designs/gqlgen@v0.17.94`; pin the `go:generate` line in `graph/generate.go` to `@v0.17.94` like the other five services. Note: confidence verified — go.mod version strings were read directly across all nine services plus core/ecore, split exactly 5/5. Audit: D06 (cross-repo audit, 2026-08-17) |
| design | |
| acceptance_criteria | |
| notes | |
| status | open |
| priority | 0 |
| issue_type | bug |
| assignee | NULL |
| estimated_minutes | NULL |
| created_at | 2026-08-17T20:40:04Z |
| created_by | Eugene Blikh |
| owner | bigbes@gmail.com |
| updated_at | 2026-08-17T20:40:04Z |
| closed_at | NULL |
| closed_by_session | |
| external_ref | NULL |
| spec_id | |
| compaction_level | 0 |
| compacted_at | NULL |
| compacted_at_commit | NULL |
| original_size | NULL |
| sender | |
| ephemeral | 0 |
| wisp_type | |
| pinned | 0 |
| is_template | 0 |
| mol_type | |
| work_type | |
| source_system | |
| metadata | �{} |
| source_repo | |
| close_reason | |
| event_kind | |
| actor | |
| target | |
| payload | |
| await_type | |
| await_id | |
| timeout_ns | 0 |
| waiters | |
| hook_bead | |
| role_bead | |
| agent_state | |
| last_activity | NULL |
| role_type | |
| rig | |
| due_at | NULL |
| defer_until | NULL |
| no_history | 0 |
| started_at | NULL |
| is_blocked | 0 |
| id | 01a01173-e993-74e9-9e13-1cc36d2ddd2d |
| issue_id | spec-0m2 |
| event_type | created |
| actor | Eugene Blikh |
| old_value | |
| new_value | |
| comment | NULL |
| created_at | 2026-08-17T23:40:04Z |
No comments.