Documentation
¶
Index ¶
- Constants
- type Client
- func (g *Client) Clone(ctx context.Context, url string, cloneOpts repository.CloneOptions) (*git.Commit, error)
- func (g *Client) Commit(info git.Commit, commitOpts ...repository.CommitOption) (string, error)
- func (g *Client) Head() (string, error)
- func (g *Client) Init(ctx context.Context, url, branch string) error
- func (g *Client) IsClean() (bool, error)
- func (g *Client) Path() string
- func (g *Client) Push(ctx context.Context) error
- func (g *Client) SwitchBranch(ctx context.Context, branchName string) error
- type ClientOption
- func WithDiskStorage() ClientOption
- func WithFallbackToDefaultKnownHosts() ClientOption
- func WithForcePush() ClientOption
- func WithInsecureCredentialsOverHTTP() ClientOption
- func WithMemoryStorage() ClientOption
- func WithSingleBranch(singleBranch bool) ClientOption
- func WithStorer(s storage.Storer) ClientOption
- func WithWorkTreeFS(wt billy.Filesystem) ClientOption
- type CustomPublicKeys
- type DefaultAuth
Constants ¶
const ClientName = "go-git"
ClientName is the string representation of Client.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
*repository.DiscardCloser
// contains filtered or unexported fields
}
Client implements repository.Client.
func NewClient ¶
func NewClient(path string, authOpts *git.AuthOptions, clientOpts ...ClientOption) (*Client, error)
NewClient returns a new GoGitClient.
func (*Client) Clone ¶
func (g *Client) Clone(ctx context.Context, url string, cloneOpts repository.CloneOptions) (*git.Commit, error)
func (*Client) Commit ¶
func (g *Client) Commit(info git.Commit, commitOpts ...repository.CommitOption) (string, error)
func (*Client) SwitchBranch ¶
SwitchBranch switches the current branch to the given branch name.
No new references are fetched from the remote during the process, this is to ensure that the same flow can be used across all Git servers, regardless of them requiring MULTI_ACK or not. Once MULTI_ACK is implemented in go-git, this can be revisited.
If more than one remote branch state is required, create the gogit client using WithSingleBranch(false). This will fetch all remote branches as part of the initial clone. Note that this is fully compatible with shallow clones.
The following cases are handled: - Branch does not exist results in one being created using HEAD of the worktree. - Branch exists only remotely, results in a local branch being created tracking the remote HEAD. - Branch exists only locally, results in a checkout to the existing branch. - Branch exists locally and remotely, the local branch will take precendece.
To override a remote branch with the state from the current branch, (i.e. image automation controller), use WithForcePush(true) in combination with WithSingleBranch(true). This will ignore the remote branch's existence.
type ClientOption ¶
func WithDiskStorage ¶
func WithDiskStorage() ClientOption
func WithFallbackToDefaultKnownHosts ¶ added in v0.3.0
func WithFallbackToDefaultKnownHosts() ClientOption
WithFallbackToDefaultKnownHosts enables falling back to the default known_hosts of the machine if the provided auth options don't provide it.
func WithForcePush ¶ added in v0.2.0
func WithForcePush() ClientOption
WithForcePush enables the use of force push for all push operations back to the Git repository. By default this is disabled.
func WithInsecureCredentialsOverHTTP ¶ added in v0.2.0
func WithInsecureCredentialsOverHTTP() ClientOption
WithInsecureCredentialsOverHTTP enables credentials being used over HTTP. This is not recommended for production environments.
func WithMemoryStorage ¶
func WithMemoryStorage() ClientOption
func WithSingleBranch ¶ added in v0.4.0
func WithSingleBranch(singleBranch bool) ClientOption
WithSingleBranch indicates whether only the references of a single branch will be fetched during cloning operations. For read-only clones, and for single branch write operations, a single branch is advised for performance reasons.
For write operations that require multiple branches, for example, cloning from main and pushing into a feature branch, this should be disabled. Otherwise a second fetch will be required to get the state of the target branch, which won't work against some Git servers due to MULTI_ACK not being implemented in go-git.
By default this is enabled.
func WithStorer ¶
func WithStorer(s storage.Storer) ClientOption
func WithWorkTreeFS ¶
func WithWorkTreeFS(wt billy.Filesystem) ClientOption
type CustomPublicKeys ¶
type CustomPublicKeys struct {
// contains filtered or unexported fields
}
CustomPublicKeys is a wrapper around ssh.PublicKeys to help us customize the ssh config. It implements ssh.AuthMethod.
func (*CustomPublicKeys) ClientConfig ¶
func (a *CustomPublicKeys) ClientConfig() (*gossh.ClientConfig, error)
func (*CustomPublicKeys) Name ¶
func (a *CustomPublicKeys) Name() string
func (*CustomPublicKeys) String ¶
func (a *CustomPublicKeys) String() string
type DefaultAuth ¶ added in v0.3.0
type DefaultAuth struct {
// contains filtered or unexported fields
}
func (*DefaultAuth) ClientConfig ¶ added in v0.3.0
func (a *DefaultAuth) ClientConfig() (*gossh.ClientConfig, error)
func (*DefaultAuth) Name ¶ added in v0.3.0
func (a *DefaultAuth) Name() string
func (*DefaultAuth) String ¶ added in v0.3.0
func (a *DefaultAuth) String() string
Directories
¶
| Path | Synopsis |
|---|---|
|
Package securejoin is an implementation of the hopefully-soon-to-be-included SecureJoin helper that is meant to be part of the "path/filepath" package.
|
Package securejoin is an implementation of the hopefully-soon-to-be-included SecureJoin helper that is meant to be part of the "path/filepath" package. |