lfsapi

package
v2.3.4+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 18, 2017 License: MIT Imports: 32 Imported by: 0

Documentation

Index

Constants

View Source
const MediaType = "application/vnd.git-lfs+json; charset=utf-8"
View Source
const UrlUnknown = "<unknown>"

Variables

View Source
var (
	UserAgent = "git-lfs"
)

Functions

func DecodeJSON

func DecodeJSON(res *http.Response, obj interface{}) error

func IsDecodeTypeError

func IsDecodeTypeError(err error) bool

func IsHTTP

func IsHTTP(err error) (*http.Response, bool)

func MarshalToRequest

func MarshalToRequest(req *http.Request, obj interface{}) error

func NewStatusCodeError

func NewStatusCodeError(res *http.Response) error

func Retries

func Retries(req *http.Request) (int, bool)

Retries returns the number of retries requested for a given http.Request.

func WithRetries

func WithRetries(req *http.Request, n int) *http.Request

WithRetries stores the desired number of retries "n" on the given http.Request, and causes it to be retried "n" times in the case of a non-nil network related error.

Types

type Access

type Access string
const (
	NoneAccess      Access = "none"
	BasicAccess     Access = "basic"
	PrivateAccess   Access = "private"
	NegotiateAccess Access = "negotiate"
	NTLMAccess      Access = "ntlm"
)

type AskPassCredentialHelper

type AskPassCredentialHelper struct {
	// Program is the executable program's absolute or relative name.
	Program string
}

AskPassCredentialHelper implements the CredentialHelper type for GIT_ASKPASS and 'core.askpass' configuration values.

func (*AskPassCredentialHelper) Approve

func (a *AskPassCredentialHelper) Approve(_ Creds) error

Approve implements CredentialHelper.Approve, and returns nil. The ASKPASS credential helper does not implement credential approval.

func (*AskPassCredentialHelper) Fill

func (a *AskPassCredentialHelper) Fill(what Creds) (Creds, error)

Fill implements fill by running the ASKPASS program and returning its output as a password encoded in the Creds type given the key "password".

It accepts the password as coming from the program's stdout, as when invoked with the given arguments (see (*AskPassCredentialHelper).args() below)./

If there was an error running the command, it is returned instead of a set of filled credentials.

func (*AskPassCredentialHelper) Reject

func (a *AskPassCredentialHelper) Reject(_ Creds) error

Reject implements CredentialHelper.Reject, and returns nil. The ASKPASS credential helper does not implement credential rejection.

type Client

type Client struct {
	Endpoints   EndpointFinder
	Credentials CredentialHelper
	SSH         SSHResolver
	Netrc       NetrcFinder

	DialTimeout         int
	KeepaliveTimeout    int
	TLSTimeout          int
	ConcurrentTransfers int
	HTTPSProxy          string
	HTTPProxy           string
	NoProxy             string
	SkipSSLVerify       bool

	Verbose          bool
	DebuggingVerbose bool
	VerboseOut       io.Writer

	LoggingStats bool // DEPRECATED
	// contains filtered or unexported fields
}

func NewClient

func NewClient(osEnv Env, gitEnv Env) (*Client, error)

func (*Client) Close

func (c *Client) Close() error

Close closes any resources that this client opened.

func (*Client) CurrentUser

func (c *Client) CurrentUser() (string, string)

func (*Client) Do

func (c *Client) Do(req *http.Request) (*http.Response, error)

func (*Client) DoWithAuth

func (c *Client) DoWithAuth(remote string, req *http.Request) (*http.Response, error)

func (*Client) GitEnv

func (c *Client) GitEnv() Env

func (*Client) LogHTTPStats

func (c *Client) LogHTTPStats(w io.WriteCloser)

func (*Client) LogRequest

func (c *Client) LogRequest(r *http.Request, reqKey string) *http.Request

LogRequest tells the client to log the request's stats to the http log after the response body has been read.

func (*Client) LogResponse

func (c *Client) LogResponse(key string, res *http.Response)

LogResponse sends the current response stats to the http log.

DEPRECATED: Use LogRequest() instead.

func (*Client) LogStats

func (c *Client) LogStats(out io.Writer)

LogStats is intended to be called after all HTTP operations for the commmand have finished. It dumps k/v logs, one line per httpTransfer into a log file with the current timestamp.

DEPRECATED: Call LogHTTPStats() before the first HTTP request.

func (*Client) NewRequest

func (c *Client) NewRequest(method string, e Endpoint, suffix string, body interface{}) (*http.Request, error)

