Move compatibility for non github.com targets to `github.With<THING>` options
- Vorherrschende Sprache
- Go
- Sterne
- 11.3k
- Forks
- 2.5k
- Ø Merge
- 1 T. 20 Std.
- Gemergte PRs (30 T.)
- 52
Beschreibung
I propose that all compatibility functionality not required for the github.com target be removed from the default client setup and only be included via a `github.With` option. This (hopefully) would make the default client surface area simpler to understand. The justification for this is that you already need to use `github.WithEnterpriseURLs` to target non github.com. I propose the following changes to adopt this pattern, with the potential for other capabilities (such as enabling/disabling preview endpoints) to be added later.
- Default to the latest API version (`2026-03-10`)
- Functions that require a specific version now check against the client version and error if not valid
- Add `github.WithAPIVersion` to explicitly set a version
- Set at the client/service level
- Add `github.WithAdvancedServer` to enable GHAS support
- Better validation of inputs
- Support setting version
- Add compatibility accordingly
- Add `github.WithEnterpriseCloud` to enable GHEC support
- Better validation of inputs
- Deprecate `github.WithEnterpriseURLs`
I'd appreciate any feedback on this proposal.
cc: @gmlewis - @alexandear - @zyfy29 - @Not-Dhananjay-Mishra - @munlicode
Beitragsleitfaden
Rechercherichtung
Beginne mit der Überprüfung der standardmäßigen Client-Einrichtung, der vorhandenen Option github.WithEnterpriseURLs und der im Vorschlag beschriebenen Kompatibilitätsprüfungen. Verfolge, wie API-Versionen und Ziele außerhalb von github.com derzeit konfiguriert werden. Als erledigt gilt die Aufgabe, wenn das vorgeschlagene Verhalten von WithAPIVersion, WithAdvancedServer und WithEnterpriseCloud konsistent entworfen und implementiert ist und die veraltete Option berücksichtigt wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- go
- Bereich
- api, backend-api-design
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Ruhig
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100