René's URL Explorer Experiment


Title: oapi-codegen v2 produces duplicate Go field names when JSON keys differ only by separator (hyphen vs underscore) · Issue #2495 · oapi-codegen/oapi-codegen · GitHub

Open Graph Title: oapi-codegen v2 produces duplicate Go field names when JSON keys differ only by separator (hyphen vs underscore) · Issue #2495 · oapi-codegen/oapi-codegen

X Title: oapi-codegen v2 produces duplicate Go field names when JSON keys differ only by separator (hyphen vs underscore) · Issue #2495 · oapi-codegen/oapi-codegen

Description: Issue When two JSON properties in the same object differ only by their separator — e.g. "host-fqdn" and "host_fqdn" — both are converted to the same PascalCase Go field name HostFqdn, causing a redeclared in this block compile error. Sin...

Open Graph Description: Issue When two JSON properties in the same object differ only by their separator — e.g. "host-fqdn" and "host_fqdn" — both are converted to the same PascalCase Go field name HostFqdn, causing a red...

X Description: Issue When two JSON properties in the same object differ only by their separator — e.g. "host-fqdn" and "host_fqdn" — both are converted to the same PascalCase Go field name Hos...

Opengraph URL: https://github.com/oapi-codegen/oapi-codegen/issues/2495

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"oapi-codegen v2 produces duplicate Go field names when JSON keys differ only by separator (hyphen vs underscore)","articleBody":"### Issue\nWhen two JSON properties in the same object differ only by their separator — e.g. \"host-fqdn\" and \"host_fqdn\" — both are converted to the same PascalCase Go field name HostFqdn, causing a redeclared in this block compile error. Since - is an invalid Go identifier character, stripping it is unavoidable. But _ is a valid Go identifier character and should be treated differently (e.g. preserved, or collision-detected and suffixed), rather than being normalized identically to -.\n\n### Version:\noapi-codegen Version: v2.7.2\n\nSpec source: \nhttps://developer.tenable.com/openapi/vulnerability-management.json\nSection: \nGET /scans/{scan_uuid}/hosts/{host_id}/plugins/{plugin_id} response — info.host-fqdn and info.host_fqdn coexist in the same object.\n\n### Spec snippet — Tenable Vulnerability Management API\n```\n\"info\": {\n    \"type\": \"object\",\n    \"properties\": {\n        \"host-fqdn\": {\n            \"type\": \"string\",\n            \"description\": \"The host's fully qualified domain name; optional.\"\n        },\n        \"host_fqdn\": {\n            \"type\": \"string\",\n            \"description\": \"The FQDN of the host. Normally, this is populated with the value used to scan the host in the target list of the last scan that was ran where it was seen; always present.\"\n        },\n        \"host-ip\": {\n            \"type\": \"string\",\n            \"description\": \"The host's IPv4 address; optional.\"\n        }\n    }\n}\n```\n### Generated output:\n```\n// Both JSON properties produce the identical Go field name:\nHostFqdn *string `json:\"host-fqdn,omitempty\"`   // from \"host-fqdn\"  ← line 39495\n...\nHostFqdn *string `json:\"host_fqdn,omitempty\"`   // from \"host_fqdn\" ← line 39507  DUPLICATE\n```\n\n### Expected behaviour\nThe generator should detect that two JSON property names produce the same Go identifier after normalization and either:\nPreserve the underscore to produce a distinct name (e.g. Host_fqdn), or\nEmit a descriptive error/warning directing the user to resolve the conflict via x-go-name\nProducing uncompilable output silently is not acceptable.","author":{"url":"https://github.com/ChalamaiahReddy","@type":"Person","name":"ChalamaiahReddy"},"datePublished":"2026-07-23T08:44:13Z","url":"https://github.com/oapi-codegen/oapi-codegen/issues/2495"}

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:01ded1e9-e8fe-8f52-768b-d3a8cdbe1a4b
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id9202:268853:2D0936E:3AA2AAA:6AF9BACB
html-safe-nonce5a206a53752acf757085879a0d578561e5862df04b62aa07890fca1869a3e1e4
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5MjAyOjI2ODg1MzoyRDA5MzZFOjNBQTJBQUE6NkFGOUJBQ0IiLCJ2aXNpdG9yX2lkIjoiNzE0MDEwNTI3Mjc4MDUwMzc1NSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9
visitor-hmace8203810fe5a843d6bf6ed84d51eb58e09d171e3edd2039a084293bd6297ad55
hovercard-subject-tagissue:4957073984
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/oapi-codegen/oapi-codegen/2495/issue_layout
twitter:imagehttps://opengraph.githubassets.com/85a9111bb96566f5c7dc3f9eccbc9bda6a14af8ab04ed94f6ed0abb93a933434/oapi-codegen/oapi-codegen/issues/2495
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/85a9111bb96566f5c7dc3f9eccbc9bda6a14af8ab04ed94f6ed0abb93a933434/oapi-codegen/oapi-codegen/issues/2495
og:image:altIssue When two JSON properties in the same object differ only by their separator — e.g. "host-fqdn" and "host_fqdn" — both are converted to the same PascalCase Go field name HostFqdn, causing a red...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameChalamaiahReddy
hostnamegithub.com
expected-hostnamegithub.com
None612d3e6ffd693e7ea8d9fcf452370995872baef31d825b1fedef704cd3d24ac7
turbo-cache-controlno-preview
go-importgithub.com/oapi-codegen/oapi-codegen git https://github.com/oapi-codegen/oapi-codegen.git
octolytics-dimension-user_id142752710
octolytics-dimension-user_loginoapi-codegen
octolytics-dimension-repository_id173009358
octolytics-dimension-repository_nwooapi-codegen/oapi-codegen
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id173009358
octolytics-dimension-repository_network_root_nwooapi-codegen/oapi-codegen
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release072e34035c13c31543fba9f025cbbbda4210dae4
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-nameissues

