Documentation ¶
Overview ¶
Package api is a set of types for interacting with the GitHub API.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HandleHTTPError ¶ added in v0.1.0
HandleHTTPError parses a http.Response into a HTTPError.
Types ¶
type ClientOptions ¶
type ClientOptions struct { // AuthToken is the authorization token that will be used // to authenticate against API endpoints. AuthToken string // CacheDir is the directory to use for cached API requests. // Default is the same directory that gh uses for caching. CacheDir string // CacheTTL is the time that cached API requests are valid for. // Default is 24 hours. CacheTTL time.Duration // EnableCache specifies if API requests will be cached or not. // Default is no caching. EnableCache bool // Headers are the headers that will be sent with every API request. // Default headers set are Accept, Content-Type, Time-Zone, and User-Agent. // Default headers will be overridden by keys specified in Headers. Headers map[string]string // Host is the default host that API requests will be sent to. Host string // Log specifies a writer to write API request logs to. Default is to respect the GH_DEBUG environment // variable, and no logging otherwise. Log io.Writer // LogIgnoreEnv disables respecting the GH_DEBUG environment variable. This can be useful in test mode // or when the extension already offers its own controls for logging to the user. LogIgnoreEnv bool // LogColorize enables colorized logging to Log for display in a terminal. // Default is no coloring. LogColorize bool // LogVerboseHTTP enables logging HTTP headers and bodies to Log. // Default is only logging request URLs and response statuses. LogVerboseHTTP bool // SkipDefaultHeaders disables setting of the default headers. SkipDefaultHeaders bool // Timeout specifies a time limit for each API request. // Default is no timeout. Timeout time.Duration // Transport specifies the mechanism by which individual API requests are made. // If both Transport and UnixDomainSocket are specified then Transport takes // precedence. Due to this behavior any value set for Transport needs to manually // handle routing to UnixDomainSocket if necessary. Generally, setting Transport // should be reserved for testing purposes. // Default is http.DefaultTransport. Transport http.RoundTripper // UnixDomainSocket specifies the Unix domain socket address by which individual // API requests will be routed. If specifed, this will form the base of the API // request transport chain. // Default is no socket address. UnixDomainSocket string }
ClientOptions holds available options to configure API clients.
type GQLClient ¶
type GQLClient interface { // Do wraps DoWithContext using context.Background. Do(query string, variables map[string]interface{}, response interface{}) error // DoWithContext executes a GraphQL query request. // The response is populated into the response argument. DoWithContext(ctx context.Context, query string, variables map[string]interface{}, response interface{}) error // Mutate wraps MutateWithContext using context.Background. Mutate(name string, mutation interface{}, variables map[string]interface{}) error // MutateWithContext executes a GraphQL mutation request. // The mutation string is derived from the mutation argument, and the // response is populated into it. // The mutation argument should be a pointer to struct that corresponds // to the GitHub GraphQL schema. // Provided input will be set as a variable named input. MutateWithContext(ctx context.Context, name string, mutation interface{}, variables map[string]interface{}) error // Query wraps QueryWithContext using context.Background. Query(name string, query interface{}, variables map[string]interface{}) error // QueryWithContext executes a GraphQL query request, // The query string is derived from the query argument, and the // response is populated into it. // The query argument should be a pointer to struct that corresponds // to the GitHub GraphQL schema. QueryWithContext(ctx context.Context, name string, query interface{}, variables map[string]interface{}) error }
GQLClient is the interface that wraps methods for the different types of API requests that are supported by the server.
type GQLError ¶ added in v0.1.0
type GQLError struct {
Errors []GQLErrorItem
}
GQLError represents an error response from GitHub GraphQL API.
type GQLErrorItem ¶ added in v0.1.0
GQLErrorItem stores additional information about an error response returned from the GitHub GraphQL API.
type HTTPError ¶ added in v0.0.2
type HTTPError struct { Errors []HTTPErrorItem Headers http.Header Message string RequestURL *url.URL StatusCode int }
HTTPError represents an error response from the GitHub API.
type HTTPErrorItem ¶ added in v0.1.0
HTTPErrorItem stores additional information about an error response returned from the GitHub API.
type RESTClient ¶
type RESTClient interface { // Do wraps DoWithContext with context.Background. Do(method string, path string, body io.Reader, response interface{}) error // DoWithContext issues a request with type specified by method to the // specified path with the specified body. // The response is populated into the response argument. DoWithContext(ctx context.Context, method string, path string, body io.Reader, response interface{}) error // Delete issues a DELETE request to the specified path. // The response is populated into the response argument. Delete(path string, response interface{}) error // Get issues a GET request to the specified path. // The response is populated into the response argument. Get(path string, response interface{}) error // Patch issues a PATCH request to the specified path with the specified body. // The response is populated into the response argument. Patch(path string, body io.Reader, response interface{}) error // Post issues a POST request to the specified path with the specified body. // The response is populated into the response argument. Post(path string, body io.Reader, response interface{}) error // Put issues a PUT request to the specified path with the specified body. // The response is populated into the response argument. Put(path string, body io.Reader, response interface{}) error // Request wraps RequestWithContext with context.Background. Request(method string, path string, body io.Reader) (*http.Response, error) // RequestWithContext issues a request with type specified by method to the // specified path with the specified body. // The response is returned rather than being populated // into a response argument. RequestWithContext(ctx context.Context, method string, path string, body io.Reader) (*http.Response, error) }
RESTClient is the interface that wraps methods for the different types of API requests that are supported by the server.