GitHub's v3 REST API.
Package
github.com/OctriDev/github-rest-go-sdk· Version1.1.4· 1230 operations
# In the consumer module
go mod edit -replace=github.com/OctriDev/github-rest-go-sdk=/path/to/generated-sdk
go get github.com/OctriDev/github-rest-go-sdk
# After this version is published
go get github.com/OctriDev/github-rest-go-sdk@v1.1.4The example calls activityGetFeeds (GET /feeds), a low-friction operation that requires no request arguments.
package main
import (
"context"
"fmt"
"os"
sdk "github.com/OctriDev/github-rest-go-sdk"
)
func main() {
ctx := context.Background()
config := sdk.ClientConfig{
BaseURL: "https://api.github.com",
Auth: &sdk.ClientAuthConfig{Bearer: os.Getenv("API_TOKEN")},
}
client := sdk.NewGitHubV3REST(config)
result, err := client.Activity.GetFeeds(ctx)
if err != nil {
panic(err)
}
fmt.Printf("%+v\n", result)
}Keep credentials outside source control. The quickstart reads them from the environment and the client applies them to every request.
| Scheme | ClientAuthConfig field | Sent as |
|---|---|---|
| SDK Studio bearer token | Bearer |
Authorization: Bearer <token> |
- Base URL:
https://api.github.com. - Transport: net/http.
- Timeout: 30,000 ms per attempt.
- Retries: up to 3 attempts for status codes
408,425,429,500,502,503,504, with 500–8,000 ms backoff. - Idempotency: disabled.
- Error telemetry is disabled by default, even when a reporting endpoint is baked into the build. Consumers must opt in explicitly.
- Telemetry PII filtering is enabled by default: common credentials and direct identifiers are recursively replaced with
[REDACTED]before reports are sent. Disable it only through the generated logging config'sfilterPii(or language-native equivalent) for a trusted private sink.
High-level operation methods return the typed response body directly. The low-level request layer returns an SdkResponse<T> envelope containing data, status, headers, request ID, latency, and attempt count.
All failure paths use a small, predictable hierarchy:
| Error | Meaning |
|---|---|
SdkValidationError |
A request argument failed an OpenAPI constraint before network I/O. |
SdkHttpError |
The server returned a non-2xx response. |
SdkNetworkError |
DNS, connection, TLS, or socket failure. |
SdkTimeoutError |
The configured per-attempt timeout elapsed. |
HTTP errors expose StatusCode, the response body and headers, plus RequestID when the server supplies one. Preserve the request ID in support logs; it is the fastest way to correlate a failed SDK call with server-side traces.
- Operation implementations are grouped under root-level namespace
.gofiles. - 975 component models are split by API domain under root-level
models_<domain>.goormodels_<tag_path>_models.gofiles in the same publicsdkpackage. - Component schemas can choose a nested model folder with
x-octri-sdk-tags: ["Billing/Invoices"]; the first tag owns the model and/creates nesting. sdk-manifest.jsonis the language-neutral public API index: operations, request/response modes, model properties, enum values, and generation settings.- Public barrel/module exports are the compatibility boundary. Import public model names from those exports; internal domain filenames may evolve without changing model names.
Generated SDK includes schema-derived, zero-dependency mock server and network contract suite. Node.js 20+ required. Contract probes use authored response examples only; schema-synthesized routes remain available to the local server.
./scripts/mock --port 4010 starts server. ./scripts/test runs the mock contract suite, then native SDK tests. A zero-authored-example contract run succeeds with an explicit zero-test
summary; mismatches in authored examples still fail.