Links:

Skip to contenthttps://github.com/oapi-codegen/oapi-codegen/issues/2495#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Foapi-codegen%2Foapi-codegen%2Fissues%2F2495
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Foapi-codegen%2Foapi-codegen%2Fissues%2F2495
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=oapi-codegen%2Foapi-codegen
Reloadhttps://github.com/oapi-codegen/oapi-codegen/issues/2495
Reloadhttps://github.com/oapi-codegen/oapi-codegen/issues/2495
Reloadhttps://github.com/oapi-codegen/oapi-codegen/issues/2495
oapi-codegenhttps://github.com/oapi-codegen
oapi-codegenhttps://github.com/oapi-codegen/oapi-codegen
Codehttps://github.com/oapi-codegen/oapi-codegen
Issues228 (228)https://github.com/oapi-codegen/oapi-codegen/issues
Pull requests70 (70)https://github.com/oapi-codegen/oapi-codegen/pulls
Discussionshttps://github.com/oapi-codegen/oapi-codegen/discussions
Actionshttps://github.com/oapi-codegen/oapi-codegen/actions
Projectshttps://github.com/oapi-codegen/oapi-codegen/projects
Security and quality11 (11)https://github.com/oapi-codegen/oapi-codegen/security
Insightshttps://github.com/oapi-codegen/oapi-codegen/pulse
https://github.com/oapi-codegen/oapi-codegen
New issuehttps://github.com/login?return_to=https://github.com/oapi-codegen/oapi-codegen/issues/2495
New issuehttps://github.com/login?return_to=https://github.com/oapi-codegen/oapi-codegen/issues/2495
#2550https://github.com/oapi-codegen/oapi-codegen/pull/2550
oapi-codegen v2 produces duplicate Go field names when JSON keys differ only by separator (hyphen vs underscore)https://github.com/oapi-codegen/oapi-codegen/issues/2495#top
#2550https://github.com/oapi-codegen/oapi-codegen/pull/2550
https://github.com/ChalamaiahReddy
ChalamaiahReddyhttps://github.com/ChalamaiahReddy
on Jul 23, 2026https://github.com/oapi-codegen/oapi-codegen/issues/2495#issue-4957073984
https://developer.tenable.com/openapi/vulnerability-management.jsonhttps://developer.tenable.com/openapi/vulnerability-management.json
https://github.com/mromaszewicz
mromaszewiczhttps://github.com/mromaszewicz
on Jul 26, 2026https://github.com/oapi-codegen/oapi-codegen/issues/2495#issuecomment-5083649209
x-go-namehttps://github.com/oapi-codegen/oapi-codegen/blob/main/docs/extensions.md#x-go-name
https://github.com/oapi-codegen/oapi-codegen/blob/main/README.md#modifying-the-input-openapi-specification-with-openapi-overlayhttps://github.com/oapi-codegen/oapi-codegen/blob/main/README.md#modifying-the-input-openapi-specification-with-openapi-overlay
rifkir23https://github.com/rifkir23
on Sep 3, 2026https://github.com/oapi-codegen/oapi-codegen/issues/2495#event-30498821660
fix: resolve Go field name collisions when JSON keys differ only by s…https://github.com/rifkir23/oapi-codegen/commit/c1eb68a84b82bf4f604163ff403a539fe32f7842
c1eb68ahttps://github.com/rifkir23/oapi-codegen/commit/c1eb68a84b82bf4f604163ff403a539fe32f7842
Sign up for freehttps://github.com/signup?return_to=https://github.com/oapi-codegen/oapi-codegen/issues/2495
Sign in to commenthttps://github.com/login?return_to=https://github.com/oapi-codegen/oapi-codegen/issues/2495
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.