fix(gitlab): use PascalCase GraphQL input type names for note mutations - #20
Merged
Conversation
shurcooL/graphql derives the GraphQL input type name from the Go struct name verbatim, so unexported structs (updateNoteInput/destroyNoteInput) produced mutations GitLab rejects with "updateNoteInput isn't a defined input type". Rename to UpdateNoteInput/DestroyNoteInput to match GitLab's schema, and add a regression test asserting the wire type names. Only the update/delete paths (GraphQL) were affected; comment creation uses REST, so this only surfaced on MRs with a pre-existing comment.
liamg
marked this pull request as ready for review
July 1, 2026 09:20
owenrumney
approved these changes
Jul 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Comment updates/deletes on GitLab were failing in prod with
updateNoteInput isn't a defined input type.shurcooL/graphqlderives the GraphQL input type name from the Go struct name verbatim, so the unexportedupdateNoteInput/destroyNoteInputstructs produced a mutation with a type name GitLab's (case-sensitive) schema rejects. The old CLI used PascalCase names, which is why it worked there and regressed on the port.Comment creation uses the REST API, so this only surfaced on MRs with a pre-existing Infracost comment (the update/delete path) — hence it wasn't caught on fresh MRs.
Renames the structs to
UpdateNoteInput/DestroyNoteInputto match GitLab's schema types, and adds a regression test that captures the mutation body over the wire and asserts the correct type name. GitHub (usesgithubv4's own types) and Azure (REST only) were checked and are unaffected.