func (*Client) OSEnv

func (c *Client) OSEnv() Env

type ClientError

type ClientError struct {
	Message          string `json:"message"`
	DocumentationUrl string `json:"documentation_url,omitempty"`
	RequestId        string `json:"request_id,omitempty"`
	// contains filtered or unexported fields
}

func (*ClientError) Error

func (e *ClientError) Error() string

func (*ClientError) HTTPResponse

func (e *ClientError) HTTPResponse() *http.Response

type CredentialHelper

type CredentialHelper interface {
	Fill(Creds) (Creds, error)
	Reject(Creds) error
	Approve(Creds) error
}

type CredentialHelpers

type CredentialHelpers []CredentialHelper

CredentialHelpers is a []CredentialHelper that iterates through each credential helper to fill, reject, or approve credentials.

func (CredentialHelpers) Approve

func (h CredentialHelpers) Approve(what Creds) error

Approve implements CredentialHelper.Approve and approves the given Creds "what" amongst all known CredentialHelpers. If any `CredentialHelper`s returned a non-nil error, no further `CredentialHelper`s are notified, so as to prevent inconsistent state.

func (CredentialHelpers) Fill

func (h CredentialHelpers) Fill(what Creds) (Creds, error)

Fill implements CredentialHelper.Fill by asking each CredentialHelper in order to fill the credentials.

If a fill was successful, it is returned immediately, and no other `CredentialHelper`s are consulted. If any CredentialHelper returns an error, it is returned immediately.

func (CredentialHelpers) Reject

func (h CredentialHelpers) Reject(what Creds) error

Reject implements CredentialHelper.Reject and rejects the given Creds "what" amongst all knonw CredentialHelpers. If any `CredentialHelper`s returned a non-nil error, no further `CredentialHelper`s are notified, so as to prevent inconsistent state.

type Creds

type Creds map[string]string

type Endpoint

type Endpoint struct {
	Url            string
	SshUserAndHost string
	SshPath        string
	SshPort        string
	Operation      string
}

An Endpoint describes how to access a Git LFS server.

type EndpointFinder

type EndpointFinder interface {
	NewEndpointFromCloneURL(rawurl string) Endpoint
	NewEndpoint(rawurl string) Endpoint
	Endpoint(operation, remote string) Endpoint
	RemoteEndpoint(operation, remote string) Endpoint
	GitRemoteURL(remote string, forpush bool) string
	AccessFor(rawurl string) Access
	SetAccess(rawurl string, access Access)
	GitProtocol() string
}

func NewEndpointFinder

func NewEndpointFinder(git Env) EndpointFinder

type Env

type Env interface {
	Get(string) (string, bool)
	GetAll(string) []string
	Int(string, int) int
	Bool(string, bool) bool
	All() map[string][]string
}

Env is an interface for the config.Environment methods that this package relies on.

type NetrcFinder

type NetrcFinder interface {
	FindMachine(string) *netrc.Machine
}

func ParseNetrc

func ParseNetrc(osEnv Env) (NetrcFinder, string, error)

type ReadSeekCloser

type ReadSeekCloser interface {
	io.Seeker
	io.ReadCloser
}

func NewByteBody

func NewByteBody(by []byte) ReadSeekCloser

type SSHResolver

type SSHResolver interface {
	Resolve(Endpoint, string) (sshAuthResponse, error)
}

type TestEnv

type TestEnv map[string][]string

TestEnv is a basic config.Environment implementation. Only used in tests, or as a zero value to NewClient().

func (TestEnv) All

func (e TestEnv) All() map[string][]string

func (TestEnv) Bool

func (e TestEnv) Bool(key string, def bool) (val bool)

func (TestEnv) Get

func (e TestEnv) Get(key string) (string, bool)

func (TestEnv) GetAll

func (e TestEnv) GetAll(key string) []string

func (TestEnv) Int

func (e TestEnv) Int(key string, def int) (val int)

type UniqTestEnv

type UniqTestEnv map[string]string

func (UniqTestEnv) All

func (e UniqTestEnv) All() map[string][]string

func (UniqTestEnv) Bool

func (e UniqTestEnv) Bool(key string, def bool) (val bool)

func (UniqTestEnv) Get

func (e UniqTestEnv) Get(key string) (v string, ok bool)

func (UniqTestEnv) GetAll

func (e UniqTestEnv) GetAll(key string) []string

func (UniqTestEnv) Int

func (e UniqTestEnv) Int(key string, def int) (val int)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL