Documentation ¶
Overview ¶
Package api provides a basic client library for the Sourcegraph API.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateTempFile ¶
func NullInt ¶
NullInt returns a nullable int for use in a GraphQL variable, where -1 is treated as a nil value.
func NullString ¶
NullString returns a nullable string for use in a GraphQL variable, where "" is treated as a nil value.
Types ¶
type Client ¶
type Client interface { // NewQuery is a convenience method to create a GraphQL request without // variables. NewQuery(query string) Request // NewRequest creates a GraphQL request. NewRequest(query string, vars map[string]interface{}) Request // NewHTTPRequest creates an http.Request for the Sourcegraph API. // // path is joined against the API route. For example on Sourcegraph.com this // will result the URL: https://sourcegraph.com/.api/path. NewHTTPRequest(ctx context.Context, method, path string, body io.Reader) (*http.Request, error) // Do runs an http.Request against the Sourcegraph API. Do(req *http.Request) (*http.Response, error) }
Client instances provide methods to create API requests.
type ClientOpts ¶
type ClientOpts struct { Endpoint string AccessToken string AdditionalHeaders map[string]string // Flags are the standard API client flags provided by NewFlags. If nil, // default values will be used. Flags *Flags // Out is the writer that will be used when outputting diagnostics, such as // curl commands when -get-curl is enabled. Out io.Writer ProxyURL *url.URL ProxyPath string }
ClientOpts encapsulates the options given to NewClient.
type Flags ¶
type Flags struct {
// contains filtered or unexported fields
}
Flags encapsulates the standard flags that should be added to all commands that issue API requests.
func NewFlags ¶
NewFlags instantiates a new Flags structure and attaches flags to the given flag set.
func (*Flags) UserAgentTelemetry ¶
type GraphQlError ¶
type GraphQlError struct {
// contains filtered or unexported fields
}
GraphQlError wraps a raw JSON error returned from a GraphQL endpoint.
func (*GraphQlError) Code ¶
func (g *GraphQlError) Code() (string, error)
Code returns the GraphQL error code, if one was set on the error.
func (*GraphQlError) Error ¶
func (g *GraphQlError) Error() string
func (*GraphQlError) Extensions ¶
func (g *GraphQlError) Extensions() (map[string]interface{}, error)
Extensions returns the GraphQL error extensions, if set, or nil if no extensions were set on the error.
type GraphQlErrors ¶
type GraphQlErrors []*GraphQlError
GraphQlErrors contains one or more GraphQlError instances.
func (GraphQlErrors) Error ¶
func (gg GraphQlErrors) Error() string
type Request ¶
type Request interface { // Do actions the request. Normally, this means that the request is // transmitted and the response is unmarshalled into result. // // If no data was available to be unmarshalled — for example, due to the // -get-curl flag being set — then ok will return false. Do(ctx context.Context, result interface{}) (ok bool, err error) // DoRaw has the same behaviour as Do, with one exception: the result will // not be unwrapped, and will include the GraphQL errors. Therefore the // structure that is provided as the result should have top level Data and // Errors keys for the GraphQL wrapper to be unmarshalled into. DoRaw(ctx context.Context, result interface{}) (ok bool, err error) }
Request instances represent GraphQL requests.
type Server ¶
func StartUnixSocketServer ¶
StartServer starts the server in a goroutine and returns a stop function